船コモン
【更新:2023/01/27】



ウディタ[3.00]以降で利用できます。

【こちらをクリックするとダウンロードができます(13KB)】

2023/01/27 1.03 [簡単設定版]の出力ファイル名にマップ番号を追加。
2023/01/26 1.02 船に乗った時にBGMが簡単に変えられるように修正。
2023/01/12 1.01 [簡単設定版]で水の上にある通行可能なマスに下船できるように修正。
2023/01/12 1.00 初期バージョン。



■2種類の船コモン

当コモンには船コモン[簡単設定版]船コモン[タイルセット版]があります。

コモン 特徴
船コモン[簡単設定版] ウディタ初心者にも優しい簡単に設定する事ができるバージョンです。
コモンイベント1個とマップイベント1個を設定するだけで準備完了です。
乗船時にチップの通行設定を変えて、水の上を移動できるようにします。
船が移動できる範囲は、
船のマスにあった最も上のオートタイルチップが設定されているマスになります。
下船できるマスは、乗船時に通行可能になっていたマスになります。
乗船時にデータの作成処理が行われます。
この作成処理はマップサイズが大きくなると処理落ち(フリーズ)が発生します。
特に水と陸地が接しているマスが多くなると、より処理落ちが発生します。
処理落ちに関しては、オプション設定「船データ出入力」を使うと改善されます。
船コモン[タイルセット版] ウディタの扱いに慣れている方向けのバージョンです。
コモンイベント1個とマップイベント1個を設定する以外に、
船用のタイルセットの準備とコモンイベント内にあるオプション設定が必要です。
船が移動できる範囲は、船用のタイルセットで通行可能にしたチップになります。
下船できるマスは、タグ番号で指定したチップになります。
※タイルセットの通行設定やタグ番号の設定が正しくないと、正常には動きません。
[簡単設定版]のような乗船時の処理落ちはありません。



以下は[簡単設定版][タイルセット版]の両方で適用されます。

一度船に乗船したあとに、別のマップへ移動してから船がいるマップへ戻ってくると、
船は最後にいた場所へ自動的に移動します。
船の移動処理は、主人公の画像を船の画像に変えて主人公を移動させて処理しているので、
通常の主人公の移動と変わりません。
メニュー画面の処理や戦闘の処理(ランダムエンカウント)なども普通に機能します。
乗船する時には、マップ上にいる全てのマップイベントの通行設定を調べて、
マップイベントがいる場所が通行できるかどうかを保存する処理が実行されます。
そのため、乗船中にマップイベントを移動したり、
マップイベントのページを切り替えて通行可能/不能を変えたりしても、
乗船した時にマップイベントの通行設定が適用されます。
なお、このマップイベントの通行設定は下船する時に使用するものなので、
下船できるマス以外にあるマップイベントは操作しても問題ありません。
斜め方向からの乗船は可能ですが、斜め方向への下船はできません。



取りあえず船を動かしたい」と言ったレベルでしたら、[簡単設定版]を使うと良いでしょう。
乗船時に処理落ちがあるようでしたら、オプション設定「船データ出入力」を使ってください。

[簡単設定版]では以下のような高さのある地形でも下船可能になります。

[タイルセット版]の場合は、チップごとにタグ番号を変える事で下船可能/不可の設定ができるので、
このような高さのある地形では下船できないようにする事ができます。



■コモン素材の設定方法

未使用のコモンIDを選択してから[読込]をクリックして、
船コモン[簡単設定版]」か「船コモン[タイルセット版]」のどちらかを読み込んでください。





水のマスに船のマップイベントを設置してください。



【イベントコード[簡単設定版]】

■イベントの挿入[名]: ["船コモン[簡単設定版]"] <コモンEv 215> / 1:乗船 / 0:標準(1歩1マス) / 0 / 0

【イベントコード[タイルセット版]】

■イベントの挿入[名]: ["船コモン[タイルセット版]"] <コモンEv 215> / 1:乗船 / 0:標準(1歩1マス) / 0 / 0

[簡単設定版]の設定は以上です。▼[タイルセット版]の説明を飛ばす▼

[タイルセット版]の方は下記にある設定も必要です。



タイルセットの設定画面を開き、船が置いてあるマップのタイルセットをコピーしてください。





貼り付けたら「街(船用)」などの分かりやすい名前を付けてください。


通行許可設定」で船が通れるチップは「○」、通れないチップは「×」にしてください。




