キャラクターのキー操作・横スクロール7【各設定を組合わせてマップ移動を実装する】

Last-modified: 2023-08-31 (木) 12:49:47

今までの設定を1つにまとめたスクリプト記述の一例です。

  1. 歩行アニメ登録。
  2. 背景マップ拡大・画面外衝突範囲。
  3. 障害物設置・障害物衝突範囲。
  4. キャラクター・衝突範囲・カメラ制御。
  5. 衝突範囲接触判定。
  6. 歩行開始スクリプト・歩行停止スクリプト。
  7. キャラクター操作。

これにより、キャラクターのキー操作・横スクロールが完成します。



スクリプト記述例

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

  • 新規スクリプト「sample_script.txt」内に
    //歩行アニメ登録
    ~アニメ登録 vale_ri 1 scg/vale/vale_sampleb.png 100 scg/vale/vale_samplea.png 100 0
    ~アニメ登録 vale_le 1 scg/vale/vale_sampleb.png 100 scg/vale/vale_sampelc.png 100 0
    //背景
    ~背景0 map maps/box.png | イン map 300
    ~絵0 map2 bg/beautiful_park.png 1280 0 0 | 拡大 map2 100% | イン map2 300
    ~絵0 map3 bg/monele_arts_building.png 2560 0 0 | 拡大 map3 100% | イン map3 300
    //画面外衝突範囲
    衝突範囲方形 左壁 -50 360 100 720 侵入禁止
    衝突範囲方形 右壁 3890 360 100 720 侵入禁止
    //障害物
    ~絵0 door1 maps/door_cl.png 950 -250 50 | 拡大 door1 50% | イン door1 300
    ~絵0 door2 maps/door_cl.png 2220 -250 50 | 拡大 door2 50% | イン door2 300
    //障害物衝突範囲
    衝突範囲方形追加 door1 0 0 668 1107
    衝突範囲方形追加 door2 0 0 668 1107
    //キャラクター
    ~絵0 vale scg/vale/vale_sampleb.png 0 140 80 | 拡大 vale 100% | .イン vale 300
    //キャラクター衝突範囲
    衝突範囲方形追加 vale 0 0 406 806 侵入禁止
    //カメラ制御
    カメラ追走 vale x y 0 0 0
    カメラ範囲x 640 3200
    カメラ範囲y 360 360
    //接触判定
    衝突開始時 vale door1 "画像 door1 maps/door_op.png"
    衝突終了時 vale door1 "画像 door1 maps/door_cl.png"
    衝突開始時 vale door2 "スクリプト sample_script.txt エリア移動"
    衝突終了時 vale door2 "スクリプト sample_script.txt 移動中止"
    //キャラクター操作
    キーダウン a スクリプト sample_script.txt 左進
    キーダウン d スクリプト sample_script.txt 右進
    キーアップ a スクリプト sample_script.txt 左停止
    キーアップ d スクリプト sample_script.txt 右停止
    ~待機 続行禁止
    //-----------------------------------------------------------------------
    //歩行開始スクリプト
    栞 左進
    画像 vale vale_ri
    方向移動x vale -400ups
    スクリプト終了
    栞 右進
    画像 vale vale_le
    方向移動x vale 400ups
    スクリプト終了
    //歩行停止スクリプト
    栞 左停止
    画像 vale scg/vale/vale_sampleb.png
    方向移動x vale 0ups
    スクリプト終了
    栞 右停止
    画像 vale scg/vale/vale_sampleb.png
    方向移動x vale 0ups
    スクリプト終了
    //接触結果
    栞 エリア移動
    画像 door2 maps/door_op.png
    効果音 maou_door se_maou_door1.ogg
    文字0 word_p 2300 630 100 rounded-mplus-1c-regular.ttf 60 "pキーでエリア移動" | イン word_p 300
    キーダウン p ジャンプ start0.txt
    スクリプト終了
    栞 移動中止
    画像 door2 maps/door_cl.png
    アウト word_p
    キーダウン p
    スクリプト終了
    キャラクターのキー操作・横スクロール
    • 新規スクリプト」はエディターの右上「新規スクリプトボタン」を押すことで作成できます。
      PC上で新規テキストを作成し、「scripts」フォルダに移動させることでも可能です。


スクリプト解説

各設定を組み合わせて「横スクロール」を実装します。


1. 歩行アニメーニョン設定

アニメ登録」コマンドにて、使用する歩行アニメーニョンを設定します。
以下、表示サンプル例。


2. マップ設定

」コマンドでマップを広げて、全体を「衝突範囲方形」コマンドで囲みます。
以下、表示サンプル例。


3. 障害物の設定

」コマンドで障害物を配置し、「衝突範囲方形追加」コマンドで各障害物に衝突範囲を付与します。
以下、表示サンプル例。


4. キャラクターとカメラ設定

」コマンドでキャラクターを配置し、「衝突範囲方形追加」コマンドでキャラクターに衝突範囲を付与します。
カメラ追走」コマンドでキャラクターとカメラを連動させます。
カメラ範囲x」「カメラ範囲y」でゲーム画面でのカメラ表示範囲を制限します。
以下、表示サンプル例。


5. 接触設定

複数コマンドを発動させるためのスクリプト

」コマンドで複数コマンドをまとめておきます。
以下、表示サンプル例。

  • 上記(「~待機 続行禁止」以降の行)に追記で
    //接触結果
    栞 エリア移動
    画像 door2 maps/door_op.png
    効果音 maou_door se_maou_door1.ogg
    文字0 word_p 2300 630 100 rounded-mplus-1c-regular.ttf 60 "pキーでエリア移動" | イン word_p 300
    キーダウン p ジャンプ start0.txt
    スクリプト終了
    栞 移動中止
    画像 door2 maps/door_cl.png
    アウト word_p
    キーダウン p
    スクリプト終了
    衝突開始時


衝突判定コマンド

衝突開始時」コマンド「衝突終了時」コマンドでキャラクターと障害物の接触時設定をします。
以下、表示サンプル例。


6. 歩行スクリプト設定

キーダウン」コマンド指定用の歩行開始スクリプト「左進」「右進」を記述します。
キーアップ」コマンド指定用の歩行停止スクリプト「左停止」「右停止」を記述します。
以下、表示サンプル例。


7. キャラクター操作設定

キートリガに「スクリプト」コマンド指定し、「歩行開始スクリプト」「歩行停止スクリプト」の各「」を指定します。
以下、表示サンプル例。