LIGHT.VN関数(Ver12.6.0)

Last-modified: 2021-09-24 (金) 18:13:54


LIGHT.VN関数とは

Ver12.4.0から、エンジンの提供する関数(以降「LVN関数」と呼ぶことにします)が追加されました。
従来もコマンド「スクリプト」でユーザーが設定する関数(スクリプト関数)はありました(項目参照:関数)。
LVN関数も引数を渡す点では共通していますが、以下のような特徴があります。

  • スクリプトの任意の位置に記述できます。
  • 基本的には設定項目で用います。
  • 引数を渡すと、戻り値と呼ばれるひとつの結果(値、文字列、真偽)を返します。

使い方

移動 obj01 (lvRandom(50, 100)) 150 500

各種コマンドの設定項目への代入値として記述するのが、LVN関数の主な用途です。
設定項目に関数名を括弧で囲んで記述し、直後の括弧内に引数を記述します。

  • 括弧で囲むことで変数の代入と同様の働きをします(項目参照:代入)。
    したがって、戻り値が数値ならばその値がそのまま代入され、文字列ならば「"」で囲んだものが代入されます。
    また、波括弧で二重に囲めば、数値と文字列のどちらもそのまま代入されるほか、テキストへの代入が可能になります。
  • 複数の引数を記述する際には、引数の末尾に「,」と半角スペースを加えます
  • 引数に文字列を用いる場合には、設定項目のテキストと同様に「"」で囲んで記述します
    囲まない場合にはその文字列が変数名として扱われるため、エラーの原因になります。
    ただし、セーブスロットを指定する場合には「"」で囲まない文字列を記述します
  • 引数には変数を用いることができます。
    変数名を記述すれば、その箇所の引数に変数値が代入されます。
    ただし、引数の型と変数の型とが一致している必要があります


関数紹介

lvRandom

lvRandom(0, 20)
  • 引数:数値(最小値)、数値(最大値)
    戻り値:数値
  • ひとつめの数値を最小値、ふたつめの数値を最大値とする範囲の乱数を返します。

lvRandomName

lvRandomName("lady_")
  • 引数:文字列(個体名接頭辞)
    戻り値:文字列
  • 指定した文字列を接頭辞に持つ個体名を生成します。
    生成される個体名は存在する個体名と重複しないものになります。

lvExistsObj

lvExistsObj("ch15")
  • 引数:文字列(個体名)
    戻り値:真偽
  • 指定した文字列を個体名に持つ個体が存在していれば「true」、存在しなければ「false」を返します。

lvTimeNow

lvTimeNow("%y-%m-%d")
  • 引数:文字列(時間形式)
    戻り値:文字列
  • 文字列の記述が指定する日時形式の文字列を、その瞬間の日時の数値を込めて文字列で返します。
    日時形式の参考:https://en.cppreference.com/w/c/chrono/strftime
    • 年・月・日は「%y」・「%m」・「%d」、時・分・秒は「%H」・「%M」・「%S」と記述します。

lvSubstring

lvSubstring("忙しいいそがしい", 0, 3)
  • 引数:文字列、数値(始点文字位置)、数値(文字数)
    戻り値:文字列
  • 個々の文字に左端を0とする番号を割り振って、指定した番号から指定した個数の文字を抜き出して新たな文字列として返します。
    上記の例では、「"忙しい"」が戻り値となります。

lvRemoveSuffix

lvRemoveSuffix("おおいそのいそいそしたひと", 6)
  • 引数:文字列、数値(削除文字数)
    戻り値:文字列
  • 指定した文字数を末尾から削除してできた新たな文字列を返します。
    上記の例では、「"おおいそのいそ"」が戻り値となります。

lvPositionCenterX

lvPositionCenterX("theGame")
  • 引数:文字列(個体名)
    戻り値:数値
  • 指定した文字列を個体名に持つ個体の描画中心のx座標(左右方向の座標)を返します。
    個体が存在しない、あるいは位置を持たない個体(音声等)である場合にはエラーとなります。

