MultiMessage:リファレンス


トップページへ | RGSSスクリプトへ | MultiMessage概要へ

MultiMessage:リファレンス

MultiMessage:マルチメッセージスクリプトについての詳細情報です。

制御文字

制御文字は文章を直接制御する識別子です。文中に何度でも使用できます。 大文字小文字どちらでも認識します。

(ただし、一部には事実上1回しか使えないものもあります。)

制御文字名前出力例説明
\v[n]数値変数-(※RGSS/RGSS2標準)数値変数の値を取得します。\v[\v[n]]のような書き方もできます。
\d[cn]データベース呼び出しポーション スケルトン ロングソード スケルトン*2 レザーシールド 町データベースから名前を取得します。アイコンも取得します。
取得できなかった場合は空文字を返します。
一文字目は次のようになります。
i (Item) :アイテム
w ('W'eapon):武器
a ('A'rmor) :防具
s ('S'kill) :スキル
e ('E'nemy) :敵キャラ
t ('T'roop) :敵グループ
c ('C'lass ):職業
p ('P'lace) :場所
カスタマイズポイントで色を指定した場合は色付きで表示されます。

例:\d[e24] #-> ID24番の敵キャラの名前を表示します。
\n[n]アクターラルフ(※RGSS/RGSS2標準)アクターの名前を取得します。
カスタマイズポイントで色を指定した場合は色付きで表示されます。
\c[n]文字色文字列テスト(色違い)(※RGSS/RGSS2標準)文字色を指定します。実際の文字色はウィンドウスキンに依存します。(VX)
XP版では指定してあります。(15色)
\gゴールドウィンドウ-(※RGSS/RGSS2標準)ゴールドウィンドウを表示します。
\.1/4秒ウェイト-(※RGSS2標準)1/4秒待機します。
\:1/2秒ウェイト-1/2秒待機します。
\|1秒ウェイト-(※RGSS2標準)1秒待機します。
\!入力待ち-ボタンの入力を待ちます。
\>瞬間表示開始-(※RGSS2標準)瞬間表示を開始します。瞬間表示終了までの間を一気に表示します。
\<瞬間表示終了-(※RGSS2標準)瞬間表示を終了します。
\^メッセージ終了-(※RGSS2標準)メッセージを終了します。この前にはウェイトを置くことが推奨されます。マルチウィンドウの場合、ウィンドウは撤去されません。この制御文字以後の文章は無視されます。
\b太字文字列テスト(太字)文字を太字にします。もう一度指定すると太字を解除します。
\i斜体文字列テスト(斜体)文字を斜体にします。もう一度指定すると斜体を解除します。
\k影付き文字文字列テスト(影なし)影つき文字を付ける、もしくは解除します。
\o[n]透明度文字列テスト(一部透明)指定された透明度を文字に適用します。0 ~ 255 の間で指定します。
ただし、64以下は、意図的でない限り読みにくくなるので注意してください。
\r[w,r]ルビ文字文字列(もじれつ)テスト 指定された文字列にルビをふります。最初の指定が文字列、次の指定がルビとなります。多用した場合、ルビが衝突する場合もありますので多用するときは注意してください。

例: \r[齎,もたら]す
\s[n]スペース-指定したピクセル分スペースを空けます。
\f[n]書体文字列テスト(書体)カスタマイズポイントで指定した文字書体を適用します。
\w[n]メッセージ表示速度-メッセージを表示する速度を指定します。値が大きくなるほど表示が遅くなります。
\tインデント-現在の位置をインデントに設定します。
\L[n]ライン-現在の行から下線を指定したピクセル分引きます。
\z[n]文字の大きさ文字列テスト(だんだん大きくなる)文字の大きさを指定します。10 ~ 95 の間で指定します。小さい文字の場合は、意図的でない限り読みにくくなります。
なお、大きすぎる文字はウィンドウに収まらなくなる事がありますので注意してください。
\u下線文字列テスト(下線)文字に下線を付けます。もう一度指定すると下線を取り消します。
\d打ち消し線文字列テスト(打ち消し線)文字に打ち消し線を付けます。もう一度指定すると解除します。
\hかすれ字文字列テスト(かすれ字)文字をかすれ字に設定します。もう一度指定すると解除します。この指定は描画するのに時間がかかります。大きな文字や同時出力での使用は極力避けてください。
\y[f,i]顔グラフィック変更
おお 神よ! 勇者た
おお 神よ! 勇者たちに 光
顔グラフィックを変更します。タイミングで切り替えが出来るので表情を表すのにとても効果的です。インデックスは9番目以降も認識します。なお、顔グラフィックの切り替えには6フレーム(60FPSで1/10秒)を要します。

