Top > コマンドとは

コマンドとは

Last-modified: 2018-09-02 (日) 03:43:17


コマンドとは何か Edit

Light.vnは、スクリプト文中の行頭に「~」を付与すると、以降をコマンド(命令語)として認識します。コマンドを駆使することで、様々な演出やシステムを構築することができます。
エディター上でスクリプトを表示すると、コマンドはテキストから区別され、テキストのような全体に渡る青ではなく、コマンドの日本語名に大分類ごとの色が付き、設定項目や数値などは黒色で表示されます。
もしもコマンドとして設定したはずのものが全体に渡って青く表示されていたら、それは文章扱いになっているということですので、コマンドの先頭に「~」を付与しましょう。

使用方法 Edit

コマンドごとに設定されている日本語名をスクリプトの行内に記述することで、そのコマンドを使用します。

コマンド名 設定項目 設定項目 設定項目 ……

コマンド名のあとにスペースを挿入しながら各項目を設定してゆき、必須項目をすべて正しく設定できれば、そのコマンドが適用されます。

設定項目の記述について Edit

コマンド名の後ろに続く設定項目の記述には、いくつかの種類があります。

  • 命名
    コマンドによって設定・表示する素材に対して、新しく個体名を付けます。
    この個体名は、コマンドの適用対象を指定する際に用いることになります。
    なお、使用する素材に個体名を合わせる必要はなく、日本語を用いることも可能です。
    項目参照:命名について
  • 個体名
    コマンドを適用する対象の個体名を記述します。
    命名した個体名の他に、一部の語句を代用することがあります。
    項目参照:個体名について
  • ファイル名
    「image01.png」などのファイル名を記述します。
    ファイル名は、全角・半角や、英字の大文字・小文字まで正確に記述する必要があります。
  • 数値
    基本は数字や計算用記号を記述します。
    16進数等などの特殊な場合には半角英字や記号が用いられることもあります。
    なお、カラーコードの指定時には、最大値が255、最小値が0となります
    項目参照:座標について
    項目参照:加速度について
  • 設定項目の語句
    コマンド目録内にある表において「設定項目」の列にある語句をそのまま記述します。
    たとえば、カメラ操作の適用範囲から素材を除外する「カメラ無視」を設定する場合は、設定項目として「カメラ無視」と記述します。
  • コマンド
    コマンドの中には、さらに別のコマンドを指定するものがあります。
    その場合は、設定するコマンドの日本語名を記述してから、各設定項目を記述します。
  • テキスト
    コマンド「文字」やコマンド「ダイアログ」など、テキストを使用するコマンドにおいて記述します。
    記述の際には、「"」を文頭と末尾に付与することが必要になります
    Ver5.7.0以前では「"」を末尾に置く必要はありませんでしたが、Ver6.0.0から必須になりましたまた、「'」は用いることができなくなりました
    コマンドの設定項目としてテキストを用いる場合に限り、「"」を付与しても以降のスクリプト文はテキスト扱いになりません

  • 「()」で囲んだ式を記述します。
    変数における右辺設定値やコマンド「もし」における条件に用います。
    項目参照:変数
    項目参照:もし

