0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GOKI2で広げるゲーム性【ModMessage入門】KAG3を超えたメッセージ表示と「cmタグ不要」のデータ管理

0
Last updated at Posted at 2026-01-31

ModMessage

ModMessageは、シナリオテキストを処理するためのタグを実装しています。
まずはモジュールを読み込みます。

/src/goki2/system/construct.gs
; メッセージレイヤ関連機能
@load_module name=ModMessage

メッセージレイヤの初期設定

まずはメッセージレイヤを何枚使うか指定します。
以下のようにmessage_layersタグを使います。

/src/goki2/system/config.gs
; メッセージレイヤの数
@message_layers count=2

続けてメッセージレイヤのサイズや位置を指定します。

/src/goki2/system/config.gs
; メッセージレイヤ設定
@message_option layer=message0 left=10 top=400 width=780 height=190 margin_left=10 margin_top=10 margin_right=10 margin_bottom=10 opacity=128 color=0xFF0000 caption_color=0xFFFFFF shadow_color=0xFF0000 current
@message_option layer=message1 left=10 top=200 width=780 height=190 margin_left=10 margin_top=10 margin_right=10 margin_bottom=10 opacity=128 color=0xFF0000 caption_color=0xFFFFFF shadow_color=0xFF0000

メッセージレイヤの設定は長いので順番に見ていきます。

layer=message0で操作する対象レイヤを指定します。
message_layersタグで指定したメッセージレイヤの数分のレイヤを指定する事ができます。
今回は2枚使うのでlayer属性に指定できるのはmessage0とmessage1の2つになります。

left=10 top=400 width=780 height=190はメッセージレイヤの位置とサイズを指定しています。

margin_left=10 margin_top=10 margin_right=10 margin_bottom=10はメッセージ表示領域のマージン(余白)を指定します。
ここで指定された値以下の位置にはメッセージは表示されません。

opacity=128 color=0xFF0000はメッセージレイヤ事態の色や不透明度を指定しています。

caption_color=0xFFFFFF shadow_color=0xFF000はメッセージテキストの色と影の色を設定しています。

current属性を指定するとそのレイヤがカレントメッセージレイヤーになります。
カレントメッセージレイヤーは各タグでlayer属性に何も指定しなかった場合にデフォルトで指定されたものとみなされます。

このようにメッセージレイヤを複数用意して、message0を下に、message1を上に配置することで、ナレーションと台詞を分けるといった高度な演出も可能です。

メッセージの表示

メッセージを表示するにはまず、シナリオテキストの処理をデフォルトのchタグなどからch_mod_messageにリダイレクトしてやる必要があります。
各テキスト処理タグをModMessageにリダイレクトするためのusing_mod_messageタグが用意されています。

; シナリオテキスト出力先をModMessageにする
@using_mod_message

このタグはModADVのusing_mod_advと競合するため、出力先はどちらかを選んでください。
出力先の変更は以上です。

続けて、メッセージレイヤを表示します。
メッセージレイヤを表示しなければメッセージは表示されません。

; 構文拡張(覚えてますか?)
@!show_message type=vista

; メッセージレイヤ0を表示します。(エフェクトはvistaを使用)
@show_message layer=message0 vista
; メッセージレイヤの表示完了を待ちます。
@wait_show_message

これでテキストをModMessageで処理できるようになりました。
あとは以下のようにテキストを書くだけです。

*label|
シナリオテキストです。[p][cm]

*label|
ModMessageが処理しています。[p]

*label|
メッセージレイヤ消去します。[p]

; メッセージレイヤ消去
@hide_message layer=message0
; メッセージレイヤの消去完了を待ちます。
@wait_hide_message layer=message0

スクリプトを見て、KAG3をご存じの方であればわかると思いますが、セーブ可能なラベルの直後にcmタグがありません。
GOKI2ではKAG3と違ってメッセージレイヤの内容を保存するのでcmタグは書く必要がなくなりました。

履歴レイヤ

ModMessageではいわゆる履歴レイヤも管理しています。

/src/goki2/system/config.gs
; メッセージ履歴設定
@history_option width=800 height=600 slider_storage=sample_slider/sample_slider_button margin_left=50 margin_top=18 margin_right=18 margin_bottom=18 color=0x000000 caption_color=0xFFFFFF shadow_color=0x808080

順番に見ていきましょう。

width=800 height=600でメッセージレイヤのサイズを指定しています。
left/top属性も指定できますが、ここでは省略して(0, 0)-(800, 600)までを履歴レイヤの領域としています。

slider_storage=sample_slider/sample_slider_buttonは履歴のスクロールをするバー(とつまみ)の画像を指定しています。
画像を指定しなければデフォルトのスクロールバーが使われます。

margin_left=50 margin_top=18 margin_right=18 margin_bottom=18はメッセージレイヤの時と同じく履歴レイヤのマージン(余白)を指定しています。

color=0x000000は履歴レイヤの色を指定しています。

caption_color=0xFFFFFF shadow_color=0x808080は履歴に表示するテキストの色と影色を指定しています。

最後に

全てのUIは画像を指定する事で、オリジナルのUIを使う事ができます。
詳しくはマニュアルを参照してください。(/doc/goki2/index.html)

ModMessageモジュールは多数のタグを実装しているのでマニュアルをよく読む事をお勧めします。

関連する記事の一覧

GOKI2の関連する記事一覧

ダウンロード

気になった方は以下サイトのリリースタグ(Avalanches release version 2.x.y.yという表記)からAssetsにあるAvalanches-Release2.x.y.y.zipのリンクから最新の環境をダウンロードできます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?