IRIS/IRIS++ | ゲーム開発プログラミング言語


トップ トップ | 前 | 次


拡張機能





概要

ユーザー入力またはグラフィックを画面に表示するインタラクティブなアプリケーションを作るためには、入力 / 出力機能をサポートするように IRIS/IRIS++ を拡張する必要があります。IRIS/IRIS++ はこのような機能を搭載していませんが、仮想マシン側で入力 / 出力をサポートするエンジンを搭載させることができます。では IRIS/IRIS++ をどのように拡張すればよいでしょうか ?マクロの使用で説明した通り、コンパイル時変換機能を使用して仮想マシン上に実装されたオブジェクトおよびコマンドの定義をします。Ulysses Records が提供する仮想マシン (ulyvm.exe) は UlyGL という基本的なゲーム開発をサポートするゲーム ライブラリが実装されています。

ゲーム エンジンの実装方法は、アプリケーションのアーキテクチャによって 2 通りあります : (1) 実行バイナリに直接埋め込み、または (2) スクリプト ベース。最初の方法はゲーム エンジンを実行バイナリまたは動的ライブラリに実装します。この場合、スクリプトはゲーム エンジンの補助的な役割を果たします (例 : キャラクターのダイアログ メッセージ、デフォルト位置の座標など、リテラル データの定義および呼び出し)。RPG を例にしてみましょう。プレーヤーがフィールドを歩き回り、敵とエンカウントした場合、実行バイナリに実装されたゲーム エンジンの機能が呼び出され、バトル シーンに移行します。(2) の場合、バトル システムを直接実行バイナリに埋め込まずにスクリプトで実装します。

開発者がゲーム エンジンをどのようにデザインしたいのかに左右されるので、どちらの方法が正しいとは一概には言えません。(1) の良いところは、実行バイナリにゲーム エンジンを実装した方が、スクリプトで実装するよりも簡単なことです。ゲーム エンジンをスクリプトで実装する場合、スクリプトは沢山の入力 / 出力機能をサポートする必要があり、高速に実行させる必要があります。ただし、スクリプト ベースのゲーム エンジンにも良い点はあります。一つは、簡単に変更ができるということです。ゲーム エンジンが肥大化すると、実行バイナリのコンパイルにとても時間がかかりますが、スクリプトのコンパイルは数秒で完了します。もう一つの利点は移植性です。スクリプトを一度書いてしまえば、そのコードを変更しなくとも Windows から Linux のように異なるプラットフォームに移行できます。唯一開発が必要なのは入力 / 出力ライブラリだけを実装した仮想マシンです。その反面、実行バイナリにゲーム エンジンを搭載した場合、異なるプラットフォームへの移植のためにゲーム エンジンのコードの見直しが必要になる場合があります。

IRIS/IRIS++ は拡張性に優れ、高速に実行できるように設計されているため、(2) スクリプト ベースのアーキテクチャを選択しました。この項では、仮想マシンに搭載されたすべての拡張機能を参照することができます。


オブジェクトおよびコマンド

IRIS/IRIS++ は仮想マシンのオブジェクトを参照するメカニズムが備わっています。スクリプトで使用されるオブジェクトは、厳密に言うとオブジェクトではありません。これらはコマンドですが、オブジェクトとして表現した方が直感的に理解しやすいのでそのように進めます。

各オブジェクトには "コマンド" と呼ばれる指示セットがあります。コマンドはオブジェクトの振る舞いを管理するために呼び出されます。オブジェクトは、名前の前に下線があり、子オブジェクトは :: によって分離されます (例 : _screen::_red::set(0);)。コマンドには単一のパラメータを指定することができるものがあります。パラメータは丸括弧の中に数値、文字列またはレジスタとして指定できます。パラメータが省略された場合、仮想マシンが管理する内部文字列バッファの内容がコマンドに自動的に割り当てられます。


UlyGL API リファレンス


::

最上層の親オブジェクトが仮想マシンを制御します。オブジェクト名は表示されず、:: で表されます。


コマンド説明
void initialize(void)UlyGL ゲーム エンジンを初期化します。アプリケーション タイトルおよび画面サイズを指定した後に呼び出してください。
void trace(variant)指定された値を debug.txt に書き出します。デバックの目的にのみ使用してください。


