キャラクターのキー操作・横スクロール1【キャラクターをキー操作する設定】【基本スクリプト】

Last-modified: 2023-08-28 (月) 13:53:59

キー操作でキャラクターを動かすスクリプト記述の一例です。

  1. 「背景」「絵」で背景・障害物・キャラクターを表示させる。
  2. 「キートリガ」と「方向移動x」でキー操作を設定する。

これにより、左右に横移動するキャラクターを作り出すことができます。
本当に基本的なキー操作スクリプトなので、まだ歩行アニメ、画面枠での衝突、障害物との衝突などの設定はされていません。



スクリプト記述例

スクリプト記述例はLight.vn基本サンプル(公式本体)を使用した場合を想定しています。ダウンロードはこちらから。

  • 新規スクリプト「sample_script.txt」内に
    //背景
    ~背景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 方向移動x vale -400ups
    キーダウン d 方向移動x vale 400ups
    キーアップ a 方向移動x vale 0ups
    キーアップ d 方向移動x vale 0ups
    ~待機 続行禁止
    //-----------------------------------------------------------------------
    キャラクターをキー操作する設定
    • 新規スクリプト」はエディターの右上「新規スクリプトボタン」を押すことで作成できます。
      PC上で新規テキストを作成し、「scripts」フォルダに移動させることでも可能です。
  • キーボードの「a」キー「d」キーを押すとキャラクターが移動し、離すと止まる設定になっています。


スクリプト解説

画像の配置とキー操作の設定を解説していきます。


1.「背景」コマンド「絵」コマンドで素材画像を表示

背景」「障害物」「キャラクター」をそれぞれ任意の位置に配置しましょう。
配置は「背景」コマンド「」コマンドを使用します。
以下、表示サンプル例。

  • 新規スクリプト「sample_script.txt」内に
    //背景
    ~背景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
    背景・木・キャラクター


2. キートリガコマンドでキー設定

キーダウン」コマンド「キーアップ」コマンドで操作キーを指定し、発動コマンドに「方向移動x」コマンドを記述します。
以下、表示サンプル例。

  • 上記に追記で
    //キャラクター操作
    キーダウン a 方向移動x vale -400ups
    キーダウン d 方向移動x vale 400ups
    キーアップ a 方向移動x vale 0ups
    キーアップ d 方向移動x vale 0ups
    ~待機 続行禁止
    //-----------------------------------------------------------------------
    キー操作
  • 例では「a」キー「d」キーを操作キーとして割り当てています。
  • キーダウン」は「指定キーを押した瞬間」に「なんのコマンドを発動させるか」を指定できるコマンドです。
    逆に「キーアップ」は「指定キーを離した瞬間」に「なんのコマンドを発動させるか」を指定できるコマンドです。
    キーダウンのwikiコマンド説明には使用できる対応キー表があるので、確認して指定キーを変えて試してみるのも良いと思います。
    右クリックで右移動、なんてこともできるようになります。
  • 方向移動」は「ms式」と「ups式」の2種類の記述方式があります。
    ms式」は「x方向」「y方向」に「どれだけのpx距離」を「どれだけの時間」で移動させるかを指定できるコマンドになります。
    キーダウン a 方向移動x vale 500 2000
    上記例では、操作したいキャラクターの個体名(vale)を「500px」の距離を「2000ミリ秒」で移動するように設定しています。
    この場合500px移動した時点で自動的に停止してしまうので「キーダウン」ではなく「キー長押し」での指定にすると移動が止まることがなくなります。
    ups式」は「x方向」「y方向」に「どれだけのpx速さ」で移動させるかを指定できるコマンドになります。
    実行している間は指定速度で移動し続けます。
    今回は「キーダウン」でのコマンド1回起動なので「ups式」を採用しています。
    例では400px毎秒での移動速度となっています。
    移動を停止させたい場合は、移動速度または移動距離・移動時間を「0」にします。
    移動」や「速度」などのコマンドでもキャラクターを操作することができますので、分かる人は違いなども比較しながら実装してみてください。
  • 待機 続行禁止」は、以降に記述するスクリプトを読み込まないようにするため、ここで止めています。
    現段階では下にスクリプトがなにもないので、記述してなくても問題ありません。