例:\y[Actor1,2] #-> ファイルActor1 の 2番目の顔グラフィックを表示します。

※日本語のファイル名は極力避けてください。認識しない恐れがあります。
\@メッセージウィンドウ撤去-メッセージの表示を終了し、メッセージウィンドウを撤去します。この制御文字の前にウェイトを置く事を推奨します。
この制御文字以後の文章は無視されます。
\a[c,n]アニメーション再生燃え上がるアニメーション指定したキャラクターにアニメーションを再生します。
c: -1 を指定するとプレイヤー、0 ならこのイベント、それ以外ならイベントID指定です。
n :再生するアニメーションIDです。
\?[c,n]ふきだし怒りのふきだし指定したキャラクターにふきだしを表示します。
c: -1 を指定するとプレイヤー、0 ならこのイベント、それ以外ならイベントID指定です。
n:ふきだしの指定は次の通りです。
1:びっくり
2:はてな
3:音符
4:ハート
5:怒り
6:汗
7:くしゃくしゃ
8:沈黙
9:電球
10:Zzz
※VX版のみ
\e[f,v,p]SEの再生-SEを再生します。
f :ファイル名を指定します。
v :SEのボリュームを(1 ~ 100)の間で指定します。
p:SEのピッチを(50~150)の間で指定します。
\%[n]アイコン-アイコンを表示します。
\x[p,t]ゲームパッド振動-ゲームパッドを振動させます。強さを 1~100の間で、時間を1~1000の間(1/100秒)で指定します。

※この制御文字を使用するには、Input-Ex 入力拡張・ゲームパッド振動対応スクリプトの導入が必要です。
\n改行-メッセージの改行を行います。(※分岐のときは使わないでください。おかしな結果になる恐れがあります。)
\\\出力-(※RGSS/RGSS2標準)\の文字に置き換わります。
▲このページの先頭へ

特殊制御文字

文章は中央そろえ 文章は右 文章は左 テストテストテストテストテストテスト

これらは行ごとに指定する制御文字です。大文字小文字どちらでも認識します。

制御文字名前説明
_LT左揃えメッセージを左揃えにします。ページの最後に達するか、新たに指定されるまで有効です。
特に指定していないときもこの指定になります。
_CT中央揃えメッセージを中央揃えにします。ページの最後に達するか、新たに指定されるまで有効です。
_RT右揃えメッセージを右揃えにします。ページの最後に達するか、新たに指定されるまで有効です。
▲このページの先頭へ

初期化文字

初期化文字は、メッセージを実際に表示する前に制御しておくための識別子です。これは一回の文中にそれぞれ1回だけ使う事が出来ます。(2個以上設置した場合、そのまま描画されます。)

なお、位置は制御文字と異なり、行をまたぐような書き方をしない限り、文章の中で何処に書いても構いません。

初期化文字は大文字小文字ともに認識しますが、一部は大文字小文字で動作が異なります。

名前制御・会話モード

_a<n> アクターの名前

会話モードに入り、アクターの名前を表示します。 カスタマイズポイントで色を指定した場合は色付きで表示されます。

_n<s> 任意の名前

会話モードに入り、任意に設定した名前を表示します。 カスタマイズポイントで色を指定した場合は色付きで表示されます。 制御文字も有効です。

_n(N)<s> 任意の名前記録

会話モードで使用する名前を対応する番号と併せて記録します。 後述する_NL<n>で引き出すことができます。 制御文字も有効です。

実際の記述は次の通りです。

_n56<魔王>  : この例では、56番目に名前「魔王」を記録します。

記録は、シーンを抜けるまで有効です。

_NL<n> 任意の名前を引き出し

前述の_n(N)<s>記録した名前を引き出し、会話モードに入ります。