例 :

// アプリケーション タイトルを指定
_identifier::set("IRIS DEMO");

// メイン画面の幅と高さを指定
_screen::_width::set(640);
_screen::_height::set(480);

// ゲーム エンジンの初期化
::initialize();


identifier

アプリケーションの ID を制御します。


コマンド説明
void set(string)アプリケーションのタイトルを指定します。
string get(void)アプリケーションのタイトルを取得して、内部文字列バッファに追加します。



extension

UlyGL ゲーム エンジンは data/ext ディレクトリ内の外部 XML ファイルの読み込みを可能にします。初期化の際に、ゲーム エンジンは data/ext ディレクトリ内のすべての XML ファイルを検索して、ファイル名を extension オブジェクトの配列に格納します。取得されたファイルは xml オブジェクトの関数を使用して読み込むことができます。extension オブジェクトは 256 個までの XML ファイル名を格納することができます。


コマンド説明
void seek(int)extension オブジェクトの配列位置までシークします。
string get(void)ファイル名を取得して、内部文字列バッファに追加します。
int count(void)extension オブジェクトに格納されたファイル名の数を取得します。


例 :

[例 : XML ファイルの内容]

<?xml version="1.0"?>
<iga>
<extension>
<title>ILLUSION GARDEN</title>
<author>TOMOHIRO KADONO</author>
<img>illusiongarden\\illusiongarden.bmp</img>
<init_script>illusiongarden_init.bin</init_script>
</extension>
</iga>


[サンプル : IRIS/IRIS++ コード]

// すべての外部ファイルを事前に読み込む
function open_extension_file() {
// 外部ファイルが存在するか確認
let $_rgb = _extension::count();
if($_rgb == 0) {
return;
  }

let $_rga = 0;

do {
// インデックス 0 は settings.xml が使用しているため、インクリメント
let $_rga++;
_xml::use($_rga);
let $_rga--;
// 外部ファイル名を取得
CLB
_extension::seek($_rga);
// 外部ファイル名を内部文字列バッファに格納
_extension::get();
// 内部文字列バッファの外部ファイルを開く
_xml::open();
let $_rga++;
} until $_rga == $_rgb loop;

// 読み込み完了後、必ず settings.xml を読み込む様に指定する
_xml::use(0);

return;
}


xml

xml オブジェクトは XML ファイルの入力 / 出力操作およびドキュメントのデータ検索を可能にします。属性を含むタグはサポートされていません。また、単一行に記述された複数タグは認識できない場合があります。つまり、各終了タグの後には改行を入れる必要があります。


コマンド説明
void use(int)操作する XML オブジェクトを指定します。256 個までの XML ファイルを指定できます。
void open(string)指定された XML ファイルを開きます。
int read(void)xml::path オブジェクトで指定された xml パスの整数値を指定されたレジスタに読み込みます。
string get(void)xml::path オブジェクトで指定された xml パスの文字列を内部文字列バッファに追加します。
void write(string)xml::path オブジェクトで指定された xml パスに値を書き込みます。
void publish(string)指定された xml ファイルを保存します。


例 :

// XML ファイルを開く
_xml::open("data\\settings.xml");

// XML パスを指定
_xml::_path::set("iga::settings::is_window");

// この時点で、$_ret は iga::settings::is_window の値を格納する
let $_ret = _xml::read();


xml::path

xml::path オブジェクトは XML ファイルに読み書き用の xml パスを格納します。


コマンド説明
string get(void)現在の指定されたパスを取得して、内部文字列バッファに追加します。
void set(string)xml パスを指定します。:: 記号を使用して親 / 子タグを分けます。



memory

memory オブジェクトはアプリケーションの初期化時に仮想マシンに割り当てられた静的メモリを管理します。memory オブジェクトは自由に使用できる 4096 個の 32 ビット整数値を含みます。例えば、コード内でメモリ スペースを 8 個の 512 ユニット メモリとしてセグメントを分けることもできます。これらのメモリ データはデータ ファイルに保存またはメモリに読み込むことができます。さらに、データは指定された暗号キーにより XOR で暗号化することもできます。


