左図のような構造のマップでは、入口の上の梁の部分の下をくぐれるようにしたいです。
ですが、屋根・天井のマップチップはTile Aなので、通行設定を[☆](後ろを通行可能)には設定できませんし、できたらできたで梁部分以外も通行できてしまうため問題があります。
最初は、梁部分にすり抜け可能な透明のイベントを置いて、接触時に自動実行でプレイヤーを透明状態にしつつ、梁部分の前後に同じく透明のイベントを置いて、プレイヤーを通常状態に戻すようにしていました。しかしこれだと、梁部分に接触した瞬間にプレイヤーが消え、通り抜けた瞬間にプレイヤーが出現するため、わずか一瞬の出来事とはいえ、ぎこちなさが残ります。
そこで、次のようにしました。
まず、屋根・天井のマップチップ(TileA3、TileA4)を加工して、キャラクターチップの画像ファイルを作ります。この時、キャラクターのサイズは通常の32×32よりも横に16ドット広い48×32で作り、さらに上に4ドットずれる仕様を無効にするためファイル名に"!"を付けます。
キャラクターチップは、TileA3/A4のオートタイルの仕組みに合わせて、右図のように32×16のパーツと8×16のパーツを組み合わせることで、48×32のキャラクターを作ります。単純な画像の切り貼りだけなので、高度な画像編集技術は不要です(ここ重要!)。左右に8ドットずつはみ出させることで、オートタイルの切れ目を隠せるのがポイントです。
後は普通に、通行可能な地面の上に、すり抜け可、かつプライオリティを「通常キャラの上」に設定した、屋根・天井キャラのイベントを置けば、自然に梁の下をくぐる仕組みが実現可能です。
これまでは、部屋の外と中で別のマップにしていましたが、こういう風にできるのであれば、いちいち部屋の中に入る時や外に出る時に場所移動が発生しなくて済みますし、マップ数も節約できますね。
とは言え、部屋の中に何があるのか、入ってみるまでは分からないようにしたい、というケースが大半なので、実際の使いどころは限られてくるかもしれません。今さら全部の部屋マップを直すのも大変ですし……。
コメント