顔グラフィック関連 ※XP版のみ

_F<s,n> 顔グラ表示

指定したファイルの顔グラフィックを表示します。 インデックスは、9番目以降も認識します。 顔グラフィックのファイルは、/Graphics/pictures に入れてください。

_FN<n,n>

登録されたファイルの顔グラフィックを表示します。 インデックスは、9番目以降も認識します。

_FD

顔グラフィックを消去します。

ウィンドウ制御

_T<n> ウィンドウの位置

通常時のウィンドウの位置を設定します。 0:上 1:中 2:下 です。

_B<n> ウィンドウの背景

ウィンドウの背景を指定します。 0:通常 1:暗くする 2:透明(XP版では、0:通常、1:透明)

_LS<s> 選択肢後に入れる文字列
「テスト」テストです。(選択肢:はいです。:いいえ:その他:どれでもない)の中から選択してください。

選択肢後に入れる文字列を指定します。選択肢または選択肢を内包しない場合は無効となります。

選択肢内に入れて使えますが、選択肢を内包して使うことを推奨します。

_P<(tblr)n> ポップアップ指定

メッセージのポップアップを指定します。

t:上1キャラ分空き    T:上接触
b:下1キャラ分空き    B:下接触
l:左側1キャラ分空き  L:左接触
r:右側1キャラ分空き  R:右接触

nはイベントID毎の指定です。 0を指定するとこのイベントから、-1を指定するとプレイヤーからポップアップされます。

_PN<(tblr)n> ポップアップ指定(通常のふきだし付き)

メッセージのポップアップを指定し、通常のふきだしを表示します。

t:上1キャラ分空き    T:上接触
b:下1キャラ分空き    B:下接触
l:左側1キャラ分空き  L:左接触
r:右側1キャラ分空き  R:右接触

nはイベントID毎の指定です。 0を指定するとこのイベントから、-1を指定するとプレイヤーからポップアップされます。

_PT<(tblr)n> ポップアップ指定(思考しているふきだし付き)

メッセージのポップアップを指定し、思考しているふきだしを指定します。

t:上1キャラ分空き    T:上接触
b:下1キャラ分空き    B:下接触
l:左側1キャラ分空き  L:左接触
r:右側1キャラ分空き  R:右接触

nはイベントID毎の指定です。 0を指定するとこのイベントから、-1を指定するとプレイヤーからポップアップされます。

_S<n,n> 任意座標指定

メッセージを任意の場所に設置します。 左上が基点です。

なお、はみ出す場合は自動的に補正されます。

_NM 通常ウィンドウ

ポップアップを解除し、通常のウィンドウに戻します。

_IS アイテムセレクト

アイテムセレクトのウィンドウを表示します。 他の初期化文字、制御文字などは無視されます。

結果は、WFRGSS_MultiMessage::ITEM_SELECT_VALIABLE に代入されます。

アイテム: ID
武器: ID + 1000
防具: ID + 2000

キャンセルした場合は、 0 が代入されます。

▲このページの先頭へ

カスタマイズポイント

ここではカスタマイズポイントの設定項目を説明します。

ウィンドウの数

MESSAGE_WINDOWS

メッセージウィンドウの数を指定します。 ここで指定した以外に選択肢、数値入力のウィンドウも用意されます。

メッセージのフェード

MES_FADEINOUT

メッセージウィンドウのフェードインアウトの指示を行います。 この指定を行うと、メッセージはフェードインまたはフェードアウトされ、瞬間表示になります。(最後のウェイトは有効です。)

ウインドウ内包

CHOICE_INVOLVING_SWITCH

選択肢をメッセージウィンドウに内包させたいときに、指定します。 ここで指定したスイッチがONのとき、選択肢はメッセージウィンドウに内包されます。

NUMINPUT_INVOLVING_SWITCH

数値入力をメッセージウィンドウに内包させたいときに、指定します。 ここで指定したスイッチがONのとき、 数値入力はメッセージウィンドウに内包されます。

ポップアップ時のふきだし

SPOUTING_FILE

ポップアップ時のふきだし画像を指定します。 この機能を使わない場合は、空文字か、nilを指定してください。

