【プラグイン】坂・階段・段差を表現する TF_Undulation.js

坂・階段・段差を表現するプラグインです。

製作者: とんび@鳶嶋工房(tonbi.jp)
利用規約: MITライセンス
シリーズ: RPGツクールMV

ダウンロード
https://github.com/tonbijp/RPGMakerMV

使い方など

利用にはトリアコンタンさんの「半歩移動プラグイン(HalfMove.js)」が必須です。
TF_Undulation.js の前に HalfMove.js を配置するようにしてください。
  1. A5BCDEタイルに地形タグ(規定値 : 1)を指定
  2. 通行設定(4方向)によって、詳細設定
  • 0x0 ↑→←↓ : | 中央に壁
  • 0x1 ↑→←・ : ⤾ 右螺旋、下
  • 0x2 ↑→・↓ : \ 63°
  • 0x3 ↑→・・ : \ 27° 南より
  • 0x4 ↑・←↓ : / 63°
  • 0x5 ↑・←・ : / 27° 南より
  • 0x7 ↑・・・ : ⤿ 左螺旋、下
  • 0x8 ・→←↓ : ⤾ 右螺旋、上
  • 0x9 ・→←・ : ⤾ 右螺旋、半回転
  • 0xA ・→・↓ : \ 27° 北より
  • 0xB ・→・・ : \ 45°
  • 0xC ・・←↓ : / 27° 北より
  • 0xD ・・←・ : / 45°
  • 0xE ・・・↓ : ⤿ 左螺旋、上
  • 0xF ・・・・ : ⤿ 左螺旋、半回転
3. [梯子]と[ダメージ床] の設定で段差レベルを設定
[梯子] [ダメージ床]​
OFF OFF 段差なし (2. で説明した 4方向設定が適用されます)​
ON OFF 段差レベル1(規定値:6px)​
OFF ON 段差レベル2(規定値:12px)​
ON ON 段差レベル3(規定値:18px)​

同じ種類のタイルを敷き詰めると、いい感じに通行設定をするようにしてます。
左右に移動の入力をすれば、タイルの登り降りができます。
上り下りの際は、ちょっとだけ速度が遅くなります。

段差レベルは、そのタイルに入るとペコっと上にキャラが上がる仕掛けです。

簡単な使用例
色々細かな設定がありますが、まずは以下の設定を一つ知っておくと、かなりの場面に対応できます。
1マス階段の例.jpg
ご覧のように、1タイル分横に移動すると0.5タイル分縦に移動するので、HalfMove.js は必須なのです。
TF_Undulation.js と組み合わせて使いやすい階段・手すり素材を【画像素材】収録素材改変 で公開しています。
むーてぃさんの 斜め階段セット もいいと思います。

他のプラグイン
 
最後に編集:
  • 0x2 ↑→・↓ : \ 63°
  • 0x4 ↑・←↓ : / 63°
急角度(63°)の梯子に対応しました。
タイルの半分だけ上り下りするので、並べると平地・梯子・平地・梯子という動きになります。
 
  • 0xA ・→・↓ : \ 27° N 北より
  • 0xB ・→・・ : \ 27° S 南より
  • 0xC ・・←↓ : / 27° N 北より
  • 0xD ・・←・ : / 27° S 南より
なだらか角度(27°)の階段に対応しました。
1マス進んで0.5上がるという変則的な挙動なので、適用するタイルの種類が北よりと南よりのものがあるのが、少々タイル用意するのも設定するのも面倒くさいですが、マップに組み込む場合には一番使うんじゃないかと思ったんで、頑張って実装しました。
 
色々と書き換えて、そこそこ挙動が安定してきたような気がします。
通行設定(4方向)の対応を変えました。27°が2パターンあるけど、覚えづらかったので、上下部分の違いで覚えやすく。
  • 0x3 ↑→・・ : \ 27° S 南より
  • 0x5 ↑・←・ : / 27° S 南より
  • 0xB ・→・・ : \ 45°
  • 0xD ・・←・ : / 45°
 
