May 24, 2026

より柔軟な変数とスコープ対応のダイアログ

journal

今回のリリースは主にスコープに関するものです。Dialogues は単一のシーンに縛られる必要がなくなり、variables はシーンやチャプター、ストーリー全体にバインドできるようになりました。テキストフィールドは変数から直接値を引っ張ってこれます。

さらに、新しいinput actionsが2つ追加されました:自由入力用と選択肢から選ぶ用です。加えて、ストーリー、公開されている作者ページ、およびAsset Packsがウェブサイト上で閲覧できるようになりました。

Version: App: v0.16.0 - API: v0.17.2-ca2ea24f

ダイアログはもうシーンに縛られない

dialoguesscenes に紐づいていることがなぜ重要なのか、理由はご存知ですか?いいえ?私もです。そこでダイアログにスコープを追加しました。ダイアログはシーン、チャプター、あるいはストーリー全体にバインドできます。

シーンに紐づくダイアログはデフォルトで、これまで通りの挙動をします。チャプターやストーリーに紐づくダイアログが新要素です。どこで起きてもいい電話越しの会話や、単一の場所に属さない仲間とのチャットに便利です。

同じダイアログでも、雨の森と居心地のいい酒場では印象が変わります。さらに、現在のシーンに応じてconditionsで異なる選択肢を表示できるので、ダイアログ自体は共有しつつ文脈は反映できます。

ダイアログは背景も個別に持てるようになりました。例えば、シーン全体を置き換えない電話のオーバーレイなどです。

ウェブサイトでのストーリー、作者ページ、Asset Packs

ウェブサイトでのストーリー、作者ページ、Asset Packs

ストーリー は現在ウェブサイトの一部になり、アプリ外からリンクしたり閲覧できるようになりました。これは新しいプレイヤーやクリエイターを呼び込むための導線として機能します。Steam が自社サイトでゲームを公開するのに似たイメージです。

作者ページ も利用可能です(作者がアカウント設定でプロフィールを公開にしている場合)。Talescape のストーリーのポートフォリオとして使ったり、プレイヤーに自分が作っているものを紹介するのに便利です。

Asset Packs もウェブ上で閲覧できるようになったので、クリエイターやプレイヤーはまずエディタを開かなくてもライブラリの中身を確認できます。

新アクション:テキスト入力を表示

新アクション:テキスト入力を表示

Display Text Input はプレイヤーに質問を表示し、回答を variable に保存します。もっとも分かりやすい用途はプレイヤーの名前ですが、ドアの暗証コードやコールサイン、パスワード、ストーリー状態に保存しておきたいあらゆる値に使えます。

新アクション:選択肢を表示

新アクション:選択肢を表示

Display Choices は Display Text Input の兄弟的なアクションです。プレイヤーにいくつかのボタンを表示し、選ばれた値を variable に保存します。難易度、派閥選択、ルートの簡易選択など、フルなdialogueを作るほどではないが明確な値が必要な場面で使ってください。プレイヤーには読みやすいラベルが表示され、ストーリー側にはあなたがそのラベルの裏で定義した値が保存されます。

テキストで変数が使えるように

テキストで変数が使えるように

Variables はテキストフィールド内のプレースホルダとして使えるようになりました。もしテキストフィールドがこれをサポートしている場合、その上部に括弧アイコンが表示されます。

これにより細かな個人向けの演出が可能になります:プレイヤー名、集めたアイテムの数、選ばれた派閥、覚えている回答、あるいはすでに変数で扱っている他の値などです。

同じピッカーは conditionsactions が変数値を必要とする箇所でも利用できるので、正確な名前を覚えておく必要がなく、エディタの流れを中断しません。

Talescape が算術を扱えるように

このリリースから Talescape は計算ができるようになりました。まあ、基本的な代数ですが。

新しい variable タイプに Calculated があります。固定値を持つ代わりに、式から値を導出します。その式には単純な数値や他の変数のプレースホルダを使えます。

サポートされる演算子は *, +, /, %, - と括弧です。防具を考慮したダメージ計算、複数のカウンターから作られるスコア、集めたアイテムから引っ張る進行度などに使ってください。

変数にスコープがつきました

変数が大量にあるストーリーは、特にすべての変数がグローバルな場合、すぐに散らかりがちです。ソフトウェア開発ではこれを「グローバル名前空間の汚染」と呼び、一般的にアンチパターンと見なされます。普通に言えば:すべてが同じ引き出しに放り込まれて、最終的に何も見つからなくなる、ということです。

そこで variables にスコープを追加しました。変数は今やシーンやチャプターにバインドするか、ストーリー全体にするかを選べます。ストーリー変数は以前の挙動に相当し、どこでも重要な値に向いています。シーンやチャプター変数はローカルに留めたい状態に使います。

例:

  • シーン変数:テレビがオンになっている
  • チャプター変数:集めた書類の枚数
  • ストーリー変数:体力、正気度、好感度

このやり方なら大きなストーリーでも整理がしやすくなります。一時的なスイッチが体力や正気度などのコアな状態と一緒に置かれる必要はありません。

小さな変更とバグ修正

  • 開発中のストーリー向けにリリースタイプのプレビューを追加しました。プレビュー中のストーリーはストアで見えるようになりますが、まだ購入できません。Steam のページを作ってから本格的なrelease workflowに進む感覚をイメージしてください。
  • もう一つのeventスコープ「Story」を追加しました。これはストーリー全体で使いたいイベント向けです。例えば、体力を増やす回復薬の設定など。
  • Story Player のプリロードロジックとメモリ管理を最適化しました。
  • Set Variable to Random Number を追加しました。指定した最小値と最大値の間の擬似乱数をnumber variable に設定します。
  • Disable Player InteractionsEnable Player Interactions を追加しました。これらのactionsはカットシーンや時間制のシーケンス、トランジション中にプレイヤーの操作を防ぐのに使えます。
  • サポートされる言語が増えました。ストーリーは英語、Deutsch、Francais、Italiano、Espanol、Portugues、簡体字中国語で作成できるようになりました。
  • フィルタ値が正しく処理されない問題を修正しました。