※ウィンドウスキンを編集している場合、添付されているファイルの編集が必要な場合があります。

ウィンドウID

WINDOW_SET_VALIABLE

ウィンドウIDの切り替えを行う変数を指定します。ここで指定したIDを切り替えることで使用するウィンドウを切り替えることができます。なお、イベントが終了すると、自動的に0が代入されます。

最小高さ

N_MIN_HEIGHT

ポップアップでないときの最小の高さを指定します。

アイテムセレクト

ITEM_SELECT_VALIABLE

アイテムセレクトで結果を受け取る変数を指定します。

制限時間

MESSAGE_LIMIT_TIME

制限時間を代入する数値変数を指定します。単位は秒単位です。

TIMEOUT_SWITCH

メッセージのタイムアウトが発生したときにONになるスイッチを指定します。 このスイッチは、制限時間が代入されると、自動的にスイッチOFFになります。

バトル制限

BATTLE_LOCK

バトル時に機能制限を加えます。これはデフォルト戦闘での制限によるものです。 バトル画面を大幅にカスタマイズしたり、自作するときは、falseに指定してください

初期フォント

FONT_SIZE

フォントの大きさの初期値を指定します

FONT_HEIGHT

文字の縦幅の初期値を指定します。

フォント書体

FONT_NAME[0-7]

フォントの書体を指定します。この指定が、制御文字\f[n]に影響します。

顔グラフィック

FACE_SIZE

顔グラフィックの大きさを指定します。 VX準拠の顔グラフィックを使用する場合は、96に指定します。

FACE_OFFSET

顔グラフィックのオフセットを指定します。 この値と顔グラフィックの値がインデントされます。

FACESETS ※XP版のみ

顔グラフィックを登録します。 顔グラフィックのファイルは、/Graphics/pictures に入れてください。

  # n => "facepic" ,
  FACESETS = { 0 => "Actor1", 1 => "Actor2" , 2 => "Actor3",
              9999 => "end" }

色指定

NAME_COLOR_INDEX

会話モードでの名前の色を指定します。色はウィンドウスキン依存です。 負の値を指定すると、色を指定しなくなります。

ACTOR_COLOR_INDEX

アクターの名前の色を指定します。色はウィンドウスキン依存です。 負の値を指定すると、色を指定しなくなります。

ITEM_COLOR_INDEX

アイテムの名前の色を指定します。色はウィンドウスキン依存です。 負の値を指定すると、色を指定しなくなります。

WEAPON_COLOR_INDEX

武器の名前の色を指定します。色はウィンドウスキン依存です。 負の値を指定すると、色を指定しなくなります。

ARMOR_COLOR_INDEX

防具の名前の色を指定します。色はウィンドウスキン依存です。 負の値を指定すると、色を指定しなくなります。

SKILL_COLOR_INDEX

スキルの名前の色を指定します。色はウィンドウスキン依存です。 負の値を指定すると、色を指定しなくなります。

ENEMY_COLOR_INDEX

敵キャラの名前の色を指定します。色はウィンドウスキン依存です。 負の値を指定すると、色を指定しなくなります。

TROOP_COLOR_INDEX

敵グループの名前の色を指定します。色はウィンドウスキン依存です。 負の値を指定すると、色を指定しなくなります。

CLASS_COLOR_INDEX

職業の名前の色を指定します。色はウィンドウスキン依存です。 負の値を指定すると、色を指定しなくなります。

PLACE_COLOR_INDEX

場所の名前の色を指定します。色はウィンドウスキン依存です。 負の値を指定すると、色を指定しなくなります。

バックログ

BACKLOG_MAX_HEIGHT

バックログの最大高さをピクセル数で指定します。 通常は、152 * [最大履歴数] を推奨します。

BACKLOG_MAX_COUNTENS

バックログの最大履歴数を指定します。

BACKLOG_KEYS

バックログのキーを指定します。Input の定数で指定してください。

BACKLOG_WINDOW_OPACITY

バックログのウィンドウ透明度を指定します。

多分岐

MULTIPLE_CHOICE_FLAG

多分岐のフラグIDを代入する数値変数の値です。 フラグID は、0~99まで使用できます。

この値を0にした場合、フラグIDは常に0を使用します