コマンド説明
void initialize(void)すべてのメモリの値を 0 で初期化します。仮想マシンが初期化された時のデフォルト値は 0 です。
void seek(int)メモリ アドレス位置までシークします。
void read(string)データ ファイルの内容をメモリに読み込みます。
void write(string)メモリ ダンプを指定したデータ ファイルに書き込みます。
int get(void)指定したメモリ アドレスの値を取得します。
void set(int)指定したメモリ アドレスに値を設定します。
void encrypt(int)32 ビット整数以内の暗号キーを指定します。


例 :

// すべてのメモリ値を 0 に設定
_memory::initialize();
// 暗号キーを設定
_memory::encrypt(61827);

// 内部文字列バッファをクリアして、読み込むデータ ファイルを指定
CLB
ATB "data\\save\\save.data"

// データ ファイルの名前をバッファから読み込み、値をメモリに保存
_memory::read();

// アドレス 0 までシークして、レジスタ A に取得した値を代入
_memory::seek(0);
let $_rga = _memory::get();


text

内部文字列バッファを管理するオブジェクトです (注意 : 描画バッファは管理しません)。screen::text の補助的な役割として使用することができます。


コマンド説明
string concat(string)内部文字列バッファの文字列と指定された文字列を連結します。
void set(string)テキスト文字列を内部文字列バッファに設定します。



screen

screen オブジェクトは画面に表示されるすべてのオブジェクトを管理します。screen オブジェクトまたはその子オブジェクトを使用する前に、screen オブジェクトを初期化する必要があります。


コマンド説明
void load(void)メモリの割り当ておよび screen オブジェクトの初期化を行います。
void unload(void)screen オブジェクトに割り当てられたメモリを開放します。
void clear(void)screen::redscreen::greenscreen::blue によって指定された色で画面をクリアします。デフォルトは黒です。
void refresh(void)画面を更新します。
void begin(void)画面への描画を開始します。
void end(void)画面への描画を終了します。


例 :

// 画面のロード
_screen::load();

// 画面の色を黒に設定
_screen::_red::set(0);
_screen::_green::set(0);
_screen::_blue::set(0);

// 画面の更新
_screen::refresh();

// 画面を黒でクリア
_screen::clear();

// 描画開始
_screen::begin();
// 画像またはテキストを表示
_screen::end();

// メモリを開放するためにアンロード
_screen::unload();


screen::frame

通常 60 FPS の秒間フレームの値情報を保持するオブジェクトです。


コマンド説明
int get(void)現在のフレーム カウントを取得します。値が 60 に到達すると、0 にリセットされます。


例 :

// 現在のフレーム カウントを取得
let $_rga = _screen::_frame::get();
// 毎回フレーム カウントが 10 に到達したら、次のステートメントを実行
if($_rga == 10) {
// 何かする
}


screen::state

フル スクリーンまたはウィンドウ化されているか、ウィンドウの状態に関する情報を保持するオブジェクトです。


コマンド説明
int get(void)現在のウィンドウの状態を取得します。フル スクリーンの場合は 0 を返し、それ以外の場合は 1 を返します。
void set(int)ウィンドウの状態を設定します。フル スクリーンの場合は 0 を、それ以外の場合は 1 を指定します。



screen::width

ウィンドウの幅に関する情報を保持するオブジェクトです。


コマンド説明
int get(void)現在のウィンドウ幅を取得します。
void set(int)ウィンドウ幅を設定します。



screen::height

ウィンドウの高さに関する情報を保持するオブジェクトです。


コマンド説明
int get(void)現在のウィンドウの高さを取得します。
void set(int)ウィンドウの高さを設定します。



screen::red

画面の赤色値に関する情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の画面の赤色値を取得します。
void set(int)現在の画面の赤色値を設定します。



screen::green

画面の緑色値に関する情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の画面の緑色値を取得します。
void set(int)現在の画面の緑色値を設定します。



screen::blue

画面の青色値に関する情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の画面の青色値を取得します。
void set(int)現在の画面の青色値を設定します。



screen::text

