マニュアル: 変数のテキストへの入れ込み(ValueLabel/RichValueLabel)

このマニュアルについて

このマニュアルでは、ACTION GAME MAKER でテキストの中に変数やデータベースの値を差し込む機能について解説を行います。あわせて、本文を1文字ずつ表示する機能についても解説します。

各設定のインスペクターにある「マニュアルを開く」ボタンから、このページを開くことができます。

概要

「HP: 100/200」のように、文章の中へ実行時の値を混ぜて表示できます。

本文に次のように書くだけです。

HP: <self.hp>/<self.max_hp>

< > で囲んだ部分が、実行中の値に置き換わります。値が変われば表示も追従します。

使える場所は3つです。

場所 説明
実行アクション「テキストを表示(DisplayText)」 セリフやダメージ表示など
ラベル(ValueLabel) マップレイヤー / UIレイヤー / メニューに置ける文字
リッチテキスト(ValueRichTextLabel) 上記に加えて色・太字・画像が使える

使えるコード

自分自身の変数・スイッチ

<self.hp>                 自分自身の変数
<sw.self.is_invincible>   自分自身のスイッチ

変数が基本で、スイッチのときだけ先頭に sw. を付けます。スイッチは ON / OFF と表示されます。

プロジェクト変数・プロジェクトスイッチ

<project.スコア>
<sw.project.クリア済み>

データベース

<db.データベース名.レコード名.カラム名>

例: <db.アイテム.ポーション.価格>

共有ボード

<board.キー名>

キーがオブジェクト参照型のときは、そのオブジェクトのルートノード名が表示されます。

他のオブジェクトの変数・スイッチ

他のオブジェクトを指すときは「短縮名」を使います(次の項で解説します)。

<p.hp>
<sw.p.is_invincible>

画像(リッチテキストのみ)

データベースの画像カラムを、絵文字のように文中へ差し込めます。

<img.db.アイテム.ポーション.アイコン>       文字と同じ高さで表示
<img.db.アイテム.ポーション.アイコン|24>    24ピクセルで表示

短縮名とは

self や project は書くだけで通じますが、他のオブジェクトには決まった呼び名がありません。そこで、対象のオブジェクトに好きな呼び名を付けておく仕組みが「短縮名」です。短縮URLのようなイメージです。

短縮名はノード名でもシーン名でもなく、自分で決める呼び名です。 p や e1 のように短くしておくと、本文の中でも見分けやすくなります。

インスペクターの「短縮名リスト(text_bindings)」に行を追加して、次の2つを設定します。

  • 短縮名(alias) … 本文に書く名前(例: p)
  • 対象オブジェクトの種類(target_object_type) … 指定オブジェクト / 自身 / ロック中 / 自身の親 / 最後に接触した相手 / 共有ボードのオブジェクト

「指定オブジェクト」を選んだ場合は「対象オブジェクトのパス(target_object_path)」で対象のシーンを、「共有ボードのオブジェクト」を選んだ場合は「共有ボードのキー(blackboard_key)」を指定します。

これで本文に <p.hp> と書けるようになります。

ラベルとリッチテキストでは、この設定項目名は「短縮名リスト(bindings)」になります。また持ち主のオブジェクトを持たないため、選べるのは**「指定オブジェクト」と「共有ボードのオブジェクト」だけ**です。解決できない書き方をすると、シーンツリーに警告が出ます。

なお self / project / db / board / sw / img は予約語なので、短縮名には使えません。

数値の見た目を整える

| の後ろに書式を指定できます。

書式 意味 表示例
4 4桁で表示 42
04 4桁・0埋め 0042
, 3桁ごとにカンマ 1,234,567
.0 小数点以下を出さない 12
<self.hp|04>

組み合わせるときは空白で区切ります。, は3桁区切りの指定なので、区切り文字には使えません。

<project.スコア|06 ,>

文字を飾る(リッチテキストのみ)

リッチテキストでは BBCode が使えるので、本文に直接書けます。

HP: [color=#ffcc00][b]<self.hp>[/b][/color]

書式指定でも同じことができます。

書式 意味
b 太字
i 斜体
u 下線
s 打ち消し線
color=#ffcc00 文字色
<self.hp|04 b color=#ffcc00>

普通のラベルでは装飾と画像は無視され、値だけが表示されます。 色を付けたい場合はリッチテキストを使ってください。

「テキストを表示」で使うときは「リッチテキストとして表示(rich_text)」をオンにしてください。

1文字ずつ表示

「テキストを表示」では、本文を1文字ずつ出すことができます。「1文字ずつ表示(reveal_by_character)」をオンにしてください。

設定 内容
1文字ずつ表示の速さ(reveal_speed) 1秒あたりに出す文字数
1文字ずつ表示の演出(reveal_effect) なし / フェードイン / 下から浮き上がる / 上まで跳ねて戻る
1文字あたりの演出時間(reveal_effect_duration) 演出にかける時間

演出はリッチテキストのときだけ選べます。 文字ごとに見た目を変えられるのがリッチテキストだけのためです。

文字送りの音

文字が出るのに合わせて効果音を鳴らせます。

設定 内容
文字送りの音(reveal_sound_id) 鳴らすサウンド
音を鳴らす文字間隔(reveal_sound_interval) 何文字ごとに鳴らすか
音を鳴らす最短間隔(reveal_sound_min_interval) これより短い間隔では鳴らさない
音のピッチのゆらぎ(reveal_sound_pitch_variation) 音の高さをランダムにずらす量

空白と改行では鳴りません。毎回同じ音だと機械的に聞こえるので、ピッチのゆらぎを少し入れると自然になります。

読み飛ばし

「入力でスキップ(reveal_skip_by_input)」をオンにすると、キーを押して本文を一度に表示できます。

「スキップに使うキー(reveal_skip_input_idx)」は既定で表示終了と同じキーです。この場合、1回目の入力でスキップ、2回目の入力で表示終了となります。別のキーを割り当てることもできます。

実用例

HUD に体力を出す

UIレイヤーに「ラベル」を置き、テキストに HP: <p.hp>/<p.max_hp> と書きます。短縮名リストに p を追加し、対象をプレイヤーのシーンに指定すれば完成です。

アイテム名とアイコンを並べる

UIレイヤーに「リッチテキスト」を置き、次のように書きます。

<img.db.アイテム.ポーション.アイコン> <db.アイテム.ポーション.名前> ×<self.所持数>

メッセージを1文字ずつ出す

「テキストを表示」で「リッチテキストとして表示」と「1文字ずつ表示」をオンにし、演出に「フェードイン」、文字送りの音を設定します。「入力でスキップ」も入れておくと、読み終わった人を待たせません。

うまくいかないとき

値ではなく <p.hp> という文字がそのまま出る

差し込みとして解釈できていません。短縮名リストにその名前があるか、変数名が合っているかを確認してください。解釈できなかった < > は、そのままの文字として表示されます(既存の文章を壊さないための仕様です)。

何も表示されない

対象のオブジェクトが見つかっていない可能性があります。解決できない差し込みは空文字になります。

色や画像が文字として出る、または無視される

「リッチテキストとして表示(rich_text)」がオフになっていないか確認してください。

変数名を変更したとき

変数やデータベースの名称を変更する場合は、参照検索の「名称を一括変更」を使ってください。本文に書いた差し込みも一緒に書き換わります。

「いいね!」 2