コンテンツにスキップ

Ktory とは

Ktory ノベルスクリプトシステムの立ち位置とコア設計思想

Ktory は、対話駆動型ゲームのための物語制作・接続システムです。 一編の Ktory スクリプトは劇の一幕のようなものです。テキスト、セリフの順序、選択肢、分岐をひとつにまとめ、音楽や視覚的な演出の指示を注記します。そしてゲームエンジンは現場の舞台監督として、具体的な表現、ワールドの状態、実際のイベント判定を担当します。

現在の仕様は一つの Main と自動補助再生ヘッドです。Main が入力と補助の作成・停止・待機を独占し、補助は Core の制御フローと at で進み、文字表示や表示寿命を待ちません。暗黙 join はなく、実行終了と表示を分離します。組み込み引数は名前付きで、時計は全体の名前付きまたは各ヘッドの匿名既定です。主/副言語規則は維持します。2026-10-22 に実装が承認され検証中であり、公開サイトやパッケージの更新とは別です。設計原則を参照してください。

従来のスクリプト手法と比べて、Ktory は複雑な物語を持つゲームの開発により適しています。

戯曲のように物語を組み立てる

Section titled “戯曲のように物語を組み立てる”
@defaultLang: ja
@speaker alice: ja="アリス" | en="Alice"
alice:
@ja: 今日の風は、どこかいつもと違うみたい。
@en: The wind feels different today.
.expression(pensive)
#.sfx("wind.ogg").wait(seconds=1).next()
#choice.loop
* [出発する]
alice: 行こう。
-> break
+ [周りを見る]
: 窓の外で落ち葉が渦を巻く。

セリフと地の文が「拍(ビート)」を形成し、修飾子がその拍に付随します。拍は論理的な出力・停止の境界であり、入力や自動方針によって進みます。毎回ユーザー操作が必要なわけではありません。多軌実行では拍は各再生ヘッドに属します。

ひとつのコア、多様な実行環境

Section titled “ひとつのコア、多様な実行環境”

Ktory は C# で構文解析と実行を行うコアを中心に据えていますが、大小を問わず様々な環境で利用できます。Unity や Godot のような大規模なゲームエンジンから、Web ブラウザや VS Code 拡張機能のような軽量で柔軟な環境、さらにはコマンドラインであっても Ktory スクリプトを再生可能です。

C# コアは分岐、呼び出し、ループ、セッション履歴、明示的に宣言された論理時計を管理します。ホスト環境は表示、リソース、実際の時間源、プレイヤー入力、ゲーム状態を管理します。

Ktory は現在、初期開発段階にあります。現時点では以下のプラットフォームに対応しています:

  • Unity: Package Manager の「Install package from git URL…」で https://github.com/Kutinana/Ktory.git#upm を入力。
  • VS Code: VS Code 拡張機能。
  • Web: Web Reader。

コアの移植性が高いからといって、あらゆるエンジン向けのアダプターがすでに提供されているわけではありません。さらなるプラットフォームへの対応も鋭意進行中です。