遊泳・ダイビング システム (人魚等)
Posted: 2017年11月23日(木) 13:18
11/23再々更新:パラメータ「歩行画像変更」を水面と水中に分けました
11/23再更新:パラメータ詳細設定に「水面下部分の高さ」を追加しました
11/23更新:ダイビングする前に、隊列メンバーの集合をするようにしました
--------------------------
遊泳・ダイビングのプラグインを作ってみました。
解説をご覧頂く前に、是非先にデモを遊んでみてください!:
・https://game.nicovideo.jp/atsumaru/games/gm5154
タッチ操作もできますので、是非マウスでもお試しください。
五分ほどのゲームで、このプラグインのできることを簡単に紹介します。
メモ等の説明、設置方法も書いてありますので、まず遊んで頂くことをオススメします~
--------------------------
では、説明に入ります。
このプラグインは、簡単に遊泳、ダイビングを実装できるべく作ったプラグインです。
発想は、ポケ○ンの ルビーサファイア から来ています。
・ゲームに遊泳を実装したい!という方:
このプラグインを入れるだけで、他のこと一切しなくても、デモのように水辺で決定キーを
押すと遊泳できます。
・イベントの移動範囲を水域に制限したい!という方:
イベントのメモ欄に<Swimming>を入れれば達成できます。
・デモのようにダイビング・浮上をしたい!という方:
マップのメモ欄にダイビング出来るリージョンID、ダイビング場所移動先を記入すれば簡単にできます。
また、ダイビング先は普通のマップにしてください。(水域じゃないところ)
・デモのようにゆらゆら水中エフェクトを実装したい!という方:
KMS_WaterMapEffect を使ってください。TOMY様の素晴らしいプラグインです。
DLページ: http://ytomy.sakura.ne.jp/tkool/rpgtech ... ffect.html
--------------------------
以下は、詳しいプラグインの使い方です。
遊泳の通行可タイルは基本的に乗り物の船と同じですが、
マップ設計の自由度を増やすために、強制通行リージョンを敷くと
無理矢理通れます。ただし、イベントの衝突判定は行われています。
ダイビングしたら普通の通行可タイルになります。
ダイビング先に普通の都市を作って、画像の色調変更で青を掛ければ、海底都市みたいになります。
潜る/浮上の転送先の指定方法:
マップのメモに
<Dive"リージョンID":"マップID","マップX","マップY"(,"向き")>
<Surface"リージョンID":"マップID","マップX","マップY"(,"向き")>
を置く。向きを指定しない場合は元の向きになります。
例:
<Dive23:16,34,25>
- リージョン23で決定キーを押すと、ダイビングで マップ16の(34,25) に転送する
<Surface21:5,15,23,2>
- リージョン21で決定キーを押すと、浮上で マップ5の(15,23) に転送する。向きは下
水上イベント
イベントの移動範囲を水上に制限する(陸上に上がれない)
イベントのメモに<Swimming>を置く
例:
<Swimming>
プラグインコマンド:
testSwim
このコマンドを実行すると、「水の中に入れるか/水から出れるか」の判定を行い、
できる場合はその行動を実行します。
例:testSwim
testDive
このコマンドを実行すると、「この位置で潜れるか/浮上できるか」の判定を行い、
できる場合はその行動を実行します。
例:testDive
testSwimDive
上述の両者を同時に判定し、実行可能の行動が片方だけの場合、その片方
の行動を実行します。
両方実行可能の場合は選択肢を出します。
例:testSwimDive
askSwimDive
上のコマンドとほぼ同じですが、行動する前に必ず選択肢を出します。
例:askSwimDive
forceWaterLayer [数字]
水の深度を強制に設定します。
water Layer:地面は0,水面は1、潜る度に1増えます
テレポートなどの時に使用してください。
例:forceWaterLayer 0
testSwim~ 等のプラグインコマンドは、基本的に ピクチャボタン化プラグイン と併用することをオススメします。
・パラメータ:
多そうに見えますが、基本的に変えなくてもいいです。

