テキストについて

テキストを描画する

O₂ Engine では、テキストは基本的にメッセージレイヤに描画されます。

シナリオファイルにタグ以外の文字列を書き込んだ場合、それらは全て「カレントメッセージレイヤへそのテキストを描画せよ」という命令であるとみなされます。

カレントメッセージレイヤとは、現在操作対象としているメッセージレイヤ(正確にはページ)のことであり、[current]タグで変更できます。

[current layer="message0" page="fore"]
こんにちは。

以上のような記述をした場合、message0 レイヤの fore ページに「こんにちは。」という文字が描画されます。

もっとも実際には、テキストを描画する前に、表示位置などを設定してから描画することになります。

また、メッセージレイヤの位置や可視/不可視などが適切に設定されていないと、描画はしたものの実際には見えないということも起こりえます。思い通りの結果が得られないときは、[position]タグなどを使って、そのテキストを描画するメッセージレイヤの状態を調整してください。

改行

O₂ KAG では、ただ改行しただけではそれは改行として描画されません。

改行を行うには[r]タグを使います。

この文が終わったら改行します。
[r]
改行しました。

テキストを消去する

O₂ Engine では、メッセージレイヤをクリアするという形でテキストを消去することになります。

メッセージレイヤをクリアすると、そのレイヤに描画された全てのものが消去されます。すでに描画されたテキストを一部だけ消去することはできません。

メッセージレイヤのクリアには、[cm]タグなどを使います。

クリック待ち

O₂ Engine には、あるテキストを表示し終わったあとそのまま待機し、クリックされるまでコンテンツが次の行へ進むのを停止する機能があります。これをクリック待ちといいます。

行末クリック待ちと改ページクリック待ち

クリック待ちには[l]タグや[p]タグを使います。この2つのタグは、基本的な機能は同じですが、前者は行末クリック待ち、後者は改ページクリック待ちの際に使います。行末クリック待ちと改ページクリック待ちの際には、クリックを促す画像(グリフ画像)を表示することができます。O₂ Engine は基本的に PNG 形式か JPEG 形式の画像しか扱えませんが、グリフ画像に限っては GIF 形式(アニメーション GIF 形式含む)の画像を利用することができます。

どの画像をグリフ画像とするかは、Makefile や[o2_prov_glyph]タグで指定することができます。

【グリフ画像の例】

汎用のクリック待ち

[waitclick]タグを用いた汎用的なクリック待ちもあります。[l]タグや[p]タグと異なり、クリック待ちの間にグリフ画像を表示したくない場合に使います。

なお、ボタンを表示してそれがクリックされるのを待ちたい場合には、これらのタグではなく全く別のタグ([s]タグ)を使用します。

このテキストを読み終わったらクリックしてください。改行されて次のテキストが表示されます。
[l]
[r]
改行しました。このテキストを読み終わったらクリックしてください。今見えているテキストは全て消えて、次のテキストが表示されます。
[p]
[cm]
改ページしました。

ディレイ

ノベルゲームにはよくある表現ですが、O₂ Engine は、まとまった文字列を分解して1文字ずつ時間をかけて表示することができます。この際、1文字表示してから次の文字を表示するまでの時間のことをディレイと呼びます。

また、普段はディレイを設定しておき、必要なときだけディレイを解除することもできます。この、ディレイが一時的に解除された状態のことをノーウェイトモードと呼びます。

これから表示される文字列のディレイは、[delay]タグ、[nowait]タグや[endnowait]タグから設定することができます。

ディレイの情報は、各メッセージレイヤのページごとに保存されています。

[delay speed="50"]
この部分のテキストは1文字あたり50msのディレイがかかっています。
[nowait]
この部分のテキストはディレイがかからず、一気に表示されます。
[endnowait]
再び、1文字あたり50msのディレイがかかった状態に戻ります。

クリックスキップ

ディレイのかかったテキストが順次表示されている最中にクリックすると、ディレイを一時的に0にして、一気に次のクリック待ちの箇所まで表示する(つまり、一時的にノーウェイトモードとなる)機能があります。これをクリックスキップと呼びます。

クリックスキップは初期状態では有効になっていますが、[clickskip]タグを用いて有効/無効を切り換えることができます。

[clickskip enabled="false"]
この部分はクリックスキップが無効です。
[p]
[cm]
[clickskip enabled="true"]
この部分はクリックスキップが有効です。

なお、クリックスキップを無効にすると、テキストのディレイをキャンセルできなくなる以外にも、画像のトランジションをキャンセルしたり、クエイクを途中でキャンセルしたりすることもできなくなります。

表示位置

O₂ Engine では、原則としてテキストはメッセージレイヤに描画されますので、テキストの描画位置は、メッセージレイヤの位置やサイズによって決まります。メッセージレイヤの位置やサイズは、[position]タグから設定できます。

また、メッセージレイヤ自体の位置やサイズを指定するだけでなく、そのメッセージレイヤ内の特定の位置にテキストを描画することもできます。これは[locate]タグでカレントポジションを設定することによって実現できます。

フレーム

メッセージレイヤは、テキストの背後にフレームを表示します。これはテキストを読みやすくするために使用されます。

フレームには、単色の矩形と、任意の画像のいずれかを使用できます。また、フレームには不透明度を設定することもできます。不透明度を 0 に設定すれば、フレームは表示されず、テキストのみが表示されることになります。なお、不透明度の設定は単色の矩形をフレームに使用しているときしか有効になりません。

単色の矩形のフレームの例

【単色の矩形のフレームの例】

任意の画像のフレームの例

【任意の画像のフレームの例】

フレームは、[position]タグから設定できます。

フォントやスタイル

[font]タグや[style]タグを用いて、表示するテキストのフォントやスタイルを変えることができます。

また、[deffont]タグや[defstyle]タグを用いて、デフォルトのフォントやスタイルを設定することもできます。[resetfont]タグや[resetstyle]タグを用いれば、フォントやスタイルの情報はデフォルトフォントやデフォルトスタイルへとクリアされます。また、[cm]タグなどによっても、フォントやスタイルの情報はデフォルトのものへとクリアされます。

[deffont color="0xffffff"]
[defstyle linespacing="5"]
[font color="0xff0000"]
この部分のテキストは赤い色で表示されます。
[r]
[style linespacing="10"]
この部分のテキストは赤い色で表示され、なおかつ2行以上にまたがった場合は行間10ピクセルで表示されます。[r]
[resetfont]
[resetstyle]
この部分のテキストは白い色で、なおかつ2行以上にまたがった場合は行間5ピクセルで表示されます。