命名について Edit

  • 同じコマンドにおいて同じ個体名を命名すると、先に設定されていた個体は抹消され、直近に設定された素材や座標を反映して、個体が更新されます
    したがって、同じコマンドで複数の個体を設定したい場合は、必ず異なる個体名を命名する必要があります
  • Ver6.0.0から変数機能の拡張に伴って命名規則が追加されました。
    • 数字を個体名の先頭に用いることはできません
    • 演算子を個体名の途中に用いることはできません
  • 特定の機能や性質を持つ個体が複数ある場合は、適当な規則を与えておくと便利です
    たとえば、立ち絵の個体名の先頭に「ch_」を用いるようにすると、コマンド「アウト ch_.*」によって立ち絵だけをすべて退場させることができます(項目参照:正規表現に触れてみよう)。
  • 個体名には、先頭に付加することでその個体を特殊な扱いにする記号を用いることができます。
    • 「^」
      名前の先頭に用いると、セーブ時のスクリーンショットに映らなくなります
      サンプルではテキストボックスやシステム系ボタンの個体名に用いられています。
      • この記号を用いると、複数の対象を指定できるコマンドにおいて個体名を記述する際に、「\」を名前の先頭に付加しなければならないということに注意する必要があります。
        たとえば、コマンド「アウト ^item」を実行しようとしても、「^item」を個体名に持つ個体はコマンドの適用対象として認識されません。
        正しくは「アウト \^item」となります。
        ちなみに、「\」はBACKSPACEキーの左隣にあるキー(縦棒、横棒、お金の円を表す記号があるキーかと思われます)を半角入力で押せば入力される「バックスラッシュ」と呼ばれる記号です。
        この記号は既定のフォルダ内に作ったサブフォルダ内の素材やスクリプトのファイル名を指定する時にも必要となります。
    • 「~」
      名前の先頭に用いると、セーブ時のスクリーンショットに映らなくなります。また、「^」との違いとして、セーブデータに記録されなくなり、ロード時に表示されなくなります
      サンプルではセーブ画面の素材に用いられています。
      • ロード時に表示されないことを理解するには、ロード時におけるエンジン側での処理を把握する必要があります。
        セーブデータのファイルには、セーブ時に存在している個体や変数が記録されています。
        ロード時において、エンジンはその記録を基に個体を設置し、ロードを完了します。
        ところが、セーブ時に「~」を用いた個体名を持つ個体が存在している場合、その個体はセーブデータに記録されません。したがって、ロード時に設置されなくなります。
        セーブ画面の個体に用いられているのは、ロード時にセーブ画面の個体を表示した状態でロードが完了してしまうのを回避するためです。
        興味があればセーブデータのファイルを閲覧してみてください。個体がレイヤーごとに保存されていることなどが分かりますよ。

個体名について Edit

  • 効果コマンドの多くは、複数の対象個体を指定できます。
    指定の際には個体名の末尾ごとに「,」を付与したうえで、スペースを挿入する必要があります
    イン ball1, ball2, goal, ……
  • 対象の指定には、個体名の他にいくつかの語句を用いることができます。
    • 素材関係のコマンド名
      一部の効果コマンドにおいて、個体コマンドのコマンド名を個体名として用いることができます。
      たとえば、コマンド「ボタン」によって設定されたボタン個体が複数ある場合に、コマンド「アウト ボタン」を適用すると、すべてのボタン個体が退場します。
    • 全部
      対象名に「全部」と記述すると、画面上に表示しているすべての個体が指定されます(透明度0のものも含みます)。
      たとえば、コマンド「アウト 全部」を適用すると、表示しているすべての素材個体が退場します。

座標について Edit

個体コマンドで個体を設置する際に、座標を指定することがあります。

  • 座標とは、画面上における個体の位置のことです。1ピクセルを1単位として、「x座標」と「y座標」を合わせて指定されます。
    • 「ピクセル」という単位は、画素1個分の大きさを指します。
      あなたがいま見ている画面をよく見ると、極めて小さい点が見えると思いますが(見えなくても、そういうものなのだと考えてください)、それこそが画素です。
      「解像度」などとも呼ばれ、画像のサイズを表す際に用いられることが多いです。
  • x座標は、画面の左端を0として、右方向へ水平にどれだけ離れているかを表します。
    x座標「100」は、画素100個分、右方向に離れた位置を指し、「-100」は、画素100個分、左方向に離れた位置を指します。
  • y座標は、画面の上端を0として、下方向へ垂直にどれだけ離れているかを表します(数学等ではy座標の正の方向を上方向とするのが一般的ですが、今は下向きであるということに注意しましょう)。
    y座標「100」は、画素100個分、下方向に離れた位置を指し、「-100」は、画素100個分、上方向に離れた位置を指します。
  • 上では“画面上”としましたが、画面外の位置を指定することも可能です。

加速度について Edit

