制作 くうきいぬ
対応ウディタバージョン 2.10以降
対応解像度(2.10) 全解像度
画像はクリックで拡大、画面右下の[↑]で目次に戻れます
[文章の表示]コマンドで表示されるメッセージを、名前欄と顔グラフィック付きでイベントの頭上に表示できるコモンイベントです。
ウィンドウ画像の変更や、顔グラのカラー補正、はみ出た分の自動縮小など、色々と詰められるだけ詰めてみたお陰で軽量とはいかなくなってますが、なんとなくリッチなゲームになった気になりたい人におすすめ。
導入の前に以下のファイルがあるか確認してください。
ファイル名 | 備考 |
!ReadME.html | 説明書(このファイル) |
!UpDate.txt | 更新履歴 |
Constants(Screen).dbdata | 画面関係の予備変数名のセット |
InitializeConstants(Screen).common | ↑の自動初期化イベント |
CheckStringHeadisNumeric.common | 文字列先頭数値判定コモン |
DeleteHeadSpace.common | 文字列先頭空白削除コモン |
MessageBalloon134.common | 高機能吹き出しメッセージコモン本体(ver 1.3.4) |
WindowTypeList.dbtype | メッセージウィンドウの背景や書式データのDBタイプファイル |
[WindowBaseSample] | 対応ウィンドウ画像のサンプル |
[差分アップデート(1.3.3から)] | ver1.3.3からの差分アップデートに必要なファイル |
[Img] | この説明書に使われている画像ファイル |
このシステムを導入するにはそれぞれ以下の量の空きスペースが必要です。
不足している場合は「データ最大数の変更」や「タイプ数の設定」ボタンから 必要な分増やしておいてください。
分類 | 必要数 | 推奨位置 |
コモンイベント | 8+3イベント | 特になし |
UDB | 1タイプ | 特になし |
予備変数7 | 6個 | 7-0 ~ 7-5 |
UDBエディタで作成した空きスペースを選択し、WindowTypeList.dbtypeを読み込みます。
[タイプ内容の設定]からデータIDの設定方法を「手動で設定」に変更します。
このタイプが読み込まれたタイプ番号を判定するのに必要なため、タイプ名は絶対に変更しないでください
初期値に依存する設定ミスが原因で正しく動作しないと報告されるケースが多いです
初期値を呼び出すため、タイプ内の全データを一度[delete]キーで初期化してください
設定が終了したら保存してUDBエディタを閉じてください。
SDBエディタを開いてタイプ「予備変数7」のID0を選択し、Constants(Screen).dbdataを読み込む
(6つの変数が確保されます)
コモンイベントエディタで空いているコモンイベントにInitializeConstants(Screen).commonを放り込む
(1つのコモンイベントが読み込まれます)
コモンイベントエディタで空いているコモンイベントにDeleteHeadSpace.commonを放り込む
(1つのコモンイベントが読み込まれます)
コモンイベントエディタで空いているコモンイベントにCheckStringHeadisNumeric.commonを放り込む
(1つのコモンイベントが読み込まれます)
コモンイベントエディタで空いているコモンイベントにMessageBalloon134.commonを放り込む
(8つのイベントが読み込まれます)
「○◆メッセージウィンドウ[インタフェース]」の入力値設定で、数値1(ウィンドウID)のデータベース読み込み先を先ほど導入したウィンドウスタイルUDBに変更してください
「○┣[メッセージ]ウィンドウの変更」の入力値設定で、数値1(IDで指定)のデータベース読み込み先を先ほど導入したウィンドウスタイルUDBに変更してください
設定が終了したら保存してコモンイベントエディタを閉じます。
基本システム2のコモンイベント「X[共]メッセージウィンドウ」(標準ではCEv63)の起動条件を「並列実行(常時)」から「呼び出しのみ」に変えて無効化するか、いっその事削除する
他の[文章の表示]コマンドを使うメッセージ表示システムとは共存できないので基本システム2以外の場合や他のメッセージウィンドウを導入済みの場合はそれぞれ無効化か削除してください
ゲーム中は自動初期化されます
コモンイベントエディタで「×┣設定・初期化」を選択し、設定欄の内容を必要に応じて変更してください。
|▼
|▼ 設定欄
|▼
|▼ 使用するピクチャ番号の初めの一つを指定します
|■変数操作: CSelf10[[設定]基準ピクチャ] = 36000 + 0
|▼ 指定した値~+20までが使用されます
|▼
|▼ 動作モードを指定します
|■変数操作: CSelf11[[設定]動作モード] = 0 + 0
|▼ 0:ピクチャモード(標準)
|▼ 文字列ピクチャを使用して文章を表示。「$~」による名前変更、文章幅の自動調節、
|▼ ウィンドウ別ポーズカーソルが利用可能。
|▼ 1:文章モード
|▼ 標準の文章表示機能を使って文章を表示。「\!」に対応。
|▼
|▼ ウィンドウの開閉に掛ける時間[F]
|■変数操作: CSelf12[[設定]開閉処理時間] = 5 + 0
|▼
|▼ 顔グラフィックの拡大率
|■変数操作: CSelf13[[設定]顔グラ拡大率] = 100 + 0
|▼
|▼ 追跡機能(1=ON)
|■変数操作: CSelf14[[設定]追跡機能] = 1 + 0
|▼ ピクチャモード専用
|▼ メッセージ表示中、キャラクターが移動してもウィンドウが付いていくようになります
|▼ 毎フレームの処理が多くなるのでそれなりにパフォーマンスが落ちます
|▼
|▼ 有効顔グラ番号
|■変数操作: CSelf15[[設定]有効顔番号] = 1 + 0
|▼ 顔番号sysV[0]の指定が何番以上なら顔グラが表示されるか
|▼ [1]がデフォルト
|▼ [2]で基本システム互換(ある程度開発が進行しているゲームに導入する時向け)
|▼
|▼ その他メッセージ系変数の初期化
|■変数操作: Sys9:メッセージ速度( X 文字/秒) = 120 + 0
設定場所 | 設定内容 |
CSelf10[[設定]基準ピクチャ] |
使用するピクチャ番号の初めの一つを指定します 指定した値~+20までが使用されます |
CSelf11[[設定]動作モード] |
動作モードを指定します
|
CSelf12[[設定]開閉処理時間] |
ウィンドウの開閉に掛ける時間[フレーム] あんまり長くしてもじれったくなるので注意 |
CSelf13[[設定]顔グラ拡大率] |
顔グラフィックの拡大率
320x240の時50%表示すると綺麗に表示できるテクニックを使いたい場合はここで設定 |
CSelf14[[設定]追跡機能] |
追跡機能を使うかどうか(ゲーム中は「表示位置の変更」で設定できます)
|
CSelf15[[設定]有効顔番号] |
有効顔グラ番号
顔番号SysV[0]の指定が何番以上なら顔グラが表示されるか |
Sys9:メッセージ速度( X 文字/秒) |
メッセージが秒間何文字ずつ表示されるか 動作モードが「ピクチャ」モードでもこの値が使用されます |
コモンイベントエディタで「×┗[メッセージ]オートスキップ」を選択し、設定欄の内容を必要に応じて変更してください。
|▼
|▼ 設定欄
|▼
|▼
|▼ 長押し開始からスキップ開始までに必要なフレーム数
|■変数操作: CSelf90[[設定]スキップ開始時間] = 20 + 0
|▼ 「999999」みたいにとてつもなく大きな値にすると実質的に無効にできます
|▼
|▼ システム文字列26,27は常に上書きされる感じなのでここか呼び出しで設定
|■文字列操作:CSelf7[追加先頭文字列] = ""
|■文字列操作:CSelf8[追加最後尾文字列] =""
設定場所 | 設定内容 |
CSelf90[[設定]スキップ開始時間] |
長押し開始からスキップ開始までに必要なフレーム数 「999999」みたいにとてつもなく大きな値にすると実質的に無効にできます |
CSelf7[追加先頭文字列] CSelf8[追加最後尾文字列] |
システム文字列26,27は常に上書きされる感じなのでここか呼び出しで設定 |
同じウィンドウ画像で「しっぽの画像を変えたい場合」や「顔グラフィックの位置を変えたい場合」、「顔グラフィックのカラー補正を変えたい場合」などは、それぞれ別にDBデータを作って使い分けてください
【画像】項目は空白を指定することで表示しない設定にできます
項目番号 | 名前 | 解説 |
ID | データID |
【文字列】名前を設定できます。 |
0 | ウィンドウ画像 |
【画像】背景に使われる画像を設定します。(3x3分割) |
1 | 余白 | 【数値】[px]ウィンドウ端から本文までの間隔を指定できます |
2 | 装飾パーツ |
【画像】ウィンドウの四隅に別途装飾画像を付けられます(2x2分割) |
3 | 顔グラ位置 | |
4 | 顔グラ余白 | 【数値】[px]ウィンドウ端から顔グラまでの間隔を指定できます (負の値を入れると、顔グラがウィンドウからはみ出します) |
5 | 顔グラと文章の間隔 | 【数値】[px]顔グラから本文までの間隔を指定できます (負の値を入れると、文章が顔グラに被ります) |
6 | しっぽ画像(下向き) | 【画像】吹き出しのVの部分の画像を指定します |
7 | しっぽ画像(上向き) | 【画像】吹き出しのVの部分の画像を指定します |
8 | 文章の書式 |
【文字列】本文の前に文字列を加える事が出来ます。 ウィンドウに合わせた文字色やフォントの指定などに。 |
9 | 名前欄の位置 |
【選択】名前欄がどこに表示されるか指定します。 |
10 | 名前欄用画像ファイル |
【画像】名前欄の背景を指定します。(3x3分割) ↑で[ウィンドウに内包(差し替え)]を選んだ場合、内容0のわかりにこのウィンドウ画像が使われます。 |
11 | 名前欄用装飾パーツ | 【画像】[装飾パーツ]の名前欄版 |
12 | 名前欄余白 | 【数値】[px]名前欄のウィンドウ端から名前文字列までの余白 |
13 | 名前欄書式 | 【文字列】[文章の書式]の名前欄版 |
14 | セーフゾーンx | 【数値】[px]画面端からこの範囲にはウィンドウ端が入らないようにします |
15 | セーフゾーンy | 【数値】[px] |
16 | [固定モード]サイズW | 【数値】[px]固定モード時の最低ウィンドウサイズを設定します |
17 | [固定モード]サイズH | 【数値】[px] |
18 | ポーズカーソル | 【画像】(動作モードが文字列ピクチャ時専用)ポーズカーソルの画像を指定します |
19 | 分割数 | 【数値】指定した画像が何枚のアニメーションで出来ているか指定します |
20 | 簡易アニメタイプ | 【選択】分割数が"1"の時、コモン側でアニメーションを付けることが出来ます |
21 | アニメ間隔・処理時間 | 【数値】[F]適宜調整してください |
22 | [顔グラ]カラー補正R |
【数値】[0-200]表示される顔グラにカラー補正をかけられます |
23 | [顔グラ]カラー補正G | 【数値】[0-200] |
24 | [顔グラ]カラー補正B | 【数値】[0-200] |
25 | [顔グラ]不透明度 | 【数値】[0-255]表示される顔グラの不透明度を指定します |
26 | [顔グラ]左右反転 | 【選択】[1,-1]表示される顔グラを左右反転させるか指定します 1,-1以外の値では正常に表示されませんので必ず指定してください (タイプ設定データだけ読み込んで各データを初期化していないため[0]が入っているとか、ありがちです) |
27 | 文章と名前欄の間隔 | 【数値】[px]名前欄をウィンドウに内包する場合、文章と名前欄の間隔を指定できます |
28 | 顔グラの描画優先順位 | 【選択】 |
29 | 生成時効果音 | 【音声】ウィンドウが生成されるときに鳴らす効果音を指定します(空白で無し) |
30 | 消滅時効果音 | 【音声】ウィンドウが消滅するときに鳴らす効果音を指定します(空白で無し) |
31 | 表示中効果音 | 【音声】文字列が表示されている途中に鳴らす効果音を指定します(空白で無し) いわゆる「ポポポ音」 |
32 | 再生間隔 | 【数値】[表示中効果音]を何フレームごとに鳴らすか指定します(剰余に使われる値なので1以上) |
33 | 周波数ブレ[100±%] | 【数値】[表示中効果音]を鳴らす際、周波数に振れ幅をもたせることができます(100%固定の場合[0]) 音ごとに微妙な高低変化をつけることで「ホニャホニャ語」をなんちゃってですが再現できます |
34 | 入力待ち効果音 | 【音声】文字列の表示が終わり、入力待ちになったときに鳴らす効果音を指定します(動作モードが「文字列ピクチャ」時のみ、空白で無し) |
メッセージの表示前にコモンイベントを呼び出すことで、ウィンドウのスタイルの変更、表示位置の設定などが行えます。
オプションの一括設定を行います。すべての機能を仲介できるわけではありませんが、後のバージョンアップでコモンの位置や名前の変更があってもデータを弄らずに使用出来るという利点もあります。
入力値 | 解説 |
ウィンドウID |
表示するウィンドウのDBデータ番号を入力してください
ウィンドウ名が入力されていると、そちらが優先されます |
位置 |
頭上に文章を表示させたいマップイベントのIDを入力してください |
顔グラ番号 |
表示する顔グラフィック(SDB24)のデータ番号を入力してください 名前で呼びたい場合は「顔グラフィックの変更」から |
名前欄 |
名前欄機能を使用する場合、入力した文字列が名前欄に表示されます |
ウィンドウ(名) |
表示するウィンドウのDBデータIDを入力してください 入力されていると、数値1に何が入れられていてもこちらが優先されます |
以降表示されるウィンドウのスタイルを変更します
入力値 | 解説 |
IDで指定 | データ番号で指定します |
名前で指定 |
データの名前で指定します 入力されていた場合、こちらが優先されます |
以降表示されるウィンドウの位置を変更します
入力値 | 解説 |
表示位置 |
頭上に文章を表示させたいマップイベントのIDを入力してください |
名前の変更 |
名前欄を登録されている名前に変更するか指定します
|
追跡機能 |
追跡機能の切り替えを行うか指定します
|
以降表示される顔グラフィックを変更します
入力値 | 解説 |
IDで指定 | データ番号で指定します |
名前で指定 |
データの名前で指定します 入力されていた場合、こちらが優先されます 先頭に「@」をつけた文字列を入力すると、「(名前欄の内容)@(文字列)」のデータを検索します 例:(名前欄に「勇者」と入力されていた場合)
|
以降表示される名前欄の文字列の変更、イベントに紐付けされる登録名の変更を行います
入力値 | 解説 |
動作 |
頭上に文章を表示させたいマップイベントのIDを入力してください
|
登録するEv |
名前を登録させたいマップイベントのIDを入力してください
一応固定モードの値にも登録できますが、元々はマップEv、主人公向けの機能なのであまりオススメしません(登録名の削除時は「仲間」として扱われます)
|
名前欄 |
この文字列の内容を名前として表示または登録します |
ゲーム開始時に一回だけ起動し、システム全体の初期化を行います
入力値がありますがシステムが動作モードを取得するためのものです
ユーザーが使用する意味はありません
ゲーム中常に並列して実行され、[文章の表示]コマンドの状態を監視してウィンドウの表示を行います
入力値がありますがシステムが現在使用中のウィンドウのスタイルを取得するためのものです
ユーザーが使用する意味はありません
ゲーム中常に並列して実行され、決定キーを押し続けている間、文章の表示をスキップします
入力値 | 解説 |
動作 |
|
文字列1 |
[動作]で指定した対象をどのように変更するか指定します |
元文字列の先頭にある空白を削除して返します。
文字列を使った命令文の解析で、見やすさ重視で命令の間にスペースが入れられたりしていても対応することができます
入力値 | 解説 |
再帰 |
|
削除対象 |
削除対象の文字を指定します ビットで指定(「1」と「2」を使う場合、1+2→「3」を入力します)
|
元文字列 | 処理対象の文字列を入力します |
[戻り値] | 【文字列】処理結果が返ってきます |
文字列の先頭が数値で始まるか判定します。
変数に文字列を代入する場合、「0」で始まるときと「文字」で始まるときどちらも結果が「0」になるため、本当にその文字列が数値で始まるのかを判定できます
入力値 | 解説 |
文字列 | 判定する文字列 |
[戻り値] |
【数値】判定結果が返ってきます
|
もっと便利に使うために知っておくとお得なこと
本システムでは名前欄に任意の文字列を表示させることができますが、イベントや主人公自体の名前はそうそう変わるものでもありません。
そこで、「イベントや主人公に予め名前を登録しておいて、表示位置の変更と同時に名前欄を登録しておいた内容に変更することで「名前欄の変更」を呼び出す手間をなくしてしまおう」との考えから追加された機能が名前登録機能です。
「名前欄の変更」を呼び出す際、数値1[動作]を「0:名前欄の変更」の代わりに「1:名前を登録」にするとイベントに名前が登録されるモードで動作します。
数値2に「名前の登録を行いたいイベントID」、文字列1に「登録したい名前」を入力してください。
この時点では名前欄の内容はまだ変更されません、初めのうちにそのイベントで話す可能性のあるイベント全てに紐付け作業を行っておくといいでしょう
「表示位置の変更」で、数値1[動作]に「頭上に文章を表示したいイベントID」、数値2[名前の変更]を「1:登録名に変更」で呼び出すと、位置の設定を行った後、名前欄が先ほど登録しておいた、そのイベントに紐付けられた名前に変更されます。
何らかの事情で一時的に登録された名前とは違う名前を使いたい場合も、位置の設定後、「名前欄の変更」で設定しなおせばその文字列を使うことができます。
注意点としてマップの移動が行われた場合、自動的に登録されていたマップイベントの名前を削除するようになっています。
マップの移動を監視して、移動後のマップのイベントの名前を一括して再設定するようなコモンを作るとより便利に使えるでしょう。
文章の表示中にキャラクターが移動しても、吹き出しがキャラクターについていくようにすることができます。
が、幾つか制限とバグっぽいのがあります。できればイベントシーンなど完全に動作が管理された場面でご利用ください。
「設定・初期化」での設定か「表示位置の変更」の引数で使用するかどうかの切り替えができます。
結構ヌルヌル追い回します。
システム文やモノローグなど特に特定の誰かが話しているような場合でない時などに使える、 ウィンドウの最低幅、最低高を指定した状態で文章を表示できる機能です。標準の文章表示やツクールっぽい表現ができます。
「表示位置の変更」で[表示位置]を[2000]以上に設定すると使えます。
動作モードが文字列ピクチャモードの場合に使える機能です。
「@~」を使った顔グラフィック番号の設定のように、文章の前に、行頭が「$」から始まるコマンドを記述することで、以降の文章に対して各種設定が行えます。(記述は@より後ろになります)
使いこなせば[文章の表示]コマンドのみで大抵の制御ができるので、インタフェースイベントを呼び出す手間が無くなり、コマンド文をスッキリさせることができます。
動作モードの設定はCEv「×┣[メッセージ]初期化・設定」から行えます。
$[表示先],(または"=")[名前],[顔グラ],[ウィンドウ]
が基本コマンドとなります。
以降の記述を全て省略する場合、区切りの",(カンマ)"も省略できます。
複数個のコマンドを記述することもできます。その場合、後に書かれたものに上書きされていきます。
文章の行頭を"$"で始めたい場合"$$"と記述してください。
その場合、以降に書かれている$制御文が本文に表示されてしまいますのでご注意ください。
$[数値]
で表示位置、
$[文字列]
で名前欄、
$face=[顔グラ]
で顔グラ、
$window=[ウィンドウ]
でウィンドウが
それぞれ指定できると覚えておけば記述順を覚えなくてもOK。
([顔グラ][ウィンドウ]はIDか名前。数字で始まる名前なら""で囲む)
$this
表示位置をこのイベントに設定
名前は登録名が呼び出される(未登録なら名前欄なし)
$this,,0
@0
$this
表示位置をこのイベントに、顔グラを消去
名前は登録名が呼び出される(未登録なら名前欄なし)
$P・G・エディ
表示位置が変更されるまで表示される名前を「P・G・エディ」に変更
(名前登録と表示位置指定コマンドの登場で死にコマンドになってる気がするけど
旧バージョンのとの互換性維持のため同じ動作をするように。)
$"007"
表示位置が変更されるまで表示される名前を「007」に変更
$face=1
顔グラをID[1]に変更
$this,P・G・エディ
表示位置をこのイベントに、名前を「P・G・エディ」に変更
$this=P・G・エディ
表示位置をこのイベントに、名前を「P・G・エディ」に変更
このイベントに紐付けられる名前に「P・G・エディ」を登録
$this,,P・G・エディ_普通
$this
$face=P・G・エディ_普通
表示位置をこのイベントに、名前は登録名を使う
顔グラを「P・G・エディ_普通」に変更
$this,,,3
$this
$window=3
表示位置をこのイベントに、名前は登録名を使う
ウィンドウをID[3]に変更
$this,,P・G・エディ_普通,3
表示位置をこのイベントに、名前は登録名を使う
顔グラを「P・G・エディ_普通」に変更
ウィンドウをID[3]に変更
$this=P・G・エディ,P・G・エディ_普通,3
表示位置をこのイベントに、名前を「P・G・エディ」に変更
このイベントに紐付けられる名前に「P・G・エディ」を登録
顔グラを「P・G・エディ_普通」に変更
ウィンドウをID[3]に変更
$this,ハカセ,@企み
表示位置をこのイベントに、名前を「ハカセ」に変更
顔グラを「ハカセ@企み」に変更
$0
表示位置をEvID[0]に変更、名前は登録名を使う
$0=夕零
$1=夕一
EvID[0]に紐付けられる名前に「夕零」を登録
表示位置をEvID[1]に変更、名前を「夕一」に変更、登録もする
$party0,ウルファール
表示位置を主人公に、名前を「ウルファール」に変更
$party2=夕一
表示位置を仲間2に、名前を「夕一」に変更
仲間2に紐付けられる名前に「夕一」を登録
$party2,焼鳥,夕一@丸焦げ
表示位置を仲間2に、名前を「焼鳥」に変更
顔グラを「夕一@丸焦げ」に変更
標準のポーズカーソルはどうやっても画面内に収まる位置に修正されるため、動作モードが文字列ピクチャモードの場合、標準のポーズカーソルとピクチャによって擬似的に生成されたポーズカーソルが同時に表示され、2つのポーズカーソルがあるように見えます。
SDB[10 ウィンドウ画像:0 入力待ちポーズ画像:0 画像ファイル名]を空欄に設定すると解決します。
UDBでウィンドウ画像を空白に設定したデータを作って指定してやれば、ウィンドウなしで使えます。
UDBで画像を空白に設定したデータを作って指定してやればOK。
仕様です。書式でフォントサイズを小さくするか、大きめの顔グラを使うかでなんとかしてください
追跡機能は動作モードが「文字列ピクチャ」モードの時のみ有効な機能です。「初期化・設定」で動作モードが「文章表示」モードになっていないか確認ください。
動作モードが「文字列ピクチャ」モードの場合、ウディタの文字列ピクチャの仕様で、\!は使えません
できません。
現在値読み込み可能マップズームに対応しています。
導入して正しく使用している場合、マップズームしてもイベントの位置に吹き出し表示されます
ファイル形式はウディタで表示できるもの(PNG, JPEG, BMP)
「お手軽ウィンドウ」と同一
3*3に分割できるサイズ、中央と4辺は表示サイズに応じて拡大される
中心がウィンドウの端と重なるように等倍表示される
縦サイズの半分が、ウィンドウの端からキャラクター上端までの距離になる
2*2で分割できる画像。ウィンドウの4角に中央が来るように等倍表示される
何であるのかって言うと、ウィンドウの最低サイズをできるだけ小さくしながら大きな装飾を付けられるようにして、ウィンドウデザインの自由度を広げるため。
画像ファイルがそのまま表示されるため、1ファイルあたり1キャラ1表情
拡大率はシステム設定で指定
他は特に制限なし