lvPositionCenterY

lvPositionCenterY("theGame")
  • 引数:文字列(個体名)
    戻り値:数値
  • 指定した文字列を個体名に持つ個体の描画中心のy座標(上下方向の座標)を返します。
    個体が存在しない、あるいは位置を持たない個体(音声等)である場合にはエラーとなります。

lvPositionCenterZ

lvPositionCenterZ("theGame")
  • 引数:文字列(個体名)
    戻り値:数値
  • 指定した文字列を個体名に持つ個体の描画中心のz座標(前後方向の座標)を返します。
    個体が存在しない、あるいは位置を持たない個体(音声等)である場合にはエラーとなります。

lvPositionDeltaX

lvPositionDeltaX("target01")
  • 引数:文字列(個体名)
    戻り値:数値
  • 指定した文字列を個体名に持つ個体の前フレームとのx座標(左右方向の座標)の差を返します。
    個体が存在しない、あるいは位置を持たない個体(音声等)である場合にはエラーとなります。

lvPositionDeltaY

lvPositionDeltaY("target01")
  • 引数:文字列(個体名)
    戻り値:数値
  • 指定した文字列を個体名に持つ個体の前フレームとのY座標(上下方向の座標)の差を返します。
    個体が存在しない、あるいは位置を持たない個体(音声等)である場合にはエラーとなります。

lvTileX

lvTileX("target01")
  • 引数:文字列(個体名)
    戻り値:数値
  • 指定した文字列を個体名に持つ個体の位置するタイルのx番号(左右方向の番号)を返します。
    個体が存在しない場合にはエラーとなります。

lvTileY

lvTileY("target01")
  • 引数:文字列(個体名)
    戻り値:数値
  • 指定した文字列を個体名に持つ個体の位置するタイルのy番号(上下方向の番号)を返します。
    個体が存在しない場合にはエラーとなります。

lvKeyFree

lvKeyFree("r.click")
  • 引数:文字列(キー名)
    戻り値:真偽
  • 指定した文字列がキー名であり、かつそのキーが押されていなければ「true」、押されていれば「false」を返します。
    存在しないキー名を記述した場合にはエラーとなります。

lvKeyDown

lvKeyDown("r.click")
  • 引数:文字列(キー名)
    戻り値:真偽
  • 指定した文字列がキー名であり、かつそのキーが押されていれば「true」、押されていなければ「false」を返します。
    存在しないキー名を記述した場合にはエラーとなります。

lvSaveExists

lvSaveExists(15)
  • 引数:数値(スロット番号)
    戻り値:真偽
  • 指定したスロットにセーブデータが存在していれば「true」、存在しなければ「false」を返します。

lvSaveImagePath

lvSaveImagePath(15)
  • 引数:数値(スロット番号)
    戻り値:文字列(セーブ画像のファイルパス)
  • 指定したスロットにセーブデータが存在していれば、セーブ画像のファイルパスを文字列として返します。
    存在しなければ「""」を返します。

lvSaveInfo

lvSaveInfo(15, "date")
  • 引数:数値(スロット番号)、文字列(情報名)
    戻り値:文字列(情報)
  • 指定したスロットにセーブデータが存在していれば、「Info」内の指定した情報を文字列として返します。
    情報名の確認は、各セーブデータのxmlファイルの2行めで確認できます。通常は「"date"」「"text"」のいずれかを記述します。
    セーブデータや情報名が存在しなければ「""」を返します。

lvSaveGetDataVar

lvSaveGetDataVar(15, "point")
  • 引数:数値(スロット番号)、文字列(変数名)
    戻り値:変数値
  • 指定したスロットにセーブデータが存在していれば、指定した保存変数の値を同じ型で返します。
    セーブデータや変数名が存在しなければ「""」を返します。