【ウディタ】マップイベントの上に文字やアイコンをポップアップ表示する

レビニアよ。今回は「マップイベントの頭上に文字やアイコンなどをポップアップ表示させる」というコモンイベントを作ってみるわ。


完成系はこちら。このようにイベント中の感情表現とか、シンボルエンカウントでの発見演出なんかに使えるわね。

これらは全て1つのコモンを入力値だけ変えて実行させているのよ。こういった画面演出を多用するならコモンを作っておくと便利と思うわ。

ポップアップコモンを作成する


それじゃポップアップ表示を実行するコモンを作成していくわ。
→コモン作成:名前「〇ポップアップ」、起動条件「呼び出しのみ」

前述の通りこのコモンは入力値によってさまざまなポップアップ表現をさせるから、先にそのための入力設定を作成しましょう。


入力内容の設定はこちら。とりあえず名前と初期値をこのように入力してね。数値1~4は全て使用するから、余っている文字列変数も活用していくわ。

※ちなみに入力値からピクチャ番号を指定させているのは、ポップアップを複数同時に表示させるための措置よ。ピクチャ番号が同じだと1つしか同時実行できないからね。


数値1は文字サイズの指定よ。フォントサイズを数字で入力させるから、特殊な設定方法は使わないでいいわ。


数値2は文字色の指定。システムDB12番「文字色」をデータベース参照するのよ。


システムDB12番「文字色」はゲーム中に表示する文字の色を指定するシステムDBよ。文章表示なんかで特殊文字「\c[XX]」でデータIDを指定すれば、以降の文字が設定された色で表示されるの。


数値3はSE(効果音)の設定よ。同じくデータベース参照でシステムDB3番「SEリスト」を指定してね。


システムDB3番「SEリスト」は効果音を設定するためのシステムDBよ。ここに再生ファイルや音量などを設定しておけば、イベントコマンド「サウンド」でシステムDB指定するだけでそのとおりに再生させることができるわ。


入力4はポップアップの表示時間を指定するのに使うわ。ここに入力した数値のフレーム数だけ表示されて消えるということね。数値をいれるだけだから特殊設定はなしでいいわ。

入力設定はこれでOK。あとセルフ変数の設定もするわ。


入力設定(セルフ1~9)とは別にもう3つセルフ変数を用意してね。文字列変数に入力したピクチャ番号の数値変換用と、表示座標の取得用よ。

これで入力設定とセルフ変数の設定はOKよ。


それじゃコモンの中身を作っていくわ。まずは、文字列変数6番に入力したピクチャ番号を数値に変換するための変数操作を入力。
→■変数操作: CSelf20[ピクチャNo.] = CSelf6[ピクチャ番号] + 0

※文字列変数に格納された値は「文字列」として扱われるから、そのままでは変数呼び出し値で指定してもエラーになるわ。だから他のセルフ変数に代入することで「数値データ」に変換してあげる必要があるの。


次に呼出元マップイベントの画面座標を取得。これは変数操作+でできるけど、ポップアップはマップイベントの頭上に表示させたいから、変数操作でY座標を少しだけ上に調整しましょう。
→■変数操作+: CSelf22[座標X] = このマップイベント の 画面X座標
→■変数操作+: CSelf23[座標Y] = このマップイベント の 画面Y座標
→■変数操作: CSelf23[座標Y] -= 28 + 0


ここからは実行処理よ。まずは入力値にしたがってSEを再生するわ。
→■サウンド:SE 変数[CSelf2[SE]] 再生 / 遅延:0フレーム


前述の通り、「サウンド」コマンドではシステムDB3番「SEリスト」を指定して実行することができるわ。SEのIDはセルフ変数2番を変数呼び出し値で指定してね。


次はピクチャコマンドで実際にポップアップを表示(詳細は後述)。
→■ピクチャ表示:CSelf20[ピクチャNo.] [中心]文字列[\E\c[\cself[1]]\f] X:CSelf22[座標X] Y:CSelf23[座標Y] / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]


表示する文字列やピクチャ番号等は、入力値で仕様したセルフ変数を変数呼び出し値でそれぞれ指定するのよ。表示タイプはもちろん「文字列をピクチャ表示」で。


文字列欄に入力している呪文みたいなヤツの意味はこちら。要は文字制御用の特殊文字にセルフ変数の値を入れ子にしているのね。

  • \E
    以降の文字列をフチ付きにする。
  • \c[XX]
    フォントカラーを変更。色はシステムDBタイプ12から読み込み。
  • \f[XX]
    以降のフォントサイズを変更。
  • \cself[XX]
    このコモンイベントのセルフ変数X番の値を表示(X=0~4、10~99は数値、X=5~9は文字列)。


最後にピクチャ消去コマンドでポップアップを消して終了
→■ピクチャ消去:CSelf20[ピクチャNo.] / 0(CSelf3[表示時間])フレーム


発動ディレイは「このフレーム数だけ実行を遅らせる」という項目よ。ここにセルフ変数3番「表示時間」を変数呼び出し値(1600003)で指定することで、「指定した時間だけポップアップを表示してから消去する」という動作をさせているのね。

これでコモンの作成は完了よ。お疲れ様でした。

ポップアップコモンの使い方

それじゃ作成したコモンの使い方を解説していくわね。冒頭の動画ではどのようにマップイベントから呼び出していたのか、を説明するわ。


「!」のポップアップはこちら。表示したい文字に!を入力しただけね。その他の入力設定はご覧の通り。


こちらは「?」のポップアップ。文字色や再生SEを変えているけど、やり方自体は!と変わらないわ。2文字以上を表示させる場合も一緒よ。


こちらはアイコン表示のポップアップ。実は文字だけじゃなく特殊文字「\i[XX]」を入力すればアイコン画像を表示させることもできるのよ。

アイコンというのは、ウディタの「BasicData」フォルダに入っているiconXXX.pngという画像ファイルのことよ。


文章表示やピクチャコマンドなどで「\i[XX]」を入力すれば、その番号の画像ファイルを文字として表示することができるの。

初期から0~125番まで用意されているけど、好きな画像を用意して126番以降を追加することもできるわよ。

※ちなみにアイコン表示の場合は、文字サイズや文字色などの入力設定は無視されるわ。


最後にシンボルエンカウントでの活用方法(特別ゲスト:邪〇ちゃんさん)。見つかった時に!マークと効果音を入れるだけでも、シンボルエンカウントとしての見栄えがとても良くななるわね。

とまぁこんな感じで、マップイベント上に文字やアイコンをポップアップ表示させるコモンの解説は終了よ。

ポップアップには文字だけでなくアイコン画像が使えるから、自分でアイコン画像を追加すれば好きなポップアップを表示させることができるわね。ウディタ用のアイコン素材はググればいろいろ見つかるから、探して活用するといいわ。

追記:同じことをもっと高度に実現している方がおられた件

当記事とほぼ同じことを既に解説なさっている方がいらっしゃったわー。

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

こちらは「呼出元マップイベントのキャラチップサイズに応じて表示座標を調整する」ということをしているので、私のコモンよりも高機能なのよ。