メッセージマクロ言語Yuki
マニュアル
Miyakoマニュアルへ
Miyakoリファレンスマニュアルへ
<目次>
1.はじめに |
本マクロ言語は、Ruby(Ruby/SDL)上で動作するゲーム作成ライブラリ・フレームワークである
「Miyako」で使用するメッセージ作成に使用する言語です。
Yuki本体は、全てMiyakoの実装miyako.rbにYukiモジュールとして含まれており、
YukiはMiyakoの実装に依存しています。
Yukiには、以下の2つの大まかな構造があります。
それぞれは別々のファイルに格納します。
(1)メッセージ記述
(2)コマンド記述
(1)のメッセージ記述は、実際のメッセージ(例えば、ウィンドウに表示させるメッセージ、
イメージを表示したりコマンド選択を行わせるための指示など)を記述していきます。
基本的には、1つのファイルで、1つのシーンで賄うメッセージを記述するイメージで実装します
(実装上ではYuki::Plotクラスのオブジェクトインスタンスとなります)。
また、メッセージを記述するファイルを「プロットファイル」と呼びます
(2)のコマンド記述は、コマンド(「移動する」「調べる」「取る」など)を記述していきます。
これも、メッセージ記述と同じく、1つのファイルで1つのシーンで賄います。
(実装上ではYuki::Commandsクラスのオブジェクトインスタンスとなります)。
また、コマンドを記述するファイルを「コマンドファイル」と呼びます
プロットファイル内では、基本的に「シナリオ単位」となります。
:scenario シナリオ名〜:endで囲まれた部分が一つのシナリオです。
(注::scenario,:endは必ず行頭に置くこと)
この部分は、Yuki::Scenarioクラスのオブジェクトインスタンスとなります。
次に、プロットファイルの一例を紹介します。
|
また、ファイルの先頭で、:scenario〜:endで囲まれていない部分(上記太字緑色部分)がありますが、
これは「Mainシナリオ」と呼ばれており、まず最初にMainシナリオを実行します。
(注:逆に言うと、必ずMainシナリオを用意しておかないとエラーになります)
途中、{〜}で囲まれている部分が「マクロ」となります。
このマクロを使用して、表示する色を変えたり、メッセージの表示スピードを変えたり、
コマンドを表示したり、シーン移動のラベルを渡したり出来ます。
詳しくは、「4.Yukiメッセージマクロリファレンスマニュアル」をご参照下さい。
また、{plot_append}マクロを使用して、シナリオを追加することができます。
このとき、同じ名前のシナリオが複数存在しているときは、いちばん最後に登録したシナリオが有効になります。
シナリオを追加するときは、そのマクロファイルにMainシナリオが含まれていても無視します。
コマンドファイル内では、基本的に「コマンド群単位」となります。
:beign シナリオ名〜:endで囲まれた部分が一つのコマンド群です。
(注::begin,:endは必ず行頭に置くこと)
次に、コマンドファイルの一例を紹介します。
|
:begin〜:end内には、以下のデータがあります。
名称 | 解説 | ||||||||||
:title |
コマンドのタイトル | ||||||||||
:cansel | コマンドをキャンセルしたときにシナリオを移動させる時に使う 「:cansel シナリオ名」と記述 :canselを記述していないときは、このコマンド群ではキャンセル禁止となる | ||||||||||
:command |
いわゆる「コマンド」
|
メッセージのexprマクロや、コマンドのcondカテゴリでは、
変数とフラグとして「var[name]」「flag[name]」が利用できます。
nameは変数名・フラグ名となり、実体は、Rubyのハッシュと同じです。
式の記述はRubyと同じです。
(Rubyスクリプト(Miyako)からはYuki::Variablesクラスのインスタンスメソッドとなっているためです)
{color r,g,b} ・・・ (1)
{color #rrggbb}
・・・ (2)
{color black(blue,yellow他)} ・・・ (3)
(1)このマクロ以降、文字の表示色を[r,g,b](それぞれ0〜255)に変える
(2)このマクロ以降、文字の表示色を#rrggbb(それぞれ00〜ff)に変える
(3)このマクロ以降、文字の表示色を名前に対応した定数(APIリファレンス参照)に変える
{size n}
このマクロ以降、フォントの大きさをnピクセルに変更する
{sleep w}
w秒処理をスキップ(待機)する
wは0(0.0)以上整数・実数での指定が可能
{message_wait w}
文字表示のウェイトをw秒に変更する
wは0(0.0)以上整数・実数での指定が可能
{locate x,y}
文字の表示位置をx,y(ピクセル単位)に変更する
x,yの原点はメッセージエリア(スプライト)の左上端
{next ...}
移動先ラベルを指定する
強制的にシーン移動を行う
{expr
"..."}
{"..."}
....で表示している式を評価する
結果を画面に描画しない
{expr
""...""}
{""...""}
....で表示している式を評価する
結果を画面に描画する
{cr}
メッセージの表示から改行して描画を続けるようにする
{pause}
ポーズを行う
ポーズマークを表示する
1番目のボタンを押すまでポーズを行う
{clear}
描画している文字を消去する
{scenario
scenario_name}
シナリオを変更する
scenario_nameは変更するシナリオ名
シナリオの先頭から実行される
{plot_append
plot_file_name}
現状のプロットにシナリオを追加する
plot_file_nameは、追加するファイル名
同一名称のシナリオが存在していた場合は、新しく登録された方を採用する
ファイルにMainシナリオが追加されても無視される
{yesno yes_scenario
no_scenario}
「はい/いいえ」コマンドを表示する
yes_scenario,no_scenarioは、それぞれの選択後に採用作用されるシナリオ名
ラベルは指定できない
{command_init
filename}
選択コマンド群情報をfilenameで指定したファイルから読み込む
{command_append
filename}
選択コマンド群情報をfilenameで指定したファイルから読み込んで、現在のコマンド情報に追加する
同一名称のコマンド群が存在していた場合は、新しく登録された方を採用する
{command name}
コマンド選択を表示する
nameは、command_initに登録されたコマンド群を指す名前
{image_init name, filename,
flag}
filenameで指定した画像をnameという名前のスプライトとして登録する
フラグは、画像の左上ドットの色を透明色とするかを指定するもので、true/falseで指定する
{image_view name, w, h}
画像の表示範囲を指定する
指定したとき、表示されるのは画像の左上からの範囲となる
特に、後述するアニメーション関連の機能で使用される
{dp name, value}
nameで指定したスプライトの深度を指定する
{layout name,
[x-layout],[y-layout]}
nameで指定したスプライトのレイアウト位置を指定をする
x-layout,y-layoutの書式はSprite#set_layoutメソッドと同じだが、
[]は必ず必要
{move name, x, y}
nameで指定したスプライトの位置をx,yだけ移動する
{move_to name, x,
y}
nameで指定したスプライトの位置をx,yまで移動する
{alpha name, value}
nameで指定したスプライトの透明度を指定(0〜255)する
{show name}
スプライトを画面に表示する
name(image_initで指定した)に対応したスプライトを表示する
{hide name}
スプライトを画面から隠す
name(image_initで指定した)に対応したスプライトを隠蔽する
{animation_init name,image,time}
アニメーションの初期化
nameは使用するときに指定する名前(アニメーション名)、
imaageはアニメーション対象の画像名(image_initマクロで指定したものなど)、
timeはアニメーションウェイト時間(Miyako::SpriteAnimation.newメソッドの引数に準拠)
{animation_character name,num}
アニメーションの初期化
nameでしていしたアニメーションのキャラクターを指定する、
numはキャラクター番号
{animation_start name}
アニメーションを開始する
{animation_stop name}
アニメーションを停止する
{animation_reset name}
アニメーションの開始を先頭のパターンに戻す
{sound
filename,vol,flag}
filenameで指定した効果音・BGMを演奏する
volは演奏するボリューム、flagは、trueのときは演奏が終わるまで待機する
Last Updated 2006.10.01
Cyross
Makoto