高速な描画のためにフォント スプライトを使用したテキスト表示を管理するオブジェクトです。仮想マシンは 2 つの内部文字列バッファを保持することに注意してください。一つ目のバッファは多種類の文字列を操作するために IRIS によって管理されています。もう一つは描画バッファとしてゲーム ライブラリの Screen クラスのインスタンスが管理しています。通常、画面にテキストを描く場合は、内部文字列バッファの内容を描画バッファに転送する必要があります。screen::text オブジェクトのコマンドはこの操作を自動的に行います。しかし、screen::text::buffer を使用して文字列を直接的に描画バッファに転送したい場合もあります。例えば CLB 指示セットで内部文字列バッファをクリアした後に内容を描画バッファに転送したい場合などです。


コマンド説明
void create(int)指定した数のフォント スプライトを作成します。
void use(int)使用したいフォント スプライトの ID。
void load(string)指定したフォント データ ファイルを作成したフォント スプライトにロードします。
void unload(void)作成されたフォント スプライトに割り当てられたすべてのメモリをアンロードします。
string get(void)割り当てられたテキストを取得して、内部文字列バッファに連結します。
void set(string)描画するテキストを内部文字列バッファに設定します。
string concat(string)内部文字列バッファの文字列と指定された文字列を連結します。
string concati(int)指定された整数値を文字 (UTF-8) に変換および内部文字列バッファに連結します。
void buffer(void)内部文字列バッファを画面の描画バッファに転送します。
void show(int)描画バッファの文字列を指定した文字の長さで表示します。すべて表示するには 0 を指定します。
int length(void)内部文字列バッファの文字の長さを返します。
void play(int)show(int) と同じですが、指定されたタイミングで文字を一文字ずつ表示します。
int completed(void)play(int) を使用した場合、テキストの描画が完了したら 1 を、それ以外の場合は 0 を返します。


例 :

// 2 つのフォント スプライトを作成
_screen::_text::create(2);
				
// 小さいサイズのフォントをロード
_screen::_text::use(0);
_screen::_text::_size::set(1024);
_screen::_text::load("font_small.lfd");

// 大きいサイズのフォントをロード
_screen::_text::use(1);
_screen::_text::_size::set(2048);
_screen::_text::load("font_normal.lfd");

// 小さいサイズのフォントを使用
_screen::_text::use(0);

// アニメーション テキストを X=0、Y=0 の位置に表示
_screen::_text::_x::set(0);
_screen::_text::_y::set(0);
_screen::_text::set("ANIMATED TEXT");
_screen::_text::play(10);

// 大きいサイズのフォントを使用
_screen::_text::use(0);

// X=248、Y=352 の位置にテキストを表示
_screen::_text::_x::set(248);
_screen::_text::_y::set(352);
_screen::_text::set("NEW GAME\n\nCONTINUE");
_screen::_text::show(0);

// テキストのアンロード
_screen::_text::unload();


[注意 : IRIS の仕様制限のため、空の文字列は割り当てられません。]
[つまり、CLB を使用して内部バッファをクリアしてから描画バッファに転送する必要があります。]
// 内部文字列バッファをクリア
CLB
// 内部文字列バッファを描画バッファに転送
_screen::_text::buffer();


screen::text::alpha

フォント スプライトの 0 から 255 までのアルファ値 (透過) の情報を保持するオブジェクトです。


コマンド説明
int get(void)現在のフォント スプライトのアルファ値を取得します。
void set(int)現在のフォント スプライトのアルファ値を設定します。



screen::text::x

テキストの X 座標位置の値の情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の x 位置の値を取得します。
void set(int)x 位置の値を設定します。



screen::text::y

テキストの Y 座標位置の値の情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の y 位置の値を取得します。
void set(int)y 位置の値を設定します。



screen::text::size

フォント スプライトのサイズの情報を保持するオブジェクトです。多数のフォント画像をサポートするにはサイズを増やしてください。


コマンド説明
int get(void)現在のサイズを取得します。
void set(int)サイズを設定します (ほとんどの場合において 1024 で十分です)。



screen::sprite

スプライト (画像) の表示を管理するオブジェクトです。UlyGL にはスクリプトから制御できるスプライト マネージャが搭載されています。スプライトは移動やサイズの変更などができる 3D サーフェイス上に描画されたテクスチャです。


コマンド説明
void create(int)指定した数のスプライトを作成します。
void use(int)使用したいスプライトの ID。
void load(string)指定した画像データ ファイル (.bmp) を作成したスプライトにロードします。
void unload(void)作成されたスプライトに割り当てられたすべてのメモリをアンロードします。
void show()スプライトを画面に表示します。


