話者の既定修飾子
@speaker 宣言の下にインデントして既定修飾子を記述します。各台詞に適用され、同じ名前の局所修飾子が既定の同名グループ全体を置き換えます。次の台詞では再び既定値から計算します。
@speaker alice: zh="爱丽丝" | en="Alice" .portrait(normal).emotion(calm).voice(soft)
alice: 默认呈现。alice: 本句覆盖。 .portrait(happy).emotion(happy)Alice: 再次使用默认值。定義は現在のファイル内で有効で、ID とすべての別名に適用されます。宣言順序には依存しません。定義自体は拍を生成せず、地の文、指令拍、選択肢項目には適用しません。選択肢内の同じ話者の台詞には適用します。
修飾子名は大文字と小文字を区別せず比較し、引数単位ではなく同名グループ全体を置き換えます。同じ名前を局所で複数回指定した場合はすべて保持します。未上書きの既定修飾子、局所修飾子の順になります。TextPayload.Tags は解決済みの一覧です。
任意の修飾子を指定でき、各文に明記した場合と同じ効果になります。.wait/.next/.loop の既存の意味は変わりません。宿主が .sfx(bell) を一度だけ音を鳴らす操作として実装した場合、既定値に置くと各台詞で鳴ります。言語切替では再実行しません。
この段階では既定値の取消構文は追加しません。リソースや動作の意味は宿主が実装し、Unity の立ち絵との関連付けは自動では行いません。表示側は現在の有効一覧に従い、局所値も既定値もない表情を消去してください。BGM の省略時に音楽を停止するという意味ではありません。
名前のない # アンカーにも直接修飾子を続けられます:#.sfx("wind.ogg").wait(seconds=1).next()。ポータル、Reader のソース編集欄、VS Code は同一の TextMate grammar を使用します。テーマによる色の違いは許容されます。
