【ウディタ講座】仲間に話しかける

先日のダッシュコモン講座は、実質『ふしぎの城のヘレン』のマネ方の講座でした。

【ウディタ講座】高機能ダッシュコモン

『ヘレン』では、まだまだマネたくなるような仕掛けがたくさんあります。終盤のあるイベント中、ドラクエっぽく後ろをついてくるキャラがいて、振り返って話しかけることができたこととか。

これもマネてみましょう。

ドラクエ的な「行列」はウディタのデフォ機能

主人公のあとを仲間がぞろぞろ付いてくるアレ。

ドラホコと呼ぶこともあるようです。

ツクール2000などでは再現にひと手間必要でしたが、それ以降のツクールやウディタではかんたんなデフォルト機能です。

ウディタは、基本システムのコモンイベント「○メンバーの増減」や、イベントコマンド「パーティ画像」で仲間を追加するだけですね。

アレンジが必要なのは、車間距離です。

仲間がどれだけ主人公にぴったり付いてくるかの設定で、システム変数37番から変更ができます。

デフォルトだと真後ろにべったりなので、振り返って話しかけるどころではないのですね。

車間距離は最低でも3は欲しいところです。

 

「話しかけたかどうか」の判定

仲間の行列がデフォ機能なだけに、話しかけるのはちょっと手間ですね。

仲間はマップイベントとは異なる存在なので、決定キーから会話イベントを起動……とはいかないわけです。

 

並列処理のコモンイベントで、決定キーの入力をチェックする必要がありますね。

このコモンでは、決定キーがおされたとき、主人公の座標と向きをもとに話しかけた座標を計算しています。

主人公が座標(5,4)に居て下向き(2)だとすれば、話しかけた座標は主人公のひとつ下となり、その座標は(5,5)となりますね。主人公が左向き(4)なら話しかけた座標は(4,4)です。

この「話しかけた先の座標」を、「仲間位置チェック」コモンへ送って、さらに処理を続けていきます。

 

車間距離の広さが気になる場合、このキー検知でサブキー押下時の分岐などを足して、仲間の再整列や車間距離の調整をしてもよいですね。

 

「話しかけた先に誰が居るのか」の判定

さきに、「2マス間の距離をはかる」というコモンを作ってしまいましょう。

点Aと点Bが何マス離れているか、を調べるものです。入力された2点のX座標とY座標同士を引き算して、その絶対値の和を返す動きをします。

3行だけの処理ですが、SRPGなどでもよく使います。コモン化してしまうのが楽でしょう。

 

さて、点Aが話しかけた先の座標、点Bが仲間1の居る座標だったとき、このコモンの計算結果が0なら、距離はない、つまり話しかけた先の座標には仲間1が居ることになるのです。

 

というわけで、「仲間位置チェック」に入ります。
まず、「話しかけた先の座標」と「仲間たちの座標」を一挙に比較してしまいます。

仲間1~5の座標の取得はイベントコマンド「変数操作+」。

話しかけた先の座標と、仲間のだれかの座標が一致(距離が0)したら、「仲間に話しかけた」ことになります。

 

では、仲間1に話しかけたことになったとして、その仲間1は誰なのか?

ウディタの基本システムなら、可変データベースの「6:パーティー情報」で確認できます。

主人公がメンバー1なので、仲間1=メンバー2となることに注意してください。

さきほどのコモンでの連続分岐では、話しかけた仲間1~5に応じて、この可変データベース「パーティー情報」の対応メンバーの情報を拾っています。

 

最後に、さきほどのコモンに次のような処理を足しました。

「仲間1=メンバー2」が、0番のキャラならヒーローさん、1番ならファイターさんだとわかるので、対応した会話イベントをおくわけですね。

 

0番のキャラならヒーローさん、1番ならファイターさん……というのは、基本システムなら、可変データベース「0:主人公ステータス」の欄に対応しています。

 

できあがり

 

 

2 COMMENTS

通りすがり

通りすがりと申します。
とある形式のゲームを作ってみようと思い立ち最近ウディタを触り始めたのですが、
何が分からないかすら分からない状態で途方に暮れておりました。

そんな中でこちらのサイトにたどり着いたのですが、
講座がとても分かりやすく、非常に助かっております。

これからも応援しております。

土日

自分の勉強がてらおっかなびっくり知見をまとめているところですが、
そう言っていただけると励みになります!ありがとうございます!
通りすがりさんもよいウディタライフをお送りください!

現在コメントは受け付けておりません。