効果コマンドにおいて、効果時間を設定すると、加速度を指定できる場合があります。
指定する際の数値は、「a0」のように、先頭に「a」を付与し、加速度の種類を続けます。

  • Light.vnにおける加速度(物理学的な意味から一旦離れて考えましょう)を端的に表現するならば、“変化の種類”です。
    効果コマンドにおいて効果時間を指定すると、通常は等速で変化してゆきます。時間あたりの変化量をグラフ上に表すと、水平な直線となります。
    加速度を設定する場合、このグラフが変形します。ただし、「a0」は変形せず、指定しない場合と同じ等速変化になります。
    加速度の種類は以下のとおり(コマンド「移動」で検証。一般性に関しては要検証)。基本的には数値が大きくなるほど激しい変化になります。
    • 傾きが減少する(右肩下がり・減速する)加速度
      1(要再検証)・3・6・9・12(逆走あり:終動時)・15(逆走あり:終動時・3回)
    • 傾きが増加する(右肩上がり・加速する)加速度
      2・5・8・11(逆走あり:始動時)・14(逆走あり:始動時・3回)
    • 連続で増減する(うねり・減速→加速→減速する)加速度
      4・7・10・13(逆走あり:始動・終動時)・16(逆走あり:始動・終動時・2回ずつ)・17(逆走あり:始動時・3回:範囲内)・18(逆走あり:終動時・3回:範囲内)

コマンドの種類 Edit

コマンドには以下のような種類があります。

  • 個体コマンド(素材コマンド)
    各フォルダ内に存在する素材を使用して、画面上やシステム上に様々な個体を設置します。
    個体にはそれぞれに個体名の命名が必要となります(背景音を除く)。設置と同時になんらかの効果や機能を設定するものもあります。
    該当コマンド:背景・絵・ボタン・シスボタン・文字窓・文字・アニメ登録・背景音・効果音・ボイス・背景ボイス・動画
  • 設定コマンド
    個体コマンドによって設定された個体を指定して、なんらかの機能・性質を付加・抹消します。
    該当コマンド:ボタン表示関連コマンド全般(ボタン・シスボタン・ボタン活性領域を除く)・テキスト関連コマンド全般(文字窓・文字消去・文字自動待機・文字進行・文字スキップ方式・文字・バックログ台詞登録・バックログリセットを除く)
  • 効果コマンド
    個体コマンドによって設定された個体を指定して、なんらかの効果の適用、またはなんらかの視覚的な操作を行います。
    効果コマンドの多くはコマンド名の末尾に「2」を付与すると、コマンド適用前の状態を基準とする相対的な変化になります
    さらに、効果時間の設定項目を持つ効果コマンドは、コマンド名の先頭に「.」を付与すると、コマンドの適用終了までスクリプトの以降行の読込みを一時待機します
    該当コマンド:変化関連コマンド全般(親子・アニメ登録・レイヤ・カメラ初期化を除く)
  • システムコマンド
    システムの構築、ゲームの動作や処理の設定・適用・変更を行います。
    該当コマンド:ボタン活性領域・文字消去・文字自動待機・文字進行・文字スキップ方式・バックログ台詞登録・バックログリセット・親子・レイヤ・スクリプト関連コマンド全般・ボイス再生・一時停止・再生続行・音量・変数関連コマンド全般・システム関連コマンド全般
  • カメラ操作コマンド(カメラ操作)
    コマンド「移動」「回転」「拡大」の対象名に「カメラ」と記述したものと、コマンド「カメラ初期化」を指します。
    カメラ操作コマンドが適用されると、各コマンドで設定する項目における基準そのものを変更します。
    カメラ操作という語句から、カメラを動かすというイメージになる方が多いかと思われますが、実際には“カメラの向こうにある個体を一気に動かす”というイメージが近いです。
    • たとえば、コマンド「移動 カメラ 100 100」は、あらゆるコマンドにおける設定項目「座標」の基準座標を[x=0,y=0]から[x=100,y=100]へと変更します。
      これによって、画面上のあらゆる個体は、既定のx・y座標にそれぞれ100を加えた座標へと移動し、以降は新たな基準座標[x=100,y=100]に従って配置されることになります。
      また、カメラ操作前における画面左上の頂点の座標は[x=0,y=0]ですが、例示したコマンドによるカメラの操作後においては、画面左上の頂点の座標は[x=-100,y=-100]と指定することになります。
    • カメラ操作コマンドは、実際に移動するのがカメラのみであるため、個体が配置を変更することなく一気に移動するように見せることができます。
      複数の移動や拡大を連続させての振動など、個体単体への効果適用では難しい演出も可能になります。