#freeze
TITLE:コマンドとは
#contents
~
*コマンドとは何か[#command0]
Light.vnは、スクリプト文中の行頭に「~」を付与すると、以降をコマンド(命令語)として認識します。コマンドを駆使することで、様々な演出やシステムを構築することができます。
エディター上でスクリプトを表示すると、コマンドはテキストから区別され、テキストのような全体に渡る青ではなく、コマンドの日本語名に大分類ごとの色が付き、設定項目や数値などは黒色で表示されます。
もしもコマンドとして設定したはずのものが全体に渡って青く表示されていたら、それは文章扱いになっているということですので、コマンドの先頭に「~」を付与しましょう。
///////////////////////////////////////////////////////////////////////////////////////////////////
*使用方法 [#command1]
コマンドごとに設定されている日本語名をスクリプトの行内に記述することで、そのコマンドを使用します。
コマンド名 設定項目 設定項目 設定項目 ……
コマンド名のあとにスペースを挿入しながら各項目を設定してゆき、必須項目をすべて正しく設定できれば、そのコマンドが適用されます。
**設定項目の記述について[#command1a]
コマンド名の後ろに続く設定項目の記述には、いくつかの種類があります。
-''命名''
コマンドによって設定・表示する個体に対して、新しく個体名を付けます。
この個体名は、コマンドの適用対象を指定する際に用いることになります。
なお、使用する素材のファイル名に個体名を合わせる必要はなく、日本語を用いることも可能です。
項目参照:[[命名について>#command1a1]]
-''個体名''
コマンドを適用する対象の個体名を記述します。
命名した個体名の他に、一部の語句を代用することがあります。
項目参照:[[個体名について>#command1a2]]
-''ファイル名''
「image01.png」などのファイル名を記述します。
ファイル名は、全角・半角や、英字の大文字・小文字まで正確に記述する必要があります。
-''数値''
基本は数字や計算用記号を記述します。
16進数等などの特殊な場合には半角英字や記号が用いられることもあります。
なお、''カラーコードの指定時には、最大値が255、最小値が0となります''。
項目参照:[[座標について>#command1a3]]・[[加速度について>#command1a4]]
-''設定項目の語句''
コマンド目録内にある表において「設定項目」の列にある語句をそのまま記述します。
たとえば、カメラ操作の適用範囲から素材を除外する「カメラ付着」を設定する場合は、設定項目として「カメラ付着」と記述します。
-''コマンド''
コマンドの中には、さらに別のコマンドを指定するものがあります。
その場合は、設定するコマンドの日本語名を記述してから、各設定項目を記述します。
なお、Ver16.0.0以降では、当該コマンドが''現画面領域の最下層スクリプトを基準に実行されます''。
-''テキスト''
コマンド「文字」やコマンド「ダイアログ」など、テキストを使用するコマンドにおいて記述します。
記述の際には、''「"」を文頭と末尾に付与することが必要になります''。
&color(Red){''Ver5.7.0以前では「"」を末尾に置く必要はありませんでしたが、Ver6.0.0から必須になりました''。''また、「'」は用いることができなくなりました''。};
''コマンドの設定項目としてテキストを用いる場合に限り、「"」を付与しても以降のスクリプト文はテキスト区間扱いになりません''。
-''式''
「()」で囲んだ式を記述します。コマンドによっては「"」で囲むこともあります。
変数における右辺設定値やコマンド「もし」における条件に用います。
項目参照:[[変数>commands/var#var]]・[[もし>commands/var#if]]
**命名について[#command1a1]
-同じコマンドにおいて同じ個体名を命名すると、先に設定されていた個体は抹消され、''直近に設定された素材や座標を反映して、個体が更新されます''。
したがって、''同じコマンドで複数の個体を設定したい場合は、必ず異なる個体名を命名する必要があります''。
-&color(Red){Ver6.0.0から変数機能の拡張に伴って命名規則が追加されました。};
--''数字を個体名の先頭に用いることはできません''。
--''演算子を個体名の途中に用いることはできません''。
-''特定の機能や性質を持つ個体が複数ある場合は、適当な規則を与えておくと便利です''。
たとえば、立ち絵の個体名の先頭に「ch_」を用いるようにすると、コマンド「アウト ch_.*」によって立ち絵だけをすべて退場させることができます(項目参照:[[正規表現に触れてみよう>app#app04]])。
**個体名について[#command1a2]
-効果コマンドの多くは、複数の対象個体を指定できます。
指定の際には''個体名の末尾ごとに「,」を付与したうえで、スペースを挿入する必要があります''。
イン ball1, ball2, goal, ……
-対象の指定には、個体名の他にいくつかの語句を用いることができます。
--''素材関係のコマンド名''
一部の効果コマンドにおいて、個体コマンドのコマンド名を個体名として用いることができます。
たとえば、コマンド「ボタン」によって設定されたボタン個体が複数ある場合に、コマンド「アウト ボタン」を適用すると、すべてのボタン個体が退場します。
--''全部''
対象名に「全部」と記述すると、画面上に表示しているすべての個体が指定されます(透明度0のものも含みます)。
たとえば、コマンド「アウト 全部」を適用すると、表示しているすべての素材個体が退場します。
-Ver13.2.1より、個体名にテキスト(「"」で囲んだ文字列)を用いることができるようになりました。
**座標について[#command1a3]
個体コマンドで個体を設置する際に、座標を指定することがあります。
-座標とは、画面上における個体の位置のことです。1ピクセルを1単位として、「x座標」と「y座標」を合わせて指定します。
3Dカメラモードの場合には「z座標」も指定することになります。
--「ピクセル」という単位は、画素1個分の大きさを指します。
あなたがいま見ている画面をよく見ると、極めて小さい点が見えると思いますが(見えなくても、そういうものなのだと考えてください)、それこそが画素です。
「解像度」などとも呼ばれ、画像のサイズを表す際に用いられることが多いです。
-x座標は、''画面の左端を0として、右方向へ水平にどれだけ離れているか''を表します。
x座標「100」は、画素100個分、右方向に離れた位置を指し、「-100」は、画素100個分、左方向に離れた位置を指します。
-y座標は、''画面の上端を0として、下方向へ垂直にどれだけ離れているか''を表します(数学等ではy座標の正の方向を上方向とするのが一般的ですが、今は下向きであるということに注意しましょう)。
y座標「100」は、画素100個分、下方向に離れた位置を指し、「-100」は、画素100個分、上方向に離れた位置を指します。
-上では“画面上”としましたが、画面外の位置を指定することも可能です。
**加速度について[#command1a4]
効果コマンドにおいて、効果時間を設定すると、加速度を指定できる場合があります。
指定する際の数値は、「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回:範囲内)
[[「加速度」の実演(制作:tatsu)>https://youtu.be/Wilz2colYnc]]
#flex_container(flex-start){{{
#flex_box(450px){{
#youtube(Wilz2colYnc)
}}
}}}
#fold(参照スクリプト記述(制作:tatsu)){{
>//a加減速一覧(ver16.5.1対応版)
>ウインドウクリア色 128 128 128
>//────────────────────────────────────
>キーダウン l.click 続行
>キーダウン space 透明度 説明文字.* 0 //説明文字が邪魔な時に非表示にする
>キーアップ space 透明度 説明文字.* 255
>//────────────────────────────────────
>変数 移動時間 = 3000 //移動時間を変更したい時はここの数字を変える
>変数 win_WH = lvSystem::ViewportSize() //ある程度作品解像度が違っても表示できるように基準座標を解像度から算出
>変数 軌跡描画 = 1 //移動の軌跡を描画(1で描画、1以外の数字で描画しない)
>臨時全域変数 軌跡分割数 = 30 //表示する軌跡の数(大きくする時は移動時間を長くとること※重くなるので注意)
>//────────────────────────────────────
>文字 操作説明 (win_WH[0]/2) (win_WH[1]-30) 100 NotoSansCJKjp-Bold.ttf 28 中央 "左クリックで次、右クリックでリピート、spaceで文字非表示"
>///////////////////////////////////////////////////////////////////
>栞 加速・減速系
>キーダウン r.click ジャンプ 加速・減速系 //右クリックでリピート
>スクリプト 現在 画像リセット 80
>
>文字0 説明文字 50 10 100 NotoSansCJKjp-Bold.ttf 28 "加速・減速系"
>文字0 説明文字2 (win_WH[0]-150) (60*1) 100 NotoSansCJKjp-Bold.ttf 28 "基準速度"
>文字0 説明文字3 (win_WH[0]-150) (60*3) 100 NotoSansCJKjp-Bold.ttf 28 "加速"
>文字0 説明文字4 (win_WH[0]-150) (60*6) 100 NotoSansCJKjp-Bold.ttf 28 "減速"
>文字0 説明文字5 (win_WH[0]-150) (60*9) 100 NotoSansCJKjp-Bold.ttf 28 "加速&減速"
>もし ( lvKeyFree("space") ) 透明度 説明文字.* 255
>
>絵 Line1 btn_sel.png 400 (60*1 + 28) 50 | 拡大 Line1 300% 2%
>絵 Line2 btn_sel.png 400 (60*4 + 28) 50 | 拡大 Line2 300% 2%
>絵 Line3 btn_sel.png 400 (60*7 + 28) 50 | 拡大 Line3 300% 2%
>
>文字 a1 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a1" | 親子 id1 a1
>文字 a2 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a2" | 親子 id2 a2
>文字 a8 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a8" | 親子 id3 a8
>文字 a5 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a5" | 親子 id4 a5
>文字 a3 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a3" | 親子 id5 a3
>文字 a9 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a9" | 親子 id6 a9
>文字 a6 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a6" | 親子 id7 a6
>文字 a4 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a4" | 親子 id8 a4
>文字 a10 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a10" | 親子 id9 a10
>文字 a7 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a7" | 親子 id10 a7
>待機
>
>臨時全域変数 t = 0 //砂時計を反復する度に増やす数字
>もし (軌跡描画 == 1 ) 砂時計 recTimer (移動時間/軌跡分割数) 反復 スクリプト 現在 軌跡記録 10 //移動時間を軌跡分割数で分割して軌跡を表示(引数の10は軌跡を表示する個体(白丸画像)の数)
>待機 (移動時間/軌跡分割数) //開始点の軌跡を描画するために待機
>//等速(基準速度)
>移動x id0 (win_WH[0]-350) (移動時間)
>移動x id1 (win_WH[0]-200) (移動時間) a1
>
>//加速
>移動x id2 (win_WH[0]-200) (移動時間) a2
>移動x id3 (win_WH[0]-200) (移動時間) a8
>移動x id4 (win_WH[0]-200) (移動時間) a5
>
>//減速
>移動x id5 (win_WH[0]-200) (移動時間) a3
>移動x id6 (win_WH[0]-200) (移動時間) a9
>移動x id7 (win_WH[0]-200) (移動時間) a6
>
>//加速&減速
>移動x id8 (win_WH[0]-200) (移動時間) a4
>移動x id9 (win_WH[0]-200) (移動時間) a10
>.移動x id10 (win_WH[0]-200) (移動時間) a7
>アウト recTimer
>待機
>
>
>///////////////////////////////////////////////////////////////////
>栞 バウンド系
>
>キーダウン r.click ジャンプ バウンド系 //右クリックでリピート
>スクリプト 現在 画像リセット 200
>
>文字0 説明文字 50 10 100 NotoSansCJKjp-Bold.ttf 28 "バウンド系"
>文字0 説明文字1 (win_WH[0]-220) (60*1) 100 NotoSansCJKjp-Bold.ttf 28 "基準速度"
>文字0 説明文字2 (win_WH[0]-220) (60*2+8) 100 NotoSansCJKjp-Bold.ttf 15 "一度後ろに勢いをつけて加速"
>文字0 説明文字3 (win_WH[0]-220) (60*3+8) 100 NotoSansCJKjp-Bold.ttf 15 "減速・終点通過後ゆっくり戻る"
>文字0 説明文字4 (win_WH[0]-220) (60*4+8) 100 NotoSansCJKjp-Bold.ttf 15 "後ろに勢いをつけて終点通過"
>文字0 説明文字5 (win_WH[0]-220) (60*5+8) 100 NotoSansCJKjp-Bold.ttf 15 "前後に勢いをつけてから加速"
>文字0 説明文字6 (win_WH[0]-220) (60*6+8) 100 NotoSansCJKjp-Bold.ttf 15 "終点を通過して戻って来る"
>文字0 説明文字7 (win_WH[0]-220) (60*7+8) 100 NotoSansCJKjp-Bold.ttf 15 "a4のバウンド版?"
>文字0 説明文字8 (win_WH[0]-220) (60*8+8) 100 NotoSansCJKjp-Bold.ttf 15 "ゴムを引きちぎるような動き"
>文字0 説明文字9 (win_WH[0]-220) (60*9+8) 100 NotoSansCJKjp-Bold.ttf 15 "終点でバウンド"
>文字0 説明文字10 (win_WH[0]-220) (60*10+8) 100 NotoSansCJKjp-Bold.ttf 15 "a17とa18のハイブリッド"
>もし ( lvKeyFree("space") ) 透明度 説明文字.* 255
>
>文字 a1 4 28 0 NotoSansCJKjp-Bold.ttf 20 "a1" | 親子 id1 a1
>文字 a11 0 28 0 NotoSansCJKjp-Bold.ttf 20 "a11" | 親子 id2 a11
>文字 a12 0 28 0 NotoSansCJKjp-Bold.ttf 20 "a12" | 親子 id3 a12
>文字 a13 0 28 0 NotoSansCJKjp-Bold.ttf 20 "a13" | 親子 id4 a13
>文字 a14 0 28 0 NotoSansCJKjp-Bold.ttf 20 "a14" | 親子 id5 a14
>文字 a15 0 28 0 NotoSansCJKjp-Bold.ttf 20 "a15" | 親子 id6 a15
>文字 a16 0 28 0 NotoSansCJKjp-Bold.ttf 20 "a16" | 親子 id7 a16
>文字 a17 0 28 0 NotoSansCJKjp-Bold.ttf 20 "a17" | 親子 id8 a17
>文字 a18 0 28 0 NotoSansCJKjp-Bold.ttf 20 "a18" | 親子 id9 a18
>文字 a19 0 28 0 NotoSansCJKjp-Bold.ttf 20 "a19" | 親子 id10 a19
>
>待機
>臨時全域変数 t = 0
>もし (軌跡描画 == 1 ) 砂時計 recTimer (移動時間/軌跡分割数) 反復 スクリプト 現在 軌跡記録 10
>待機 (移動時間/軌跡分割数) //開始点の軌跡を描画するために待機
>//a1_等速(基準速度)
>移動x id0 (win_WH[0]-450) (移動時間)
>移動x id1 (win_WH[0]-300) (移動時間) a1
>//a11_一度後ろに勢いをつけて加速
>移動x id2 (win_WH[0]-300) (移動時間) a11
>//a12_最後にバウンド(終点通過後、ゆっくり戻る)
>移動x id3 (win_WH[0]-300) (移動時間) a12
>//a13_後ろに勢いをつけて終点通過(a4のバウンド版?/バウンド1回)
>移動x id4 (win_WH[0]-300) (移動時間) a13
>//a14_最初にバウンド(前後に勢いをつけてから加速)
>移動x id5 (win_WH[0]-300) (移動時間) a14
>//a15_最後にバウンド(トランポリンのように終点を一度通過して戻って来る)
>移動x id6 (win_WH[0]-300) (移動時間) a15
>//a16_最初と最後にバウンド(a4のバウンド版?/バウンド複数回)
>移動x id7 (win_WH[0]-300) (移動時間) a16
>//a17_最初にバウンド(ゴムに繋がれたまま引きちぎるような動き)
>移動x id8 (win_WH[0]-300) (移動時間) a17
>//a18_最後にバウンド(壁や地面で跳ねるように終点でバウンド)
>移動x id9 (win_WH[0]-300) (移動時間) a18
>//始点と終点でバウンド(a17とa18のハイブリッド)
>.移動x id10 (win_WH[0]-300) (移動時間) a19
>アウト recTimer
>待機
>
>//最初に戻る
>ジャンプ 加速・減速系
>待機 続行禁止
>//---------------------------------------------
>栞 画像リセット _x
>アウト 説明文字.*, Line.*, a.*, id.*_.*
>//移動aテスト
>絵 id1 sys/sys_trackball.png (_x) (60*1) 300
>絵 id2 sys/sys_trackball.png (_x) (60*2) 300
>絵 id3 sys/sys_trackball.png (_x) (60*3) 300
>絵 id4 sys/sys_trackball.png (_x) (60*4) 300
>絵 id5 sys/sys_trackball.png (_x) (60*5) 300
>絵 id6 sys/sys_trackball.png (_x) (60*6) 300
>絵 id7 sys/sys_trackball.png (_x) (60*7) 300
>絵 id8 sys/sys_trackball.png (_x) (60*8) 300
>絵 id9 sys/sys_trackball.png (_x) (60*9) 300
>絵 id10 sys/sys_trackball.png (_x) (60*10) 300
>//id0基準速度マーカー
>絵 id0 btn_sel.png (_x-150) 200 300 | 回転 id0 90 | 拡大 id0 300% 2%
>スクリプト終了
>//---------------------------------------------
>栞 軌跡記録 _max
>臨時全域変数 t += 1
>変数 i = 0
>栞 軌跡記録ループ始点
>変数 i += 1 | 変数 name = (lvRandomName("id{{i}}_"))
>絵 {{name}} sys/sys_trackball.png (lvPositionCenterX("id{{i}}")-15) (60*i) (-100+t)
>色調 {{name}} ((180/(軌跡分割数+1))*t+75) (255-((255/(軌跡分割数+1))*t)) 0
>もし (i < _max) ジャンプ 軌跡記録ループ始点
>スクリプト終了
>//---------------------------------------------
>待機 続行禁止
}}
**カメラオプションについて[#command1a5]
-画像・動画素材を用いるコマンドにおいて、カメラに対する反映方法を指定するのが、設定項目「カメラオプション」です。
2D・3Dのいずれにおいても影響のある設定項目です。
--「カメラ付着」は、カメラ操作の影響を除外します。したがって、常に画面上で定常状態を保ちます。
--「2D視点」は、2Dカメラモードでの見え方に従って表示します。
--「3D視点」は、3Dカメラモードでの見え方に従って表示します。
--「y軸固定」は、カメラに対するy軸の角度を一定に保ちます。カメラの横移動やy軸回転に対して個体が回転しているように見えなくなるということです。
--「xy軸固定」は、カメラに対するx-y軸の角度を一定に保ちます。カメラの縦横移動やx-y軸回転に対して個体が回転しているように見えなくなるということです。
**画面領域について[#command1a6]
-個体の管理に関して、Ver12.2.0で導入されたのが「画面領域」です。
画面領域は''個体とキートリガーに領域名を付加することでグループ化する''役割を担います。
-画面領域はスタックの概念を用います。
最下層に「vn_screen_space_main」が常時存在し(抹消不可)、新たな画面領域が作成されれば積み上げられてゆきます。
''最上位の画面領域には、以降に設定される個体とキートリガーが属することになります''。
-''キートリガーは、属している画面領域が最上位にある時のみ適用されます''。
これは''同じキー入力でも画面領域毎に異なるコマンドを適用するように設定することが可能''ということでもあります。
--画面領域が作成されると、''既存のキートリガーはすべて一時的に初期化されます''(設定は保存されており、後で呼び出せます)。
そして、''以降に設定されたキートリガーはその時点での最上位の画面領域に紐付きます''。
それらの設定は、紐付いている画面領域がスタック内に存在する限りは保存されます。
いわば「画面領域限定のキートリガーが設定される」ということです。
--画面領域が削除されると、''その画面領域に紐付いていたキートリガーは完全に抹消されます''。
そして、''次の最上位画面領域に紐付いているキートリガーが有効になります''。
--たとえば、最下層ではコマンド「スクリプト hide.txt」を、第1層ではコマンド「スクリーンショット」を、
第2層(最上位)ではコマンド「ダイアログ選択 no」を、キー「space」に設定したとしましょう。
この場合、最初のスペースキー押下で適用されるのはコマンド「ダイアログ選択 no」です。
その後、第2層が削除されると、以降はスペースキー押下でコマンド「スクリーンショット」が適用されます。
第1層が削除されれば、スペースキーの押下はコマンド「スクリプト hide.txt」の適用のキートリガーとなります。
-効果コマンドの対象に、画面領域の条件を設定することができます。''この範囲指定は対象名によるものに優先します''。
また、''設定しない場合には「最上位の画面領域に属する個体」が範囲として指定されます''。
旧Verとは指定方式が異なるため、更新の際にはご注意ください。
--''同階層画面領域''
コマンド「画面領域上書き」を使用していなければ、最上位の画面領域に属する個体が範囲に含まれます。
使用している場合には、''最上位の画面領域とその旧版の画面領域に属する個体''が範囲に含まれます。
これは上書きの前後の画面領域が同階層として扱われることに因るものです。
いずれにせよ、''対象名が「全部」や正規表現であっても、対象となるのは画面領域範囲に属する個体のみとなります''。
--''全画面領域''
画面領域による範囲指定を解除し、すべての個体を対象に含めたうえで、対象名に合致する個体にコマンドが適用されます。
Ver12.0.0以前の対象指定はこちらの方式でした。
-画面領域を抹消するのは、その画面領域に属する個体がすべて退場した後にしましょう。
個体には画面領域情報が紐付けられているため、仮に個体が残っている状態で画面領域を抹消してしまうと
その個体を画面領域によって指定することが難しくなります(同じ名前の画面領域を再度作成すれば可能)。
&br;
-例え話を交えて「画面領域」について詳しく解説されている動画でお勉強してみましょう。
--[[雪原放送局#15「Light vn 特別配信 『画面領域(前編)』」>https://www.youtube.com/watch?v=HEj6TVUue5c&t=2s]]
--[[雪原放送局#16「Light vn 特別配信 『画面領域(後編)』」>https://www.youtube.com/watch?v=Joq3WZYIimI]]
#flex_container(flex-start){{{
#flex_box(450px){{
#youtube(HEj6TVUue5c)
}}
#flex_box(450px){{
#youtube(Joq3WZYIimI)
}}
}}}
~
*コマンドの種類[#command2]
コマンドには以下のような種類があります。
-''個体コマンド(素材コマンド)''
各フォルダ内に存在する素材を使用して、画面上やシステム上に様々な個体を設置します。
個体にはそれぞれに個体名の命名が必要となります(背景音を除く)。設置と同時になんらかの効果や機能を設定するものもあります。
-''設定コマンド''
個体コマンドによって設定された個体を指定して、なんらかの機能・性質を付加・抹消します。
-''効果コマンド(演出コマンド)''
個体コマンドによって設定された個体を指定して、なんらかの効果の適用、またはなんらかの視覚的な操作を行います。
--効果コマンドの多くは''コマンド名の末尾に「2」を付与すると、コマンド適用前の状態を基準とする相対的な変化になります''。
--効果時間の設定項目を持つ効果コマンドは、''コマンド名の先頭に「.」を付与すると、コマンドの適用終了までスクリプトの以降行の読込みを一時待機します''。このようなコマンドは「''シンクロコマンド''」と呼ばれます。
シンクロコマンドは、キートリガーや砂時計個体などの適用コマンドとして設定することはできませんが、スクリプトを通して間接的に設定することはできます。
-''システムコマンド''
システムの構築、ゲームの動作や処理の設定・適用・変更を行います。
-''カメラ操作コマンド(カメラ操作)''
コマンド「移動」「回転」「拡大」の対象名に「カメラ」と記述したものと、コマンド「カメラモード」「カメラ初期化」を指します。
カメラ操作コマンドが適用されると、各コマンドで設定する項目における基準そのものが変更されたように見えます。
カメラ操作コマンドを使うには、個体の移動とカメラ操作とを区別して捉えることが求められます。
--たとえば、コマンド「移動 カメラ 100 100」は、画面上の基準座標(画面の左上頂点の座標)を[x=0,y=0]から[x=100,y=100]へと変更します。
これによって、画面上のあらゆる個体は、既定のx・y座標にそれぞれ-100を加えた座標へと移動するように見えます。
これは、カメラが描画する座標(絶対座標)からカメラの移動を見るといずれも+100の移動となり、カメラから絶対座標の移動を見るといずれも-100の移動となるという「相対変化」です。
「個体操作は相手を動かし、カメラ操作は自分が動く」とも言えます。
--カメラ操作コマンドは、実際に移動するのがカメラのみであるため、個体が配置を変更することなく一気に移動するように見せることができます。
複数の移動や拡大を連続させての振動など、個体単体への効果適用では難しい演出も可能になります。
~
~
~