MULTIPLE_CHOICE_CANCEL

キャンセルの動作を指定します。 0の場合は、キャンセルは働きません。 1以上で選択肢数以下の場合は、選択肢のデフォルトを指定します。 選択肢数より多い場合は分岐させます。

この値を0にした場合、多分岐で常にキャンセルが働かなくなります。

MULTIPLE_CHOICE_REDUCTION

選択したとき、減少させる数値変数のIDおよび、 残りの選択肢数を取得する数値変数のIDを指定します。

減少するまたはマスクする選択肢がいらない場合は、 0を指定してください。

減少する選択肢を使用する場合、指定は次のように行います。

  [残りの選択肢数を取得する数値変数] × 10000 + [減少させる数値変数のID]

IDが与えられないか、無効の場合は、常にすべての選択肢が出現します。 詳しくは、多分岐の減少する選択肢を参照してください。

REDUCTION_NO_CHOICE

この指定がされていると、残りの選択肢が1つ以下になったとき、自動で分岐されます。 キャンセル分岐はカウントされないので注意してください

▲このページの先頭へ

会話モード・スクリプト

ここでは会話モードとスクリプトの取り扱い方を説明します。

会話モード

会話モードでは、次の文字列に対し、自動的にウェイトを入れ、 より手軽に会話を表現するモードです。

次の文字列は、1/4秒ウェイトを入れます。

、,…‥

次の文字列は、キー入力待機を入れます。

文末の。にはキー入力待機を入れません。

選択肢を内包したときは、会話モードが無効となります。ご注意ください。

スクリプト

スクリプトを使用することで、ウィンドウの撤去や同時または大量の文章が表示できるようになります。(イベントが終了する時、特に指示しなくてもウィンドウはすべて撤去されます。)

$game_message.message_speed
 in :なし
 out: 2 ~ 6 (Fixnum)

メッセージのスピードを取得します。値が小さいほど速くなります。 標準速度は、4です。

これはRGSS内でコンフィグ化することを推奨します。

$game_message.message_speed=(speed)
 in :2 ~ 6 (Fixnum)
 out:----

メッセージのスピードを代入します。値が小さいほど速くなります。 標準速度は、4です。

これはRGSS内でコンフィグ化することを推奨します。

message_terminate

現在のメッセージウィンドウの撤去を行います。

なお、このスクリプトは直接実行するとデバッグ時に困る事になるので、 コモンイベント化することを強く推奨します。 (こうすると、修正の手間が最小限になります。)

message_terminate_others

現在のメッセージウィンドウ以外の撤去を行います。

なお、このスクリプトは直接実行するとデバッグ時に困る事になるので、 コモンイベント化することを強く推奨します。 (こうすると、修正の手間が最小限になります。)

all_message_terminate

すべてのメッセージウィンドウの撤去を行います。

なお、このスクリプトは直接実行するとデバッグ時に困る事になるので、 コモンイベント化することを強く推奨します。 (こうすると、修正の手間が最小限になります。)

message_input_stop_mode
大量出力テスト:RPGツクール2000で製作された聖域での反省点は何点かありますが、その中でも、制御文字の取り扱いには手間を取られたわりにはバグが目立ちました。今回のメッセージ制御は、そのような制御文字の誤りを極力減らすための様々な趣向が盛り込まれています。会話モードやデータベース読み込みもその一環で、他にも多くの機能を追加し、しかも使いやすく進化しております。このように、長々としたメッセージも自由自在に操ることができます。

このモードに入ると、同時・大量出力モードに入ります。 この間に文章を入れても文章が出力されずに溜められます。 もう一度実行すると溜めていたメッセージを一気に出力します。 これは、同時に複数のメッセージウィンドウを出したり、 大量の文章の入力を一度に表示したいときに使用します。

なお、このスクリプトは直接実行するとデバッグ時に困る事になるので、 コモンイベント化することを強く推奨します。 (こうすると、修正の手間が最小限になります。)

mc_mode

溜め込んでいたメッセージを分岐とみなして多分岐を生成します。 同時・大量出力モードに入っていないときに指定すると、 例外 RuntimeErrorが発生します

分岐数は、縦の行数に依存します。

