Skip to content

ワールドスキーマ

Yuminaのワールドは WorldDefinition というJSONオブジェクトとして保存されます。これが完全なスキーマです。

最上位の構造

json
{
  "id": "uuid",
  "version": "20.0.0",
  "name": "World Name",
  "description": "Short description",
  "author": "Creator Name",
  "language": "en",

  "entries": [],
  "variables": [],
  "rules": [],
  "reactions": [],

  "rootComponent": null,
  "components": [],
  "audioTracks": [],
  "bgmPlaylist": null,
  "conditionalBGM": [],
  "customUI": [],

  "entryFolders": [],
  "customTags": [],
  "customTagColors": {},
  "editorMode": "advanced",

  "settings": {
    "maxTokens": 12000,
    "maxContext": 200000,
    "temperature": 1.0,
    "topP": 1,
    "frequencyPenalty": 0,
    "presencePenalty": 0,
    "playerName": "Player",
    "lorebookScanDepth": 2,
    "lorebookRecursionDepth": 0
  }
}

フィールドリファレンス

アイデンティティ

フィールドタイプ説明
idstringUUID、自動生成
versionstringスキーマバージョン。現在は "20.0.0"
namestringワールド名(1〜200文字)
descriptionstring短い説明(0〜10,000文字)
authorstringクリエイターの表示名
languagestring(任意)BCP 47言語コード("en""zh""ja"など)。TypeScriptインターフェースには存在するがZodスキーマでは任意

コンテンツ

フィールドタイプ説明
entriesWorldEntry[]AIが読むすべてのコンテンツ。キャラクター、ロア、ルール、挨拶
variablesVariable[]ビヘイビアルール付きのゲーム状態定義
rulesRule[]WHEN/IF/THEN自動化トリガー
reactionsReactionイベントパターンベースのルール(新しいシステム)。undefinedにできる

プレゼンテーション

フィールドタイプ説明
rootComponentRootComponent | nullカスタムUIの仮想ファイルシステム(React/TSX)
componentsGameComponent[]組み込みUIコンポーネント(ステータスバーなど)
audioTracksAudioTrack[]BGM、SFX、アンビエントトラック
bgmPlaylistBGMPlaylist | null自動再生音楽の設定
conditionalBGMConditionalBGM[]状態トリガーの音楽
customUICustomUIComponent[]旧UIシステム(代わりにrootComponentを使う)

組織化

フィールドタイプ説明
entryFoldersEntryFolder[]エントリ整理用のフォルダ構造
customTagsstring[]クリエイター定義のエントリ用タグ
customTagColorsRecord<string, string>カスタムタグ用のTailwindカラークラス
editorMode"simple" | "advanced"エディタの複雑度レベル

Settings

フィールドタイプデフォルト説明
maxTokensnumber12000AI応答あたりの最大トークン
maxContextnumber200000最大コンテキストウィンドウサイズ
temperaturenumber1.0AIの創造性(0.0〜2.0)
topPnumber1Nucleusサンプリングしきい値
frequencyPenaltynumber0繰り返しトークンへのペナルティ
presencePenaltynumber0既出トークンへのペナルティ
playerNamestring"Player"デフォルトの {{user}} 置換
lorebookScanDepthnumber2キーワードをスキャンする直近ターン数
lorebookRecursionDepthnumber0トリガーされたエントリがエントリをトリガーする深さ
topKinteger(任意)候補トークン数を制限(min: 0)
minPfloat(任意)最小確率しきい値(0〜1)
structuredOutputboolean(任意)falseJSON出力形式を強制
lorebookBudgetPercentnumber非推奨 — トークン予算は削除済み。すべてのトリガーされたエントリが含まれます
lorebookBudgetCapinteger非推奨 — 上記参照
layoutModestring非推奨 — レイアウトは自動。フィールドは無視されます
uiModestring非推奨 — レイアウトは自動。フィールドは無視されます