例 :

// 2 つのスプライトを作成
_screen::_sprite::create(2);

_screen::_sprite::use(0);
_screen::_sprite::load("background.bmp");
_screen::_sprite::_x::set(0);
_screen::_sprite::_y::set(0);
_screen::_sprite::_width::set(512);
_screen::_sprite::_height::set(256);
_screen::_sprite::_left::set(0);
_screen::_sprite::_top::set(0);
_screen::_sprite::_right::set(512);
_screen::_sprite::_bottom::set(256);
_screen::_sprite::_alpha::set(255);

_screen::_sprite::use(1);
_screen::_sprite::load("image.bmp");
_screen::_sprite::_x::set(0);
_screen::_sprite::_y::set(0);
_screen::_sprite::_width::set(640);
_screen::_sprite::_height::set(480);
_screen::_sprite::_left::set(0);
_screen::_sprite::_top::set(0);
_screen::_sprite::_right::set(640);
_screen::_sprite::_bottom::set(480);
_screen::_sprite::_alpha::set(200);


screen::sprite::alpha

スプライトの 0 から 255 までのアルファ値 (透過) の情報を保持するオブジェクトです。


コマンド説明
int get(void)現在のスプライトのアルファ値を取得します。
void set(int)現在のスプライトのアルファ値を設定します。



screen::sprite::x

スプライトの X 座標位置の値の情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の x 位置の値を取得します。
void set(int)現在の x 位置の値を設定します。



screen::sprite::y

スプライトの Y 座標位置の値の情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の y 位置の値を取得します。
void set(int)現在の y 位置の値を設定します。



screen::sprite::width

スプライトの幅の情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の幅を取得します。
void set(int)現在の幅を設定します。



screen::sprite::height

スプライトの高さの情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の高さを取得します。
void set(int)現在の高さを設定します。



screen::sprite::top

スプライト画像の表示対象の開始上位置の情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の上位置を取得します。
void set(int)現在の上位置を設定します。



screen::sprite::left

スプライト画像の表示対象の開始左位置の情報を保持するオブジェクトです。


コマンド説明
int get(void)現在の左位置を取得します。
void set(int)現在の左位置を設定します。



screen::sprite::right

スプライト画像の表示対象の右位置の情報を保持するオブジェクトです。右位置は座標ではなく、左位置からの幅です。


コマンド説明
int get(void)現在の右位置を取得します。
void set(int)現在の右位置を設定します。



screen::sprite::bottom

スプライト画像の表示対象の下位置の情報を保持するオブジェクトです。下位置は座標ではなく、上位置からの高さです。


コマンド説明
int get(void)現在の下位置を取得します。
void set(int)現在の下位置を設定します。



screen::sprite::wait

スプライト アニメーションを再生する場合のウェイト タイミングの情報を保持するオブジェクトです (例 : ウェイト タイミングの情報を使用して次のアニメーション フレームの再生タイミングを確定する、など)。


コマンド説明
int get(void)現在のフレームを取得します (ウェイト タイマの値)。
void set(int)最大ウェイト タイミングを設定します。内部ウェイト タイマがウェイト タイミングの最大値に到達すると、0 にリセットされます。



screen::sprite::sequence

スプライトが所持するアニメーション画像の数の情報を保持するオブジェクトです。sequence が最大ウェイト タイミングと共に設定されていた場合、スプライトは自動的にアニメーションを開始します。画像はすべて同じサイズでベース画像の上から下に連なっている必要があることに注意してください。


コマンド説明
int get(void)最大シーケンス数を取得します。
void set(int)最大シーケンス数を設定します。



screen::sprite::fade

スプライトのフェード状態の情報を保持するオブジェクトです。フェードを true に設定すると、フェード フラグが 1 に変わり、false の場合 0 になります。このオブジェクト自体を使用してもフェード イン / フェード アウト効果は得られません。このオブジェクトを使用してフェード ルーチンをコーディングする必要があります。


コマンド説明
int get(void)現在のフェード状態を取得します。
void set(int)現在のフェード状態を設定します。


例 :

// IRIS による (ライブラリとしてインクルード可能にするために) フェード イン / フェード アウト機能の例

