キャラクターのキー操作・横スクロール2【歩行アニメを適用したキー操作】

Last-modified: 2023-09-05 (火) 09:13:33

キー操作でキャラクターを動かした時、左右横方向の歩行アニメを適用するスクリプト記述の一例です。

  1. 「アニメ登録」で歩行アニメを設定しておく。
  2. 「方向移動」「画像」などで各歩行設定スクリプトを記述する。
  3. 「キートリガ」の発動コマンドに「スクリプト」を指定する。

これにより、左右横移動中のキャラクターに歩行アニメを適用することができます。



スクリプト記述例

スクリプト記述例は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」キーを操作キーとして割り当てています。
  • 今回は「キーダウン」「キーアップ」の発動コマンドに「方向移動」ではなく「スクリプト」を指定します。
    歩行アニメと方向移動など、同時に複数のコマンドを実行させる時には「」と「スクリプト終了」で挟んだ複数コマンドを「スクリプト」コマンドで呼び出します。
  • 待機 続行禁止」は、以降に記述するスクリプトを読み込まないようにするため、ここで止めています。
    今回は以降の行に「歩行スクリプト」を記述しているため、必須記述となります。