画面外を衝突範囲で囲むスクリプト記述の一例です。
- キャラクターに衝突範囲を付与する。
- 画面外に衝突範囲の枠を設置する。
これにより、ゲーム画面外へキャラクターが移動し、見えなくなることを回避できます。
スクリプト記述例
※スクリプト記述例は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 //キャラクター当たり判定 衝突範囲方形追加 lam 0 0 32 48 侵入禁止
//キャラクター操作 キーダウン 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
//画面外当たり判定 衝突範囲方形 左壁 -50 350 100 800 侵入禁止 衝突範囲方形 右壁 1330 350 100 800 侵入禁止 衝突範囲方形 上壁 650 -50 1400 100 侵入禁止 衝突範囲方形 下壁 650 770 1400 100 侵入禁止 ~待機 続行禁止
- 【キャラクターをキー操作する設定】スクリプトを基に修正・追記を行っています。
- プレビュー画面は「自由カメラ」を使用して、画面を引いています。
スクリプト解説
操作キャラクターの、画面外への移動をしないようにする方法を解説していきます。
見えない壁にぶつかれば止まるよね?という素人発想を形にしています。
if構文や計算式を使って移動を制御するカッコイイやり方もありますが、今回は見えない壁にぶつかってもらいます。
1. キャラクターに衝突範囲を付与する
「衝突範囲方形追加」コマンドでキャラクター(lam)に対し衝突範囲を付与します。
以下、表示サンプル例。
- スクリプト「sample_script.txt」内に
//キャラクター当たり判定 衝突範囲方形追加 lam 0 0 32 48 侵入禁止
- 当たり判定のサイズは基画像の大きさで指定します。
今回の指定画像(lam)サイズは 32px x 48px なので、そのままのサイズを指定します。
素材の拡大縮小に対して当たり判定も自動的に拡大縮小されます。
- 「衝突範囲方形追加」オプションである「侵入禁止」を記述しておきます。
他の当たり判定(侵入禁止同士)と重ならない(接触時にすり抜けない)ようにするために必要です。
- 当たり判定である「衝突範囲」はエディターの設定タブ内「衝突範囲表示」にチェックを入れることで、紫枠として表示されます。
- 参照項目:衝突範囲方形追加
- 参照項目:エディター機能タブの利用 > 衝突範囲表示
2. 画面を衝突範囲で囲む
「衝突範囲方形」コマンドは、任意サイズの衝突範囲領域を作り出せるコマンドです。
4つの衝突範囲を作成し、ゲーム画面を囲うように配置します。
以下、表示サンプル例。
- 上記に追記で
//画面外当たり判定 衝突範囲方形 左壁 -50 350 100 800 侵入禁止 衝突範囲方形 右壁 1330 350 100 800 侵入禁止 衝突範囲方形 上壁 650 -50 1400 100 侵入禁止 衝突範囲方形 下壁 650 770 1400 100 侵入禁止
- 透明な衝突範囲を設定しますが、通常のプレビュー画面だと画面外画面を見ることができないので「自由カメラ」モードを使用します。
プレビュー画面上のラジオボタン「自由」をオンにすると「プレイヤー基準」から切り替えることができます。
- 自由カメラの操作は「コマンドタブ」内の「自由カメラ操作法」に記載されています。
- まずはマウスホイールを使って拡大縮小をしてみましょう。
拡大することによって配置位置をきっちり決めることもできます。
- 操作をミスした場合など、カメラを初期位置に戻したい場合は「自由カメラタブ」の「自由カメラ初期化」ボタンを押すことで元に戻すことができます。
自由カメラ使用中に「プレイヤー視点」にすることもできます。
自由カメラモードをやめたいときは、ラジオボタン「プレイヤー基準」をオンにするとエディターデフォルトカメラに戻ります。
- 作成する「衝突範囲方形」のサイズはゲーム画面を囲めれば良いので縦横のサイズは任意で大丈夫です。
例のように幅を100pxにした場合、中心点が50pxになるので、配置する計算が楽になります。画面左端 0-50=-50、画面右端 1280+50=1330、画面上端 0-50=-50、画面下端 720+50=770
- コマンドオプションである「侵入禁止」は必須ですので忘れないようにしましょう。
「侵入禁止」同士でないとすり抜けてしまいます。- 参照項目:衝突範囲方形
- 参照項目:エディター機能タブの利用 > 自由カメラ