// スプライト画像のフェード アウト
// $_rga : スプライト ID
// $_rgb : フェード量
@fade_out_sprite_img:
_screen::_sprite::use($_rga);
REG $_rga
_screen::_sprite::_fade::get();

SKE 1
RET

_screen::_sprite::_alpha::get();
SKN 0
RET

// フェード アウト
SBT $_rgb

_screen::_sprite::_alpha::set($_rga);

SKE 0
RET

_screen::_sprite::_alpha::set(0);
_screen::_sprite::_fade::set(0);
RET

// スプライト画像のフェード イン
// $_rga : スプライト ID
// $_rgb : フェード量
@fade_in_sprite_img:
_screen::_sprite::use($_rga);
REG $_rga
_screen::_sprite::_fade::get();

SKE 1
RET

_screen::_sprite::_alpha::get();
SKN 255
RET

// フェード イン
SUM $_rgb

_screen::_sprite::_alpha::set($_rga);

SKL 256
RET

_screen::_sprite::_alpha::set(255);
_screen::_sprite::_fade::set(0);
RET


screen::cursor

コマンド カーソルは 3 つの異なるオブジェクトから構成されています。一つはあるコマンドを指すスプライト画像です。二つ目はユーザー入力のためのデバイス入力です。三つ目はユーザー入力の際にカーソルが鳴らす効果音です。IRIS/IRIS++ でのコマンド カーソルの機能をコーディングするのは複雑になるため、UlyGL はコマンド カーソルの振る舞いを管理する cursor オブジェクトを用意しています。通常は、初期化、ユーザー入力の取得およびコマンド カーソルの移動のためのライブラリを作成します。利用可能なライブラリ 関数については UlyGL ゲーム エンジンの cmd_cursor.iris スクリプトを参照してください。


コマンド説明
void load(void)コマンド カーソルをロードします。
void unload(void)ロードされたコマンド カーソルに割り当てられたすべてのメモリをアンロードします。
void show()コマンド カーソルの画像を画面に表示します。
void move(int)コマンド カーソルの画像を再配置します。方向: 0=NULL, 1=上, 2=下, 3=左, 4=右



screen::cursor::sprite

コマンド カーソルのスプライト オブジェクトを管理します。カーソル スプライトは sprite オブジェクトを継承しています (例 : カーソル スプライトのアルファ値を設定した場合、screen::cursor::sprite::alpha を使用します)。


コマンド説明
void load(string)指定した画像データ ファイル (.bmp) を作成したカーソル スプライトにロードします。
void unload(void)作成されたカーソル スプライトに割り当てられたすべてのメモリをアンロードします。
void show()スプライトを画面に表示します。



screen::cursor::h

カーソルの水平面プロパティの情報を保持するオブジェクトです。


screen::cursor::v

カーソルの垂直プロパティの情報を保持するオブジェクトです。


screen::cursor::h::max

カーソルの水平面における最大移動ステップの許容範囲の情報を保持するオブジェクトです。


コマンド説明
int get(void)水平面における最大移動ステップを取得します。
void set(int)水平面における最大移動ステップを設定します。



screen::cursor::v::max

カーソルの垂直における最大移動ステップの許容範囲の情報を保持するオブジェクトです。


コマンド説明
int get(void)垂直における最大移動ステップを取得します。
void set(int)垂直における最大移動ステップを設定します。



screen::cursor::h::distance

カーソルの単一のステップで移動可能な水平面における最大距離 (ピクセル) の情報を保持するオブジェクトです。


コマンド説明
int get(void)水平面における最大距離を取得します。
void set(int)水平面における最大距離を設定します。



screen::cursor::v::distance

カーソルの単一のステップで移動可能な垂直における最大距離 (ピクセル) の情報を保持するオブジェクトです。


コマンド説明
int get(void)垂直における最大距離を取得します。
void set(int)垂直における最大距離を設定します。



screen::cursor::h::x

現在カーソルが設置された場所の水平面ステップ情報 (ステップ単位) を保持するオブジェクトです。


コマンド説明
int get(void)現在のステップを取得します。
void set(int)現在のステップを設定します。



screen::cursor::v::y

現在カーソルが設置された場所の垂直ステップ情報 (ステップ単位) を保持するオブジェクトです。


