Luaスクリプトの導入方法

Last-modified: 2023-08-08 (火) 10:17:19

エディター記述は、コマンド「スクリプト」でLuaファイルを読み込み、コマンド「lua」にてLuaファイルのコマンド・関数を指定します。



Light.vnサンプルのLua関数

  • Light.vnサンプルに付属している「script_sample2.lua」を参考にし、Light.vnテンプレートの方に「Lua」を導入してみます。
    「script_sample2.lua」はLight.vnサンプルの「Scripts」>「lua」フォルダ内にあります。

    Luaサンプル

    今回はLight.vnコマンドである「絵」をLuaに置き換えているサンプルを使って命令してみます。

    function alice_cg()

    lvCmd("絵 alice scg2.png 500 150 80")

    end

  • lvCmd」は「指定されたLight.vnコマンドを実行する」という「LIGHT.VN LUA関数」です。


Light.vnテンプレートで準備

  • Light.vnテンプレートには「luaフォルダ」も「luaファイル」も存在しないので、新規に作成していきます。

    テキストファイル作成
    ファイルネーム変更

    まずは「Scripts」フォルダ内に分かりやすく「lua」という名前(任意)のフォルダを作成します。
    そして「lua」フォルダ内に新規テキストファイルを作成後、「ファイル名」と「拡張子」を変更し「prototype.lua」としました。

     ※ 本来のプログラミングは「Lua」をインストールしたり、プログラム言語専用のエディターなどを使って行います。

    コマンド「絵」

    「test.txt」内にLight.vnコマンドにて「背景」とキャラ「ラムちゃん」を表示させておいて、準備は完了です。
    「ラムちゃん」の表示形式「絵」を「Lua」指定に変更してみましょう。


サンプルを参考にLua関数を記述する

  • さきほど新規に作成した「prototype.lua」を開き、Lua関数を記述します。

    Lua関数
    Lua関数説明

    説明文を読みつつ、「script_sample2.lua」内のLua関数を見よう見まねで記述していきます。
    「function」のあとの関数名は、ラムちゃんなので「lam_cg」としてみました。
    「lvCmd」内の絵コマンドは、「test.txt」と同じく「絵 lam scg/ram_b_2.png 440 20 90」としました。
    個体名は「lam_id」ではなく「lam」にしています。

    function lam_cg()

    lvCmd("絵 lam scg/ram_b_2.png 440 20 90")

    end

  • Lua関数を記述したこの「prototype.lua」をLight.vnエディターで読み込めば、コマンド「絵」と同様にラムちゃんが表示されます。


Light.vnエディターでLuaを読み込ませる

  • コマンド「」を「Lua」に書き換えます。

    Luaを読み込ませる

    prototype.lua」を読み込ませるために、コマンド「スクリプト」でLuaファイルを読み込みます。
    その後、コマンド「lua」を使用して「prototype.lua」内のLua関数「lam_cg()」を指定します。
    Lua関数の指定は「」を指定する感覚です。

    スクリプト lua/prototype.lua

    lua lam_cg()

  • これでコマンド「絵」ではなく「Lua」を使用してラムちゃんを表示することができました。
    「Lua」の導入方法は以上となります。


Luaの動作を再確認してみる

  • Luaの数値を変更して動作を確認してみましょう。

    Luaを読み込ませる

    「絵 lam scg/ram_b_2.png 440 20 90」のx位置・y位置の数値を変えて表示の変化を見てみます。
    「絵 lam scg/ram_b_2.png 10 200 90」にしてみました。

    数値変更後

    ラムちゃんが数値通り移動しているのが確認できます。




LIGHT.VN LUA関数とは

使い方


LIGHT.VN LUA関数紹介

lvCmd


lvGetVar


lvSetVar


lvSetDataVar


lvSetGlobalVar


lvLog


lvSystemMessage


lvSystemError


lvFileExists