タグ番号設定」を選択し、
下船できるチップのタグ番号を[01]にしてください。([00]以外なら[05]でも[99]でも問題無いです)
水のチップや下船できないチップは[02]にしてください。([00]と下船できるチップのタグ番号以外なら何でも良いです)




コモンイベントのオプション設定にある「船用タイルセット番号」にて、
船用のタイルセットの番号を設定してください。



下船できるタグ番号を[01]以外にしている場合は…
■変数操作: CSelf83[下船タグ番号] = 1 + 0
の設定を変えてください。


以上で設定完了です。


  
■イベントの挿入について



処理方法 説明
[1]乗船 船のマップイベントの中に設定する事で、その船に乗る事ができます。
[-1]下船 船に乗っている時に、船の前方に降りられるマスがある時に下船します。
[2]強制乗船 船がいる場所へ場所移動し、船に乗船します。
一度も船に乗っていない状態で実行する場合は、
事前に「船マップID」と「船イベントID」のオプション設定が必要です。
[-2]強制下船 船に乗っている時に、船の前方のマスに強制的に下船します。
通行不能のマスでも下船します。
斜め向きで実行した場合は、下のマスに下船します。
船の前方がマップの外である場合は、船がいるマスに下船します。
なお、船に乗っている時に、船がいるマップ以外に場所移動すると、
この「[-2]強制下船」を実行しなくても、強制的に下船扱いになります。
[8]並列停止 一度船に乗ると、当コモンの並列実行が動き続ける仕様になっています。
この並列実行によって、別のマップから戻って来た時に、
船の位置が最後にいた位置へ移動します。
しかしゲームの進行上、もう船を使う事が無い場合で、
少しでも無駄な処理負担を無くしたい場合は、
この「[8]並列停止」を実行してください。
※処理負担は殆ど無いので、無理に止める必要はありません。
[8]並列停止」を実行すると、別のマップから戻って来た時には、
船は初期位置に戻ります。
例えば池のような所で貸しボート屋を設定し、借りたボートを乗り捨てても、
別のマップから戻ってくると、初期位置に戻るようになります。
[9]乗船確認 船に乗っているかどうかを確認する時に使います。
乗っている場合は、結果を受け取る変数に「1」が設定されます。
[10]▼船移動 ▼マス単位」「X座標」「Y座標」で設定された位置に船が移動します。
一度も船に乗っていない状態で実行する場合は、
事前に「船マップID」と「船イベントID」のオプション設定が必要です。



■オプション設定

当コモンの27行目以降には、オプション設定があります。

設定名 説明
船データ出入力 [簡単設定版]専用設定
[簡単設定版]では乗船時に、
「どこで下船できるのか」「どのチップを通行不能にするのか」の情報をデータ化しています。
このデータ化の処理は、マップサイズが大きい場合は処理落ち(フリーズ)が発生します。
船データ出入力の設定を「1」にすると、
テストプレイで初めて船に乗船した時にフォルダー[Data]の中に2つのファイルが出力され、
テストプレイの2回目以降の乗船や通常プレイの1回目からの乗船の時に、
出力したファイルを読み込んで処理落ちが発生しないようにする事ができます。
出力されるファイルの名前は「船コモンデータ+マップ番号」になっています。
例えばマップ番号「4」の場合は「船コモンデータ4_1」「船コモンデータ4_2」が出力されます。
船データ出入力が「1」の場合は、船があるマップを編集したあとには、出力ファイルの更新が必要です。
出力ファイルの更新は、テストプレイを開始して、船に乗るだけで更新できます。
(更新されると「船コモンのファイル出力」のデバッグ文が表示されます)

一度乗船すると2回目以降は出力ファイルを読み込んで処理されます。
そのため、一度乗船したセーブデータをロードして出力ファイルを更新する場合は、
フォルダー[Data]の中にあるファイルを削除してから船に乗船して新たなファイルを出力してください。