このスクリプトは直接実行する必要があります。 コモンイベント化するとラベルを見つけられなくなる恐れがあります。

▲このページの先頭へ

素材規格

ここではマルチメッセージスクリプトで使用する素材規格について説明します。

※透過PNGに対応していないブラウザ(MSIE6など)では表示が狂う事があります。ご容赦ください。

このイメージは、実際のものよりかなり大きく拡大しています。実際の素材は、64×64ピクセルです。

1
下方向へ向かうふきだしでウィンドウと重なる部分です。
2
下方向へ向かうふきだしです。長さは自動で調節されます。
3
上方向へ向かうふきだしでウィンドウと重なる部分です。
4
上方向へ向かうふきだしです。長さは自動で調節されます。
5
右方向へ向かうふきだしでウィンドウと重なる部分です。
6
右方向へ向かうふきだしです。長さは自動で調節されます。
7
左方向へ向かうふきだしでウィンドウと重なる部分です。
8
左方向へ向かうふきだしです。長さは自動で調節されます。
▲このページの先頭へ

多分岐

ここでは多分岐の生成方法と取り扱い方を説明します。

多分岐の基礎

多分岐を生成するには、次のようにします。

  1. 多分岐を制御する数値変数、スイッチの制御
  2. message_input_stop_mode を実行
  3. 分岐したい文字列を書き込み(改行で分岐)
  4. mc_mode を実行
例)
選択肢1
選択肢2
選択肢3
選択肢4
選択肢5
選択肢6
選択肢7
選択肢8

多分岐の分岐先は、ラベルで次のように指定します

  [flagで指定した値]:[選択肢(0より開始されます)]
  ※いずれも数値2桁です。
例) 00:00 
(フラグID 0番の最初の選択肢

選択肢の数だけラベルを用意する必要があります。 キャンセル分岐がある場合は、選択肢の数+1のラベルが必要となります。 ラベルが見つからない場合は、例外RuntimeErrorが発生します。

減少する選択肢

減少する選択肢を使用するには、 MULTIPLE_CHOICE_REDUCTION を指定します。 選択したとき、減少させる数値変数のIDおよび、 残りの選択肢数を取得する数値変数のIDを指定します。 指定は次のように行います。

  [残りの選択肢数を取得する数値変数] × 10000 + [減少させる数値変数のID]

残りの選択肢数は、残った選択肢の数を代入します。

減少させる数値変数は30ビットの配列とみなして、出現させる選択肢を指定します。 0で出現し、1で出現しなくなります。 最下位ビット(LSB)が最初の選択肢と対応します。 すべて出現させるには、0 を指定しておきます。極力入力値は正数にしてください。

何度か選択した後に消去する場合は、その選択肢にカウンタを設けて、 条件が満たされるまで巻き戻す (減少させる数値変数のIDの中身を以前の構成に戻す)処理が必要になります。

  000000000000000000000000010101 3番目の選択肢が選ばれた場合…
              ↓
  000000000000000000000000010001 このように巻き戻すと3番目の選択肢が再び出現する

応用として、最初は出現させない選択肢は予めマスクしておくことも可能です。 ※この場合、選択された選択肢が新たにマスクされるので注意が必要です

残り選択肢が1つの場合、 REDUCTION_NO_CHOICE の指定により、 自動で分岐するかが決定されます。

多分岐を使用する状況

次の場合、多分岐は有効です。

  • 5択以上の選択肢(キャンセル分岐除く)が必要な場合
  • 通常の選択肢コマンドで収まりきれない長い文字列の選択肢が必要な場合。
    通常の選択肢で入る文字数は全角10~18文字ぐらいです。
  • 選択ごとに選択肢を減らしていきたい場合。
    ※何度か選択後に操作する場合もこれを元にして処理することができます

次の場合、通常の条件分岐を使うべきです。

  • 4択以下の選択肢(キャンセル分岐除く)で減少しない場合
  • 他にラベル、ラベルジャンプを多用している場合
▲このページの先頭へ

トップページへ | RGSSスクリプトへ | MultiMessage概要へ
WHITE-FLUTE Web.
URIhttp://www.whiteflute.org/
© 2009 WHITE-FLUTE all rights reserved.
Powered by Gumiki A2S ver1.0