マップ機能ではないマップ移動7【各設定を組合わせてマップ移動を実装する】

Last-modified: 2023-08-31 (木) 10:39:28

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

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

これにより、マップ機能ではないマップ移動が完成します。



スクリプト記述例

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

  • 新規スクリプト「sample_script.txt」内に
    //歩行アニメ登録
    ~アニメ登録 lam_fr 1 maps/tilemap_tut/lam/front_m1.png 100 maps/tilemap_tut/lam/front_0.png 100 maps/tilemap_tut/lam/front_p1.png 100 0
    ~アニメ登録 lam_ba 1 maps/tilemap_tut/lam/back_m1.png 100 maps/tilemap_tut/lam/back_0.png 100 maps/tilemap_tut/lam/back_p1.png 100 0
    ~アニメ登録 lam_le 1 maps/tilemap_tut/lam/left_m1.png 100 maps/tilemap_tut/lam/left_0.png 100 maps/tilemap_tut/lam/left_p1.png 100 0
    ~アニメ登録 lam_ri 1 maps/tilemap_tut/lam/right_m1.png 100 maps/tilemap_tut/lam/right_0.png 100 maps/tilemap_tut/lam/right_p1.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 0 -720 0 | 拡大 map3 100% | イン map3 300
    ~絵0 map4 bg/park_evening.png 1280 -720 0 | 拡大 map4 100% | イン map4 300
    //画面外衝突範囲
    衝突範囲方形 左壁 -50 0 100 1500 侵入禁止
    衝突範囲方形 右壁 2610 0 100 1500 侵入禁止
    衝突範囲方形 上壁 1280 -770 2600 100 侵入禁止
    衝突範囲方形 下壁 1280 770 2600 100 侵入禁止
    //障害物
    ~絵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
    //障害物衝突範囲
    衝突範囲方形追加 tree1 0 0 483 898 侵入禁止
    衝突範囲方形追加 tree2 0 0 483 898 侵入禁止
    衝突範囲方形追加 tree3 0 0 483 898 侵入禁止
    衝突範囲方形追加 door 0 0 668 1107 侵入禁止
    //キャラクター
    ~絵0 lam maps/tilemap_tut/lam/front_0.png 660 350 80 | 拡大 lam 300% | イン lam 300
    //キャラクター衝突範囲
    衝突範囲方形追加 lam 0 0 32 48 侵入禁止
    //カメラ制御
    カメラ追走 lam x y 0 0 0
    カメラ範囲x 640 1920
    カメラ範囲y -360 360
    //接触判定
    衝突開始時 lam door "ジャンプ start0.txt"
    //キャラクター操作
    キーダウン a スクリプト sample_script.txt 左進
    キーダウン d スクリプト sample_script.txt 右進
    キーダウン w スクリプト sample_script.txt 上進
    キーダウン s スクリプト sample_script.txt 下進
    キーアップ a スクリプト sample_script.txt 左停止
    キーアップ d スクリプト sample_script.txt 右停止
    キーアップ w スクリプト sample_script.txt 上停止
    キーアップ s スクリプト sample_script.txt 下停止
    ~待機 続行禁止
    //-----------------------------------------------------------------------
     //歩行開始スクリプト
    栞 左進
    画像 lam lam_le
    方向移動x lam -400ups
    スクリプト終了
    栞 右進
    画像 lam lam_ri
    方向移動x lam 400ups
    スクリプト終了
    栞 上進
    画像 lam lam_ba
    方向移動y lam -400ups
    スクリプト終了
    栞 下進
    画像 lam lam_fr
    方向移動y lam 400ups
    スクリプト終了
    //歩行停止スクリプト
    栞 左停止
    画像 lam maps/tilemap_tut/lam/left_0.png
    方向移動x lam 0ups
    スクリプト終了
    栞 右停止
    画像 lam maps/tilemap_tut/lam/right_0.png
    方向移動x lam 0ups
    スクリプト終了
    栞 上停止
    画像 lam maps/tilemap_tut/lam/back_0.png
    方向移動y lam 0ups
    スクリプト終了
    栞 下停止
    画像 lam maps/tilemap_tut/lam/front_0.png
    方向移動y lam 0ups
    スクリプト終了
    マップ機能ではないマップ移動
    • 新規スクリプト」はエディターの右上「新規スクリプトボタン」を押すことで作成できます。
      PC上で新規テキストを作成し、「scripts」フォルダに移動させることでも可能です。


スクリプト解説

各設定を組み合わせて「マップ移動」を実装します。


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

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

  • スクリプト「sample_script.txt」内に
    //歩行アニメ登録
    ~アニメ登録 lam_fr 1 maps/tilemap_tut/lam/front_m1.png 100 maps/tilemap_tut/lam/front_0.png 100 maps/tilemap_tut/lam/front_p1.png 100 0
    ~アニメ登録 lam_ba 1 maps/tilemap_tut/lam/back_m1.png 100 maps/tilemap_tut/lam/back_0.png 100 maps/tilemap_tut/lam/back_p1.png 100 0
    ~アニメ登録 lam_le 1 maps/tilemap_tut/lam/left_m1.png 100 maps/tilemap_tut/lam/left_0.png 100 maps/tilemap_tut/lam/left_p1.png 100 0
    ~アニメ登録 lam_ri 1 maps/tilemap_tut/lam/right_m1.png 100 maps/tilemap_tut/lam/right_0.png 100 maps/tilemap_tut/lam/right_p1.png 100 0
    アニメ登録


2. マップ設定

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


3. 障害物の設定

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


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

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


5. 接触設定

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


6. 歩行スクリプト設定

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

  • 上記(「~待機 続行禁止」以降の行)に追記で
     //歩行開始スクリプト
    栞 左進
    画像 lam lam_le
    方向移動x lam -400ups
    スクリプト終了
    栞 右進
    画像 lam lam_ri
    方向移動x lam 400ups
    スクリプト終了
    栞 上進
    画像 lam lam_ba
    方向移動y lam -400ups
    スクリプト終了
    栞 下進
    画像 lam lam_fr
    方向移動y lam 400ups
    スクリプト終了
    //歩行停止スクリプト
    栞 左停止
    画像 lam maps/tilemap_tut/lam/left_0.png
    方向移動x lam 0ups
    スクリプト終了
    栞 右停止
    画像 lam maps/tilemap_tut/lam/right_0.png
    方向移動x lam 0ups
    スクリプト終了
    栞 上停止
    画像 lam maps/tilemap_tut/lam/back_0.png
    方向移動y lam 0ups
    スクリプト終了
    栞 下停止
    画像 lam maps/tilemap_tut/lam/front_0.png
    方向移動y lam 0ups
    スクリプト終了
    歩行移動スクリプト
    歩行停止スクリプト


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

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

  • 上記(「歩行開始スクリプト」よりも上の行)に追記で
    //キャラクター操作
    キーダウン a スクリプト sample_script.txt 左進
    キーダウン d スクリプト sample_script.txt 右進
    キーダウン w スクリプト sample_script.txt 上進
    キーダウン s スクリプト sample_script.txt 下進
    キーアップ a スクリプト sample_script.txt 左停止
    キーアップ d スクリプト sample_script.txt 右停止
    キーアップ w スクリプト sample_script.txt 上停止
    キーアップ s スクリプト sample_script.txt 下停止
    ~待機 続行禁止
    //-----------------------------------------------------------------------
    キー操作