なお、この出力ファイルには、マップイベントのデータは含まれていません。
そのため、マップイベントを編集しただけでしたら、出力ファイルの更新は必要ありません。
船データ出入力が必要になるのは、マップサイズが400×400マスなどの大きなマップです。
マップサイズが200×200マス程度でしたら必要ないかもしれませんが、
水と陸地が接するマスが多くある場合は、船データ出入力を使った方が良いかもしれません。
船用タイルセット番号 [タイルセット版]専用設定【設定必須】
船用のタイルセットの番号を設定します。
下船した時には、乗船時に設定されていたタイルセットに戻ります。
下船タグ番号 [タイルセット版]専用設定【設定必須】
下船できるチップのタグ番号を設定します。
▼設定例
タグ番号[01]=下船できるチップ
タグ番号[02]=下船できないチップ(船が移動できるチップや元々通行不能だった山チップなど)
船が接するチップにはタグ番号[00]を設定しないでください。
船マップID 船がいるマップIDを設定します。
「-1」にしておけば、船に乗った時に自動的に設定されます。
船に乗る前に「[2]強制乗船」や「[10]▼船移動」を使用する場合は、
この船マップIDの設定が必要です。
船イベントID 船のイベントIDを設定します。
「-1」にしておけば、船に乗った時に自動的に設定されます。
船に乗る前に「[2]強制乗船」や「[10]▼船移動」を使用する場合は、
この船イベントIDの設定が必要です。
下船キーコード 船から降りる時に押すキーコードを設定します。
10 決定キー
12 サブキー
100〜 指定したキーコード
0 方向キー(陸地に向かって方向キーを押す)
選択肢:乗船 「1」の場合は乗船時に「船に乗る/キャンセル」の選択肢を表示されます。
選択肢:下船 「1」の場合は下船時に「船から降りる/キャンセル」の選択肢を表示されます。
船から決定実行禁止 「1」の場合は乗船中に決定キーでマップイベントが調べられなくなり、
船から陸地にいるマップイベントを調べる事ができなくなります。
水の上にあるマップイベントを決定キーで実行する場面がある場合は「0」にしてください。
この機能を使わなくても、当ページの下の方にある設定をマップイベントに行う事で、
マップイベントごとに船から決定キーで実行できないようにする事ができます。
動作指定・BGM変更 【乗船時・動作指定】
船の移動速度を1段階遅くしています。
もしも船の移動速度を主人公と同じ速度にする場合は…
■動作指定:主人公 / 移動速度を設定 => 2
の設定を削除してください。
【下船時・動作指定】
船に乗る前から主人公の移動時アニメが「ON」になっていた場合は…
■動作指定:主人公 / 待機時アニメOFF
の設定を削除してください。
【乗船時・BGM変更】
乗船時にBGMを変更する場合は…
▼ 船に乗っている時にBGMを変更する場合は、ここに設定して下さい。
の所に…
▼ 船に乗っている時にBGMを変更する場合は、ここに設定して下さい。
■サウンド:BGM5「船BGM」再生 / 処理時間:0フレーム
と言った感じで設定してください。
【下船時・BGM変更】
初期設定では下船時にシステムDB[0:マップ設定]に設定されているBGMが自動的に演奏されます。

もしも下船時にシステムDB[0:マップ設定]に設定してあるBGM以外を演奏させる場合は…
■変数操作+: CSelf30[処理用01] = 現在のマップID
■DB読込(システム):CSelf31[処理用02]=システムDB[0:CSelf30[処理用01]:1](マップ設定:-:BGM番号(リスト読込))
■条件分岐(変数): 【1】 CSelf31[処理用02] が 0 以上
         【2】 CSelf31[処理用02] が -1 と同じ
         【3】 CSelf31[処理用02] が -3 と同じ
-◇分岐: 【1】 [ CSelf31[処理用02] が 0 以上 ]の場合↓
|■サウンド:BGM 変数[CSelf31[処理用02]] 再生 / 処理時間:0フレーム
|■
-◇分岐: 【2】 [ CSelf31[処理用02] が -1 と同じ ]の場合↓
|■サウンド:BGM 停止 / 処理時間:0フレーム
|■
-◇分岐: 【3】 [ CSelf31[処理用02] が -3 と同じ ]の場合↓
|■サウンド:BGM ファイル[\sdb[0:\cself[30]:5]] 音 0% 周 0% ル 0ms 再生 / 処理時間:0フレーム
|■
◇分岐終了◇
の設定を変更してください。
この動作指定・BGM変更は、乗船時や下船時に何らかのイベントを実行したい時に使います。

もしも乗船時に何らかのイベントを実行したい時には…
●ラベル地点「乗船」 <<<<<<<<<<<<<<<<<<<<<<<<★
の下に設定してください。

また下船時に何らかのイベントを実行したい時には…
●ラベル地点「下船」 <<<<<<<<<<<<<<<<<<<<<<<<★
の下に設定してください。

▼キーコードの一覧



■場所移動の時に船を移動しているが見えてしまう件

