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で加速するシナリオ制作【convgs入門】config.iniによる独自フォーマット解析とキャラ名の自動変換

0
Posted at

ダウンロード

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

シナリオコンバータ

シナリオのテキストファイルを*.ks/*.gsファイルにコンバートするスクリプトがあります。
シナリオテキストは決まったフォーマットで書く必要はありますが
フォーマットさえ決めてしまえば、このスクリプトでシナリオファイルにコンバートできます。

/tools/convgs/config.ini

/tools/convgs/config.iniを編集する事でシナリオテキストのフォーマットを指定する事ができます。
順番に見ていきましょう。

SYSTEMセクションは将来のために予約されたセクションです。
現在は何も指定する事はできません。

SIMPLE_PARSEセクションはシナリオテキストのフォーマットを指定します。

; 【キャラクター名】
; ここで指定した文字(名前文字と呼びます)で囲まれた文字列を
; キャラクター名として認識します。
;
; また、名前文字で囲む以外にも、
; 以下のパターンをキャラクター名として認識する事ができます。
;
; ・名前文字と改行の間の文字列
; ・名前文字と開き括弧の間の文字列
;
; 例:
; main_characters の例を参照してください。
character_name_separator = "@"

ここに@(半角全角に注意)を指定すると以下のパターンをキャラクター名として認識します。

@ハロ@「セリフ」
@ハロ「セリフ」
@ハロ
「セリフ」

; 【メインキャラクター】
; 一般的にはストーリー全般を通して登場するキャラクターの名前を指定します。
; ここで言う、キャラクターの名前とは
; 特定のキャラクターの台詞を識別するためにシナリオテキスト中に記述されている文字列の事です。
; これはカンマで区切って複数指定する事ができます。
;
; また、名前の最初と最後に空白文字を使う事はできません。
; これらは単に無視されます。
; 空白文字は全角/半角の空白文字とタブ文字です。
;
; 特殊な文字列として '->' があります。
; C/C++ にならって便宜上この文字列をアローと呼ぶことにします。
; アローを使えば名前の変換を行う事ができます。
;
; ここで指定されて 'いない' キャラクター名は全て
; そのファイルでのみ有効なキャラクターとして処理されます。
; GOKI ゲームシステムの仕様では、メインキャラクターの情報は
; ゲーム起動時からゲーム終了までの間、常にメモリ上のキャッシュに保存されるため
; 一部のファイルでのみ台詞のあるキャラクターを
; メインキャラクターとして登録する事はあまりお勧めできません。
;
; 例:
; ----Sample.txt
; @ハロ「ハロだお」
; @ハゲ「ハゲだお」
; @ハ「ハロスケ・フォン・マラデカインだお」
; ----
;
; ----config.ini
; character_name_separator = "@"
; main_characters = "ハロ,ハ->ハロスケ・フォン・マラデカイン"
; ----
;
; ----Sample.gs
; @mob name=ハゲ
;
; *|
; [ハロ]「ハロだお」
;
; *|
; [ハゲ]「ハゲだお」
;
; *|
; [ハロスケ・フォン・マラデカイン]「ハロスケ・フォン・マラデカインだお」
; ----
main_characters = "地文"

キャラクターはメインキャラクターとモブキャラクターに分かれます。
メインキャラクターは常にメモリ上にロードされた状態です。
モブキャラクターはシナリオファイルごとに有効化するキャラクターです。
main_charactersに指定しなかったキャラクターはモブキャラクターとなります。

; 【改行をrタグに変換する】
; 0 か 1 を指定してください。
; 0 を指定すると改行コードの位置に[r]タグを出力されません。
; 1 を指定すると改行コードの位置に[r]タグを出力します。
expand_r_tag = 0

GOKI2ではModADVの使用を推奨しているのでデフォルトでは[r]タグや[p]タグを必要としません。
expand_r_tagの値を1にすると[r]タグや[p]タグを出力するようになります。

; 【括弧を外す/外さない】
; 0 か 1 を指定してください。
; 0 を指定すると台詞を囲んでいる括弧はそのまま出力されます。
; 1 を指定すると台詞を囲んでいる括弧は出力されません。
strip_brackets = 1

括弧を外すか外さないかを指定します。

; 【括弧として認識する文字のリスト】
; ここで指定された文字を括弧として認識します。
; 指定する順番に注意してください。
; 1文字目の開き括弧は1文字目の閉じ括弧と対応します。
begin_brackets = "「"
end_brackets = "」"

括弧として認識する文字を指定します。

; 【コメント行】
; 一行コメントの開始シークエンスを指定します。
comment_line_sequence = ";"

コメントの開始を指定します。
ここで指定した文字が現れたらそこから改行までをコメントと認識します。

; 【名前無しのテキスト】
; 名前のないテキストの扱い方を指定します。
; 0 を指定するとコメントとして扱われます。
; 1 は予約されています。現在は指定すると必ずエラーになります。
; 2 を指定すると anonymous_text_character で指定したキャラクターの台詞として扱われます。
;
; 例:
; ----Sample.txt
; @ハロ「これは台詞だお」
;
; これもオイラの台詞だお!
; ----
;
; ----config.ini
; character_name_separator = "@"
;
; anonymous_text = 2
; anonymous_text_character = "ハロ"
; ----
;
; -----Sapmle.gs
; *|
; [ハロ]「これは台詞だお」
;
; *|
; [ハロ]「これもオイラの台詞だお!」
; -----
anonymous_text = 2
anonymous_text_character = "地文"

名前がないテキストはanonymous_text_characterで指定したキャラクターの台詞として認識されます。

; 【名前のみが単独で現れた場合に自動的に出力する台詞】
; キャラクターの名前だけが単独で検出された場合に
; 出力する台詞を指定します。
;
; これは例えば「……」などにしておくと便利かもしれません。
;
; 例:
; ----Sample.txt
; @ハロ「ハロだお」
; @ハゲ
; ----
;
; ----config.ini
; character_name_separator = "@"
;
; default_saying = "「ほげ!」"
; ----
;
; -----Sapmle.gs
; *|
; [ハロ]「ハロだお」
;
; *|
; [ハゲ]「ほげ!」
; -----
default_saying = ""

台詞だけが現れた時に、指定したキャラクターの台詞として扱います。

以上がconvgsの説明になります。
シナリオテキストのフォーマットはよく考えて作る必要がありますが、このツールを使えば簡単にシナリオテキストをスクリプトに変換できます。
覚えておいて損はないでしょう。

後はキャラクター設定(make_character)を行うだけで動くものが出来上がるでしょう。

関連する記事の一覧

GOKI2の関連する記事一覧

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?