マップ機能ではないマップ移動1【キャラクターをキー操作する設定】【基本スクリプト】

Last-modified: 2023-09-05 (火) 08:29:53

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

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

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



スクリプト記述例

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

  • 新規スクリプト「sample_script.txt」内に
    //背景
    ~背景0 map maps/box.png | イン map 300
    //障害物
    ~絵0 tree1 maps/tree_02.png 50 -102 80 | 拡大 tree1 50% | イン tree1 300
    ~絵0 tree2 maps/tree_02.png 750 -450 80 | 拡大 tree2 50% | イン tree2 300
    ~絵0 tree3 maps/tree_02.png 750 250 80 | 拡大 tree3 50% | イン tree3 300
    ~絵0 door maps/door_cl.png 850 -200 80 | 拡大 door 20% | イン door 300
    //キャラクター
    ~絵0 lam maps/tilemap_tut/lam/front_0.png 660 350 80 | 拡大 lam 300% | イン lam 300
    //キャラクター操作
    キーダウン a 方向移動x lam -400ups
    キーダウン d 方向移動x lam 400ups
    キーダウン w 方向移動y lam -400ups
    キーダウン s 方向移動y lam 400ups
    キーアップ a 方向移動x lam 0ups
    キーアップ d 方向移動x lam 0ups
    キーアップ w 方向移動y lam 0ups
    キーアップ s 方向移動y lam 0ups
    ~待機 続行禁止
    キャラクターをキー操作する設定
    • 新規スクリプト」はエディターの右上「新規スクリプトボタン」を押すことで作成できます。
      PC上で新規テキストを作成し、「scripts」フォルダに移動させることでも可能です。
  • キーボードの「a」キー「d」キー「w」キー「s」キーを押すとキャラクターが移動し、離すと止まる設定になっています。


スクリプト解説

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


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

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

  • 新規スクリプト「sample_script.txt」内に
    //背景
    ~背景0 map maps/box.png | イン map 300
    //障害物
    ~絵0 tree1 maps/tree_02.png 50 -102 80 | 拡大 tree1 50% | イン tree1 300
    ~絵0 tree2 maps/tree_02.png 750 -450 80 | 拡大 tree2 50% | イン tree2 300
    ~絵0 tree3 maps/tree_02.png 750 250 80 | 拡大 tree3 50% | イン tree3 300
    ~絵0 door maps/door_cl.png 850 -200 80 | 拡大 door 20% | イン door 300
    //キャラクター
    ~絵0 lam maps/tilemap_tut/lam/front_0.png 660 350 80 | 拡大 lam 300% | イン lam 300
    背景・木・キャラクター


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

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

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