乗船して船を移動したあとに、別のマップから船がいるマップへ戻ると、自動的に船が最後にいた場所へ移動しますが、
場所移動の設定が…
■トランジション準備
■場所移動:主人公 ▲マップID1[サンプルマップA] X:15 Y:1 [トランジションなし]
■トランジション実行
のような設定の場合では、船を移動している所が見えてしまいます。

もしも船が移動している所を見せたくない場合は…
■トランジション準備
■場所移動:主人公 ▲マップID1[サンプルマップA] X:15 Y:1 [トランジションなし]
■ウェイト:1 フレーム
■トランジション実行
と言ったように、ウェイトを設定してください。



■ランダムエンカウントについて(乗船確認の使用テクニック)

船に乗っている時にもランダムエンカウントは普通に機能します。

もしも陸上と水上で異なる敵キャラを出現させたい時には、
船コモンの「乗船確認」を使って「乗船中=1」を取得して、条件分岐で陸上用と水上用に分けて設定してください。

【イベントコード[簡単設定版]】 【イベントコード[タイルセット版]】

■イベントの挿入[名]:このEvのセルフ変数0 = ["船コモン[簡単設定版]"] <コモンEv 215>/9:乗船確認/0:標準(1歩1マス)/ 0/ 0
■条件分岐(変数): 【1】 このEvのセルフ変数0 が 0 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数0 が 0 と同じ ]の場合↓
|▼ 陸上の敵キャラ
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> / 10 / 0:オオカミx1 / -1:<なし> / -1:<なし>
|■
-◇上記以外
|▼ 水上の敵キャラ
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> / 10 / 7:奇形魚x3 / -1:<なし> / -1:<なし>
|■
◇分岐終了◇



乗船確認」の他の利用方法として、例えば以下の設定をマップイベントの最初に設定する事で、
船に乗っている時にはマップイベントが調べられないようにする事ができます。

【イベントコード[簡単設定版]】 【イベントコード[タイルセット版]】

■イベントの挿入[名]:このEvのセルフ変数9 = ["船コモン[簡単設定版]"] <コモンEv 215>/9:乗船確認/0:標準(1歩1マス)/ 0/ 0
■条件分岐(変数): 【1】 このEvのセルフ変数9 が 1 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数9 が 1 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇

宝箱に上記設定を追加すると、船に乗っている時には宝箱が開けられなくなります。
船から 陸から



■斜めから乗船できないようにする

船に乗る時には、斜め方向からでも乗る事ができます。

▼こんな状態でも乗れます


もしも斜め向きでは乗船できないようにする場合は、船イベントを以下のように設定してください。

【イベントコード[簡単設定版]】 【イベントコード[タイルセット版]】

■変数操作: このEvのセルフ変数0 = 主人公の方向 % 2
■条件分岐(変数): 【1】 このEvのセルフ変数0 が 1 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数0 が 1 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■イベントの挿入[名]: ["船コモン"] <コモンEv 215> / 1:乗船 / 0:標準(1歩1マス) / 0 / 0



■複数の船を設置する場合

複数の船を設置する場合は、
船ごとに「船コモン1」「船コモン2」などとコモンイベントの名前を変えた船コモンを用意してください。

同じ船コモンを複数の船で使用すると、別のマップから戻ってきた時には、最後に使用した船のみが最後にいた場所へ移動し、
他の船は初期位置になります。



貸しボート屋みたいなものを設定する場合は、複数のボートを1個の船コモンで処理し、さらに別のマップへ移動する時に…
【イベントコード[簡単設定版]】 【イベントコード[タイルセット版]】

■イベントの挿入[名]: ["船コモン[簡単設定版]"] <コモンEv 215> / 8:並列停止 / 0:標準(1歩1マス) / 0 / 0
を実行する事で、貸しボート屋のマップへ戻って来た時には、全てのボートが初期位置に戻ります。


  
■使用に関して

使用許可の申告:不要

イベント処理の改造:許可

※改造は自力で自己責任でお願いします。 



■関連ページ

YADOウディタ作品 YADOが作成したウディタ作品の一覧表です。
気紛れな空間 YADOの活動の拠点であるサイト。
セロード君との共同運営のサイトであり、
セロード君は気紛れな空間のサイト全体の管理者。
このサイトには雑談掲示板などもありますので、
何かメッセージがある場合は、こちらの掲示板をご利用下さい。
YADO作品リスト YADOが今までに公開してきた作品の一覧や、
YADOのプロフィールなどが見れます。