選択肢自動表示:
水辺、或いは潜られるところで決定キーを押すと、行動の判定をするかどうか。
デモのように、「最初は泳げなかったが、後から出来るようになる」ようにしたい場合は、
スイッチの番号を入れてください。
水中減速:
水中で自動的に減速します。
キャラのデフォ移動速度は4で,shiftを押すと+1ですので、0.3~0.5がオススメです。
水面画像変更:
水面にいる時に、自動的にキャラチップを 「元画像名_swim.png」に変えます。
例:Acter1.png → Acter1_swim.png
水中画像変更:
水中にいる時に、自動的にキャラチップを 「元画像名_swim.png」に変えます。
例:Acter1.png → Acter1_swim.png
選択肢の文字列:
選択肢の文字列の設定。
SE設定:
水に入る、出る、潜る時のSEです。
リージョン設定:
使う予定のリージョンを設定します。 (5~7個くらいで足りるかと!)
水面強制通行リージョンID:
前述の通り、基本 船の行けるところと同じですが、
どうしても行かせたいところがあればこれを使用してください。
水面限定ですので、地面にいる、或いはダイビングしている時は特に効果がありません。
(「,」区切りで複数指定も可能)
水面下の透明度:
水面にいる時、下半身の透明度を設定します。
水面(waterLayer = 1)限定です。
水面下部分の高さ:
水面にいる時、半透明になる部分の高さを設定します。
水面(waterLayer = 1)限定です。
--------------------------
※上級者向け
$gamePlayer.isSwimming() で水に入ってるかどうかを取得可能
$gamePlayer._waterLayer で水深を取得可能(地面は0,水面は1、潜る度に1増えます)
$gameMap.event(1).isSwimming() も可能
質問などはお気軽にしてください!
バグがありましたら、お手数お掛けしますがご報告をお願いします><
#クレジット不要 (していただけたら嬉しい!)
#素材の販売含めて営利可
#改変可
#素材だけの再配布も可
11/23再更新:パラメータ詳細設定に「水面下部分の高さ」を追加しました
11/23更新:ダイビングする前に、隊列メンバーの集合をするようにしました
--------------------------
遊泳・ダイビングのプラグインを作ってみました。
解説をご覧頂く前に、是非先にデモを遊んでみてください!:
・https://game.nicovideo.jp/atsumaru/games/gm5154
タッチ操作もできますので、是非マウスでもお試しください。
五分ほどのゲームで、このプラグインのできることを簡単に紹介します。
メモ等の説明、設置方法も書いてありますので、まず遊んで頂くことをオススメします~
--------------------------
では、説明に入ります。
このプラグインは、簡単に遊泳、ダイビングを実装できるべく作ったプラグインです。
発想は、ポケ○ンの ルビーサファイア から来ています。
・ゲームに遊泳を実装したい!という方:
このプラグインを入れるだけで、他のこと一切しなくても、デモのように水辺で決定キーを
押すと遊泳できます。
・イベントの移動範囲を水域に制限したい!という方:
イベントのメモ欄に<Swimming>を入れれば達成できます。
・デモのようにダイビング・浮上をしたい!という方:
マップのメモ欄にダイビング出来るリージョンID、ダイビング場所移動先を記入すれば簡単にできます。
また、ダイビング先は普通のマップにしてください。(水域じゃないところ)
・デモのようにゆらゆら水中エフェクトを実装したい!という方:
KMS_WaterMapEffect を使ってください。TOMY様の素晴らしいプラグインです。
DLページ: http://ytomy.sakura.ne.jp/tkool/rpgtech ... ffect.html
--------------------------
以下は、詳しいプラグインの使い方です。
遊泳の通行可タイルは基本的に乗り物の船と同じですが、
マップ設計の自由度を増やすために、強制通行リージョンを敷くと
無理矢理通れます。ただし、イベントの衝突判定は行われています。
ダイビングしたら普通の通行可タイルになります。
ダイビング先に普通の都市を作って、画像の色調変更で青を掛ければ、海底都市みたいになります。
潜る/浮上の転送先の指定方法:
マップのメモに
<Dive"リージョンID":"マップID","マップX","マップY"(,"向き")>
<Surface"リージョンID":"マップID","マップX","マップY"(,"向き")>
を置く。向きを指定しない場合は元の向きになります。
例:
<Dive23:16,34,25>
- リージョン23で決定キーを押すと、ダイビングで マップ16の(34,25) に転送する
<Surface21:5,15,23,2>
- リージョン21で決定キーを押すと、浮上で マップ5の(15,23) に転送する。向きは下
水上イベント
イベントの移動範囲を水上に制限する(陸上に上がれない)
イベントのメモに<Swimming>を置く
例:
<Swimming>
プラグインコマンド:
testSwim
このコマンドを実行すると、「水の中に入れるか/水から出れるか」の判定を行い、
できる場合はその行動を実行します。
例:testSwim
testDive
このコマンドを実行すると、「この位置で潜れるか/浮上できるか」の判定を行い、
できる場合はその行動を実行します。
例:testDive
testSwimDive
上述の両者を同時に判定し、実行可能の行動が片方だけの場合、その片方
の行動を実行します。
両方実行可能の場合は選択肢を出します。
例:testSwimDive
askSwimDive
上のコマンドとほぼ同じですが、行動する前に必ず選択肢を出します。
例:askSwimDive
forceWaterLayer [数字]
水の深度を強制に設定します。
water Layer:地面は0,水面は1、潜る度に1増えます
テレポートなどの時に使用してください。
例:forceWaterLayer 0
testSwim~ 等のプラグインコマンドは、基本的に ピクチャボタン化プラグイン と併用することをオススメします。
・パラメータ:
多そうに見えますが、基本的に変えなくてもいいです。

