キー操作でキャラクターを動かした時、左右横方向の歩行アニメを適用するスクリプト記述の一例です。
- 「アニメ登録」で歩行アニメを設定しておく。
- 「方向移動」「画像」などで各歩行設定スクリプトを記述する。
- 「キートリガ」の発動コマンドに「スクリプト」を指定する。
これにより、左右横移動中のキャラクターに歩行アニメを適用することができます。
スクリプト記述例
※スクリプト記述例はLight.vn基本サンプル(公式本体)を使用した場合を想定しています。ダウンロードはこちらから。
- スクリプト「sample_script.txt」内に
//歩行アニメ登録 ~アニメ登録 vale_le 1 scg/vale/vale_sampleb.png 100 scg/vale/vale_samplea.png 100 0 ~アニメ登録 vale_ri 1 scg/vale/vale_sampleb.png 100 scg/vale/vale_sampelc.png 100 0
//背景 ~背景0 map maps/box.png | イン map 300 //キャラクター ~絵0 vale scg/vale/vale_sampleb.png 0 140 80 | 拡大 vale 100% | .イン vale 300 //障害物 ~絵0 door1 maps/door_cl.png 950 -250 50 | 拡大 door1 50% | イン door1 300
//キャラクター操作 キーダウン a スクリプト sample_script.txt 左進 キーダウン d スクリプト sample_script.txt 右進 キーアップ a スクリプト sample_script.txt 左停止 キーアップ d スクリプト sample_script.txt 右停止 ~待機 続行禁止 //-----------------------------------------------------------------------
//歩行開始スクリプト 栞 左進 画像 vale vale_le 方向移動x vale -400ups スクリプト終了 栞 右進 画像 vale vale_ri 方向移動x vale 400ups スクリプト終了
//歩行停止スクリプト 栞 左停止 画像 vale scg/vale/vale_sampleb.png 方向移動x vale 0ups スクリプト終了 栞 右停止 画像 vale scg/vale/vale_sampleb.png 方向移動x vale 0ups スクリプト終了
- 【キャラクターをキー操作する設定】スクリプトを基に修正・追記を行っています。
- キーボードの「a」キー「d」キーを押すとキャラクターが移動し、離すと止まるようになっています。
- 左右の移動中にアニメーションを行うようになっています。
開始時に基キャラクターの1枚画像をアニメーションに変換し、停止時にアニメーションを1枚画像に変換しています。
スクリプト解説
移動中に歩行アニメを適用する方法を解説していきます。
1. 指定する歩行アニメーニョンを登録しておく
まずは「アニメ登録」コマンドにて、使用する歩行アニメを登録しておきましょう。
左右のそれぞれの画像を使用します。
※今回は、歩行のための素材ではなく、例としてサンプルにあった素材をアニメーションさせています。
「背景」「障害物」「キャラクター」も配置しておきます。
以下、表示サンプル例。
- スクリプト「sample_script.txt」内に
//歩行アニメ登録 ~アニメ登録 vale_le 1 scg/vale/vale_sampleb.png 100 scg/vale/vale_samplea.png 100 0 ~アニメ登録 vale_ri 1 scg/vale/vale_sampleb.png 100 scg/vale/vale_sampelc.png 100 0
//背景 ~背景0 map maps/box.png | イン map 300 //キャラクター ~絵0 vale scg/vale/vale_sampleb.png 0 140 80 | 拡大 vale 100% | .イン vale 300 //障害物 ~絵0 door1 maps/door_cl.png 950 -250 50 | 拡大 door1 50% | イン door1 300
- アニメ登録詳細、それぞれ100ミリ秒表示・変化タイプは画像間の補間なし「0」
「左」---- アニメ個体名「vale_le」 停止(vale_sampleb.png)→ 左移動(vale_sampelc.png)の順番でループ。
「右」---- アニメ個体名「vale_ri」 停止(vale_sampleb.png)→ 右移動(vale_samplea.png)の順番でループ。
2. 歩行スクリプト(移動設定)を記述する
「キーダウン」コマンド指定用の歩行開始スクリプト「左進」「右進」を記述します。
それぞれ「画像」「方向移動」の2つのコマンドを実行するようになっています。
以下、表示サンプル例。
- 上記(「~待機 続行禁止」以降の行)に追記で
//歩行開始スクリプト 栞 左進 画像 vale vale_le 方向移動x vale -400ups スクリプト終了 栞 右進 画像 vale vale_ri 方向移動x vale 400ups スクリプト終了
- 「栞」「スクリプト終了」を使い、進む方向のコマンドをまとめます。
- まずは「画像」コマンドでキャラクター1枚絵(vale)を歩行アニメーションに変換します。
アニメ登録名「vale_le」(左)、「vale_ri」(右)
- そしてそれと同時に「方向移動」コマンドで目的方向への移動速度の設定します。
- 「キーダウン」コマンドで、それぞれの「栞」を「スクリプト」コマンドで発動させることで、複数のコマンド(画像、方向移動)を実行することができます。
3. 歩行スクリプト(停止設定)を記述する
「キーアップ」コマンド指定用の歩行停止スクリプト「左停止」「右停止」を記述します。
こちらもそれぞれ「画像」「方向移動」の2つのコマンドを実行するようになっています。
以下、表示サンプル例。
- 上記に追記で
//歩行停止スクリプト 栞 左停止 画像 vale scg/vale/vale_sampleb.png 方向移動x vale 0ups スクリプト終了 栞 右停止 画像 vale scg/vale/vale_sampleb.png 方向移動x vale 0ups スクリプト終了
- 「栞」「スクリプト終了」を使い、停止のコマンドをまとめます。
- 今度は「画像」コマンドで歩行アニメーションをキャラクター1枚絵(vale)に戻します。
この変換によりアニメーションを停止させることができます。
1枚絵「vale_sampleb.png」(左)、「vale_sampleb.png」(右)
※「アニメ再生」「アニメ一時停止」などのコマンドでも同じようにアニメ開始・停止を扱えますが、今回は記述が増えてしまうだけだったので省略しました。
- それと同時に「方向移動」コマンドで移動速度を「0」にすることで移動を停止させます。
- 「キーアップ」コマンドで、それぞれの「栞」を「スクリプト」コマンドで発動させることで、複数のコマンド(画像、方向移動)を実行することができます。
4.「スクリプト」コマンドで各歩行スクリプトを呼び出す
キートリガの発動コマンドに「スクリプト」コマンドを指定します。
「スクリプト」コマンドでは「歩行開始スクリプト」「歩行停止スクリプト」を実行するように、対応する「栞」を指定します。
以下、表示サンプル例。
- 上記(「歩行開始スクリプト」よりも上の行)に追記で
//キャラクター操作 キーダウン a スクリプト sample_script.txt 左進 キーダウン d スクリプト sample_script.txt 右進 キーアップ a スクリプト sample_script.txt 左停止 キーアップ d スクリプト sample_script.txt 右停止 ~待機 続行禁止 //-----------------------------------------------------------------------
例では「a」キー「d」キーを操作キーとして割り当てています。
- 今回は「キーダウン」「キーアップ」の発動コマンドに「方向移動」ではなく「スクリプト」を指定します。
歩行アニメと方向移動など、同時に複数のコマンドを実行させる時には「栞」と「スクリプト終了」で挟んだ複数コマンドを「スクリプト」コマンドで呼び出します。
- 「待機 続行禁止」は、以降に記述するスクリプトを読み込まないようにするため、ここで止めています。
今回は以降の行に「歩行スクリプト」を記述しているため、必須記述となります。