コマンド説明
int get(void)現在のステップを取得します。
void set(int)現在のステップを設定します。



screen::cursor::wait

各コマンド カーソル入力間のウェイト タイミング情報を保持するオブジェクトです (フレーム単位)。


コマンド説明
int get(void)現在のウェイト タイミングを取得します。
void set(int)現在のウェイト タイミングを設定します。



screen::cursor::enable

コマンド カーソルのユーザー入力状態の有効または無効を制御するオブジェクトです。0=無効、1=有効。


コマンド説明
int get(void)現在の状態を取得します。
void set(int)現在の状態を設定します。



screen::model

3D モデルを管理するオブジェクトです。


コマンド説明
void create(int)指定した数の 3D モデル オブジェクトを作成します。
void use(int)使用したい 3D モデル オブジェクトの ID。
void initialize(int)モデルを初期状態に初期化します。
void load(string)指定した 3D モデル データ ファイル (.x) を作成した 3D モデル オブジェクトにロードします。
void unload(void)作成された 3D モデル オブジェクトに割り当てられたすべてのメモリをアンロードします。
void show(int)指定された 3D モデルをレンダリングします。



screen::model::x

3D モデルの x 座標オブジェクトを管理するオブジェクトです。


screen::model::y

3D モデルの y 座標オブジェクトを管理するオブジェクトです。


screen::model::z

3D モデルの z 座標オブジェクトを管理するオブジェクトです。


screen::model::x::scale

3D モデルの x 軸のスケールを管理するオブジェクトです。


コマンド説明
int get(void)現在のスケールを取得します。
void set(int)現在のスケールを設定します。



screen::model::y::scale

3D モデルの y 軸のスケールを管理するオブジェクトです。


コマンド説明
int get(void)現在のスケールを取得します。
void set(int)現在のスケールを設定します。



screen::model::z::scale

3D モデルの z 軸のスケールを管理するオブジェクトです。


コマンド説明
int get(void)現在のスケールを取得します。
void set(int)現在のスケールを設定します。



screen::model::x::angle

3D モデルの x 軸の角度を管理するオブジェクトです。


コマンド説明
int get(void)現在の角度を度で取得します。
void set(int)現在の角度を度で設定します。



screen::model::y::angle

3D モデルの y 軸の角度を管理するオブジェクトです。


コマンド説明
int get(void)現在の角度を度で取得します。
void set(int)現在の角度を度で設定します。



screen::model::z::angle

3D モデルの z 軸の角度を管理するオブジェクトです。


コマンド説明
int get(void)現在の角度を度で取得します。
void set(int)現在の角度を度で設定します。



screen::model::x::position

3D モデルの x 軸の位置を管理するオブジェクトです。


コマンド説明
int get(void)現在の位置を取得します。
void set(int)現在の位置を設定します。



screen::model::y::position

3D モデルの y 軸の位置を管理するオブジェクトです。


コマンド説明
int get(void)現在の位置を取得します。
void set(int)現在の位置を設定します。



screen::model::z::position

3D モデルの z 軸の位置を管理するオブジェクトです。


コマンド説明
int get(void)現在の位置を取得します。
void set(int)現在の位置を設定します。



screen::camera

3D シーン カメラを管理するオブジェクトです。


コマンド説明
void update(void)更新されたオブジェクトのプロパティを反映するためにカメラを更新します。



screen::camera::x

カメラの x 座標オブジェクトを管理するオブジェクトです。


screen::camera::y

カメラの y 座標オブジェクトを管理するオブジェクトです。


screen::camera::z

カメラの z 座標オブジェクトを管理するオブジェクトです。



screen::camera::x::angle

カメラの x 軸の角度を管理するオブジェクトです。


コマンド説明
int get(void)現在の角度を度で取得します。
void set(int)現在の角度を度で設定します。



screen::camera::y::angle

カメラの y 軸の角度を管理するオブジェクトです。


コマンド説明
int get(void)現在の角度を度で取得します。
void set(int)現在の角度を度で設定します。



screen::camera::z::angle

カメラの z 軸の角度を管理するオブジェクトです。


コマンド説明
int get(void)現在の角度を度で取得します。
void set(int)現在の角度を度で設定します。



screen::camera::x::position

