【ウディタ講座】位置の自動調整つきマップイベント用フキダシコモン

ウディタ/ツクールのアクションRPGやシンボルエンカウント式RPGでは、主人公の接近に気づいたザコ敵が頭上に「!」のフキダシを浮かべる演出がしばしば見られます。

ごく簡単に作れそうですが、やってみると気になることが出てきます。

ザコ敵の身長によって、フキダシの位置が不自然になってくるのです。

というわけで、フキダシのポップ位置を自動的に調整してくれるコモンイベントを作ってみましょう。

結果的には、「任意のマップイベント(キャラチップ)の身長を取得する」処理の開発にもつながります。

 

まずは下準備

簡単にフキダシ画像とマップイベントを用意しておきます。

主人公が一定範囲に近づいたら、ザコが「!」のフキダシを表示(コモン呼び出し)するイメージです。

 

まずはウディタで素直に頭上のフキダシポップ処理(コモンイベント)を作る

基本的には考え方は次の通りです。

  • 呼び出し元のマップイベント番号(ID)を取得し、このIDから「画面座標」を取得
  • 画面座標をもとにフキダシの表示座標を割り出すので、タイルサイズの1.5倍ぐらいの値をYから引く(上にあげる)

これでフキダシのポップ処理の骨子はできました。

しかし、最初にあげた画像のとおり、「右のスライムにはちょうどよく」、「左のゴーレムでは低すぎ」ますね。

 

コモンイベントにY位置の自動調整機能を入れる

フキダシのポップ位置の高さを調整にするには、マップイベントが使っているキャラグラフィックの背の高さがわかればよいですね。

「変数+」のキャラ関係にそのような処理はありませんが、「変数+」のピクチャ関係では「画像サイズ」の取得があります。

また、文字列変数を使うことで任意のマップイベントが使用してるキャラ画像も把握できます(下記記事を参照)。

【ウディタ講座】アクションRPGをつくろう!~イベントに攻撃する~

これらを組み合わせればなんとかなりそうです。

できました。

 

やっていることを解説していきましょう。

使われているキャラチップ画像を「不透明度0」かつ「縦の分割数4」で表示します。キャラチップはもともとは下のような画像ですから、縦分割数4で表示するとちょうどキャラ1体ぶんの高さ(縦サイズ)になるのです。

この高さを変数+で取得したら、キャラチップ画像は消去してしまいましょう。

 

あとは「タイルサイズ」と「キャラチップ高さ」を元にして、フキダシのポップ位置Y座標を調整するのです。今回のサンプルの場合は、「対象の画面座標Y―(キャラチップ高さ+タイルサイズ/2)」がちょうどよさげ。

きれいに調整してくれるようになりましたね。

 

発展編:凝った挙動のザコ敵を作るための組み合わせ

【ウディタ講座】アクションRPGをつくろう! まとめ

 

【ウディタ講座】接触範囲拡張の可能性