選択肢自動表示:
水辺、或いは潜られるところで決定キーを押すと、行動の判定をするかどうか。
デモのように、「最初は泳げなかったが、後から出来るようになる」ようにしたい場合は、
スイッチの番号を入れてください。
水中減速:
水中で自動的に減速します。
キャラのデフォ移動速度は4で,shiftを押すと+1ですので、0.3~0.5がオススメです。
水面画像変更:
水面にいる時に、自動的にキャラチップを 「元画像名_swim.png」に変えます。
例:Acter1.png → Acter1_swim.png
水中画像変更:
水中にいる時に、自動的にキャラチップを 「元画像名_swim.png」に変えます。
例:Acter1.png → Acter1_swim.png
選択肢の文字列:
選択肢の文字列の設定。
SE設定:
水に入る、出る、潜る時のSEです。
リージョン設定:
使う予定のリージョンを設定します。 (5~7個くらいで足りるかと!)
水面強制通行リージョンID:
前述の通り、基本 船の行けるところと同じですが、
どうしても行かせたいところがあればこれを使用してください。
水面限定ですので、地面にいる、或いはダイビングしている時は特に効果がありません。
(「,」区切りで複数指定も可能)
水面下の透明度:
水面にいる時、下半身の透明度を設定します。
水面(waterLayer = 1)限定です。
水面下部分の高さ:
水面にいる時、半透明になる部分の高さを設定します。
水面(waterLayer = 1)限定です。
--------------------------
※上級者向け
$gamePlayer.isSwimming() で水に入ってるかどうかを取得可能
$gamePlayer._waterLayer で水深を取得可能(地面は0,水面は1、潜る度に1増えます)
$gameMap.event(1).isSwimming() も可能
質問などはお気軽にしてください!
バグがありましたら、お手数お掛けしますがご報告をお願いします><