段差レベルは通行設定に隙間空いてるから追加した、的なアレだから設定関係なく通過可能になってるんだけど、普通に通行設定できた方がいいよなぁ。
そもそも、このプラグインの機能として持たせるのが正しいかという時点で怪しいし。
☆と階段の組み合わせで適用される、とかがいいかもしれない。
 
段差の基本高さの設定ができるようになりました。
その他、衝突判定のおかしな部分を修正などしました。
ただ、隊列の際のフォロワの皆さんの挙動が不自然で、しかも表示が時々崩れるバグがあります。
 
[梯子]と[ダメージ床] の設定で段差レベルを設定するように変更しました。
これで、段差がある場所も4方向の衝突判定が設定できるようになりました。
衝突判定が動くかどうかは、まだ試してませんが(笑)
 
2タイルを使う階段の指定方法
追加素材の「帆船マップ プロジェクトデータ」にいい感じの階段があるので、そちらを使って設定方法を説明します。
  • 0xB ・→・・ : \ 45°
  • 0xD ・・←・ : / 45°
2マス45°階段の例.jpg
  • 0x2 ↑→・↓ : \ 63°
  • 0x4 ↑・←↓ : / 63°
2マス63°階段の例.jpg
4タイルを使った設定方法
なだらかなタイルは2タイル分横に移動して1タイル分上がる角度です。
1タイル上がるマップを作るには、南よりのタイルと北寄りのタイルの設定が必要になります。
  • 0x3 ↑→・・ : \ 27° S 南より
  • 0x5 ↑・←・ : / 27° S 南より
  • 0xA ・→・↓ : \ 27° N 北より
  • 0xC ・・←↓ : / 27° N 北より
2マス27°階段の例.jpg
複雑なようですが、一度設定してしまえばタイルを見た目通りに置くだけで動作するようになります。
マップを書き換えた場合でも、イベントを置きなおしたりリージョン設定を変えたりする必要はありません。
普通にタイルを置くだけで機能するので、設定忘れによる通行設定バグが発生しづらいのが特徴です。
 
最後に編集:
今度は南北に階段を伸ばす場合の解説。
ちなみにタイルセットのレイアウトはこのようにする必要はありません。
タイルセット内での位置はチェックしてないので、きちんと[地形タグ]と[通行(4方向)]の設定がされていれば、バラバラに置かれていても問題なく動作します。
階段を南北に伸ばす.jpg
 
最後に編集:
最後に段差の設定です。
段差設定.jpg
性質上、梯子とダメージ床にはできなくなるんですが、「高い位置はダメージ床ではない」のがゲームの不文律なので問題ない。
梯子に関してはやる意味がない。
なお、カウンター設定にはできるので、カウンターに飛び乗るお行儀の悪いゲームにもできます。
 

おぎゃあ

ユーザー
見下ろし2Dだと上昇下降の表現は階段に見立てた上下移動に限られがちですし表現の幅が広がって楽しいですね

個人的には階段の減速が遅すぎる気がしたので、設定できると嬉しいです。(減速ナシ・アリ2段階)
 
階段の減速がないと、なんのための階段かという意味がちょっと薄れる面があって「ちょっと面倒」感は必要かと思ってます。
階段を使うのに若干のストレスがあると「この階全部回ってから上にいこう」という気持ちになりますが、階段がスムースに移動できすぎると「全部平地でいいのでは?」という疑問も湧きます。
ゆるーい形でプレイヤーを誘導できる、と言い換えてもいいかもしれません。

とは言え、その辺のさじ加減は諸々の条件によって違って来ますから、段差のオプションみたいに基本数値を変えられるようにするのはいいかもしれません。
 
HalfMove.js の DiagonalSlow が ON だと、階段の上り下りも斜め判定されて 0.8倍になってますね。
確かに、これだとちょっと遅い感じがします。
 
トップ