カメラの x 軸の位置を管理するオブジェクトです。


コマンド説明
int get(void)現在の位置を取得します。
void set(int)現在の位置を設定します。



screen::camera::y::position

カメラの y 軸の位置を管理するオブジェクトです。


コマンド説明
int get(void)現在の位置を取得します。
void set(int)現在の位置を設定します。



screen::camera::z::position

カメラの z 軸の位置を管理するオブジェクトです。


コマンド説明
int get(void)現在の位置を取得します。
void set(int)現在の位置を設定します。



media

効果音および音楽のようなメディア オブジェクトを管理します。


コマンド説明
void load(string)media オブジェクトをロードします。
void unload(void)media オブジェクトに割り当てられたすべてのメモリをアンロードします。



media::sound

効果音の再生を管理するオブジェクトです。


コマンド説明
void create(int)指定した数の sound オブジェクトを作成します。
void use(int)使用したい sound オブジェクトの ID。
void load(string)指定した効果音データ ファイル (.ogg、.wav、その他) を作成した sound オブジェクトにロードします。
void unload(void)作成された sound オブジェクトに割り当てられたすべてのメモリをアンロードします。
void play(int)指定した効果音を再生します。0=非ループ、1=ループ
void stop(int)指定した効果音の再生を停止します。


例 :

// メディアのロード
_media::load();

// BGM 用に 1 つの効果音をロード
_media::_sound::create(1);

// BGM をロードおよびループ再生
_media::_sound::use(0);
_media::_sound::load("my_bgm.ogg");
_media::_sound::play(1);

...

// 効果音のアンロード
_media::_sound::unload();

// メディアのアンロード
_media::unload();


media::music

midi を使用した音楽再生を管理するオブジェクトです。


コマンド説明
void load(string)指定した音楽データ ファイル (.mid) をロードします。
void unload(void)ロードされた音楽に割り当てられたすべてのメモリをアンロードします。
void play(int)指定した音楽を再生します。0=非ループ、1=ループ
void stop(int)指定した音楽の再生を停止します。



device

キーボードおよびゲーム パッドなどの外部デバイスを管理するオブジェクトです。通常、これらのオブジェクトを管理するライブラリを書くべきです。利用可能なライブラリ 関数については UlyGL ゲーム エンジンの device_input.iris スクリプトを参照してください。


device::keyboard

キーボード入力を管理するオブジェクトです。


device::keyboard::key

キーボードのキーを管理するオブジェクトです。0 から 7 の範囲の 8 個のキー オブジェクトを使用することができます。例えば、'Z' キーを key オブジェクトの 0、'X' を key オブジェクトの 1 に割り当てることができます。


コマンド説明
void use(int)使用する key オブジェクトを決定します。
int get(void)現在のキーの値を取得します。
void set(int)指定した key オブジェクトのキーの値を設定します。



device::keyboard::key::state

キーボードのキーの状態を管理するオブジェクトです。キーがアクティブの場合 (例 : 押された) 1 を返し、それ以外の場合は 0 を返します。

コマンド説明
int get(void)現在の状態を取得します。



device::joystick

ジョイ スティック入力を管理するオブジェクトです。通常、これらのオブジェクトを管理するライブラリを書くべきです。利用可能なライブラリ 関数については UlyGL ゲーム エンジンの device_input.iris スクリプトを参照してください。



device::joystick::x

ジョイ スティックの x 軸を管理するオブジェクトです。


コマンド説明
int get(void)現在の x 軸を取得します。



device::joystick::y

ジョイ スティックの y 軸を管理するオブジェクトです。


コマンド説明
int get(void)現在の y 軸を取得します。



device::joystick::button

ジョイ スティックのボタンを管理するオブジェクトです。0 から 7 の範囲の 8 個のボタン オブジェクトを使用することができます。


コマンド説明
void use(int)使用する button オブジェクトを決定します。
int get(void)現在のボタンの値を取得します。
void set(int)指定した button オブジェクトのボタンの値を設定します。



device::joystick::button::state

ジョイ スティックのボタンの状態を管理するオブジェクトです。ボタンがアクティブの場合 (例 : 押された) 1 を返し、それ以外の場合は 0 を返します。

コマンド説明
int get(void)現在の状態を取得します。