今までの設定を1つにまとめたスクリプト記述の一例です。
- 歩行アニメ登録。
- 背景マップ拡大・画面外衝突範囲。
- 障害物設置・障害物衝突範囲。
- キャラクター・衝突範囲・カメラ制御。
- 衝突範囲接触判定。
- 歩行開始スクリプト・歩行停止スクリプト。
- キャラクター操作。
これにより、マップ機能ではないマップ移動が完成します。
スクリプト記述例
※スクリプト記述例は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. マップ設定
「絵」コマンドでマップを広げて、全体を「衝突範囲方形」コマンドで囲みます。
以下、表示サンプル例。
- 上記に追記で
//背景 ~背景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 侵入禁止
3. 障害物の設定
「絵」コマンドで障害物を配置し、「衝突範囲方形追加」コマンドで各障害物に衝突範囲を付与します。
以下、表示サンプル例。
- 上記に追記で
//障害物 ~絵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 侵入禁止
4. キャラクターとカメラ設定
「絵」コマンドでキャラクターを配置し、「衝突範囲方形追加」コマンドでキャラクターに衝突範囲を付与します。
「カメラ追走」コマンドでキャラクターとカメラを連動させます。
「カメラ範囲x」「カメラ範囲y」でゲーム画面でのカメラ表示範囲を制限します。
以下、表示サンプル例。
- 上記に追記で
//キャラクター ~絵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
5. 接触設定
「衝突開始時」コマンドでキャラクターと障害物の接触時設定をします。
以下、表示サンプル例。
- 上記に追記で
//接触判定 衝突開始時 lam door "ジャンプ start0.txt"
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 下停止 ~待機 続行禁止 //-----------------------------------------------------------------------