← ドキュメント一覧

ティラノスクリプトから kaedevn へ — 移行ガイド

ティラノスクリプト(TyranoScript)で制作してきた方が、Kaede Script(KS) をすぐ書けるようになるためのガイドです。まず「タグの対応表」を載せ、その下に書き方の違いと機能の差をまとめています。対応表だけ見れば、ほとんどのシーンは移植できます。

kaedevn のスクリプトはティラノ / KAG 系の書き味を受け継いでいます。@コマンド でシーンを宣言的に描写する感覚はそのままに、1 本の原作から Web でも Nintendo Switch でも出力できるのが大きな違いです。


1. まず押さえる 4 つの違い

ティラノと書き方が変わる点はこの 4 つだけです。ここを押さえれば対応表がそのまま読めます。

ティラノスクリプトkaedevn(KS)
コマンドの書式[bg storage="room.jpg" time=1000][]属性="値"@bg room fade=1000@ とスペース区切り、クォート無し
属性の渡し方storage=, time= など名前付き位置引数+ key=value(例 @ch 赤音 smile C fade=500
話者#名前 / [chara_show] 連動#名前 を直前行に置く、または 名前:セリフ全角コロン
選択肢・分岐[glink] / [if][endif] タグブロック構文 choice { ... } / if (条件) { ... }
; ── kaedevn(KS)の基本形 ──
@bg classroom fade=1000
@ch 赤音 smile C
#赤音
おはよう!今日もいい天気だね。@l

choice {
    "一緒に帰る"   { @jump go_home }
    "図書館で勉強" { @jump library }
}
  • 行末の @l(クリック待ち)・@p(改ページ)・@r(改行)だけはテキストに埋め込めます。ティラノの [l] [p] [r] と同じ役割です。
  • コメントは ; または //
  • ラベルは *ラベル名(ティラノと同一)。

2. タグ対応表(ティラノの分類順)

◎ = ネイティブで対応(より強力)/ ○ = 対応 / △ = 別の経路で対応 / ✕ = 現状なし

テキスト・メッセージ操作

ティラノkaedevn KS対応メモ
[l] クリック待ち@lテキスト末尾に埋め込み可
[r] 改行@r
[p] 改ページ待ち@pメッセージをクリアして次へ
[cm] / [er] メッセージ消去@p に統合改ページで実質クリア
話者名表示#名前 行 / 名前:セリフカギ括弧 名前「…」 は話者抽出されない
[font] 文字装飾@text_style(枠色のみ)本文の部分装飾は未対応
[ruby] ルビ未対応(要望の多い項目)
[emb exp=] 変数埋め込み表示テキストへの変数差し込みは未対応
[graph] インライン画像
[delay] / [nowait] 表示速度エンジン設定側タグでの局所制御は弱い
[mtext] アニメテキスト@scroll_text(スクロール)スタッフロール用途

キャラクター(立ち絵)

ティラノkaedevn KS対応メモ
[chara_new] キャラ定義エディタ/アセットで定義スクリプト外で管理
[chara_show] 表示@ch 名前 ポーズ 位置(L/C/R)
[chara_hide] 非表示@ch_hide 名前
[chara_mod] / [chara_face] 表情@ch_expr 名前 表情2D / Live2D / VRM 共通コマンド
[chara_move] 移動@ch_move 名前 位置 time=N
[chara_part] 差分パーツ合成@ch_state 名前 レイヤ 状態レイヤ状態で表現
全キャラ消去@ch_clear
口パク@ch_lip 名前 auto/voice/offティラノには無い
Live2D(プラグイン)@live2d / @live2d_motion / @live2d_expressionネイティブ対応
3D / VRM(不可)@vrmShow / @vrmExpression / @vrmPosekaedevn 独自

背景・画像・レイヤー

ティラノkaedevn KS対応メモ
[bg] 背景@bg id [fade=N]
[image] レイヤ画像@overlay id [fade=N]前景オーバーレイ
[freeimage] / [free] 消去@overlay_hide [id]
[layopt] レイヤ設定レイアウトは @layout_set

トランジション(画面切替)

ティラノkaedevn KS対応メモ
[bg ... time=] フェード切替@bg id fade=N
黒/白フェードアウト@fade_black / @fade_white
黒/白からフェードイン@black_in / @white_in
[trans method=rule rule=] ルール画像ワイプ任意ワイプは未対応
[backlay] / [wt] 裏レイヤ準備不要(内部処理)

音楽・効果音・ボイス・動画

ティラノkaedevn KS対応メモ
[playbgm]@bgm id [vol=N] [fade=N]ループ再生
[stopbgm] / [fadeoutbgm]@bgm_stop [fade=N]
[playse]@se id [vol=N]
ボイス再生@voice id
ボイス終端まで待機@wait_voice_end
[movie] / [bgmovie] 動画動画再生は未対応

演出効果

ティラノkaedevn KS対応メモ
[quake] / [wq] 揺れ@shake [intensity= duration=]
フラッシュ@flash [duration=]
[anim] 汎用トゥイーン@ch_move / @camera / @fade_*対象別コマンドに分かれる
カメラ寄せ(プラグイン)@camera [zoom= x= y= time= easing= shake=]ネイティブ対応
パーティクル(プラグイン)@particle / @effect(JSON宣言型) / @slashネイティブ対応
画面フィルター(CSS)@filter / @filter_mix / @color_adjust専用シェーダで高品質

分岐・ラベル・ジャンプ

ティラノkaedevn KS対応メモ
*label*label同一
[jump target= storage=]@jump ラベル
[call] / [return]@call ラベル / @return
[if] / [else] / [endif]if (条件) { } else { }ブロック構文
[macro] ユーザー定義マクロ@call_template ID(コモンイベント)引数付き自作はKSC関数で

選択肢・ボタン・リンク

ティラノkaedevn KS対応メモ
[glink] 選択肢リンクchoice { "テキスト" { @jump … } }条件付き選択肢: "…" if (条件) { }
[button] 画像ボタン宣言的UI(MomijiUI)画面JSON側で構築
[link] / [endlink] インラインリンク

変数・スクリプト

ティラノkaedevn KS対応メモ
変数 f.x / sf.xx(変数名を直接)KS の変数は数値中心
[eval exp="f.x=1"] 代入x = 1 / x += 1 / x -= 1
複雑な式・関数・ループKSC(コード記法)型チェック付き
[iscript] / [html] 生JS/HTML意図的に不採用(後述)

システム

ティラノkaedevn KS対応メモ
[wait time=] 待機@wait sec秒指定
[save] / [load] / [menu]エンジン/UIが提供スクリプトタグでは出さない設計
[history] 履歴エンジンが提供

kaedevn 独自(ティラノに無いもの)

ノベルに加えて、同じ記法で RPG/ソーシャルゲーム量産まで射程に入ります(RPG レイヤーは開発中・順次公開)。

機能KS コマンド
マップ読込/退出@map_load / @map_exit
プレイヤー/イベント移動@player_move / @event_move
アイテム増減@item_add / @item_remove
コマンドバトル@battle troopId onWin= onLose=
3D / VRM キャラ@vrmShow / @sceneMode

3. 移行で「楽になる」ところ・「気をつける」ところ

楽になる(ティラノでプラグインが要った演出が標準装備)

  • カメラ(パン・ズーム・揺れ)が @camera 一発。
  • パーティクル / エフェクト@particle @effect(JSON宣言型)で標準。
  • 高品質フィルター@filter / @filter_mix で専用シェーダ。CSS フィルターより表現が広い。
  • Live2D がネイティブ、さらに VRM(3D キャラ) まで同じ書き味で扱える。
  • 表情・口パク・モーションが 2D / Live2D / VRM 横断で同じコマンド@ch_expr 等)。

気をつける(ティラノにあって現状 KS に無いもの)

項目現状回避策
ルビ [ruby]未対応当面は本文で表現/対応予定
本文への変数埋め込み [emb]未対応セリフを分けて構成
ルール画像ワイプ [trans rule=]未対応@fade_* / @filter で代替
動画再生 [movie]未対応OP/ED は別手段で
本文の部分装飾 [font]枠色のみ
生 JS / HTML [iscript]非対応(設計上)ロジックは KSC(型付きコード)で

[iscript] のような生 JS を持たないのは制約ではなく設計です。KS を一度プラットフォーム非依存の命令列(Op[])にコンパイルすることで、同じシナリオが Web でも Nintendo Switch でも動くようにしています。複雑なロジックは型チェック付きの KSC に書けば、生 JS なしで同じことができます。


4. 仕組みの違い(読みたい人向け)

ティラノはスクリプトを 1 行ずつ解釈して実行するインタプリタ方式です。kaedevn の KS は、スクリプト全体を先に命令列(Op[])へコンパイルしてから実行します。

.ks → Tokenizer → Parser → Transformer → Op[](プラットフォーム非依存)→ 実行

この Op[] が「1 本の原作から複数媒体へ出力する」基盤になっています。ライト層はタグ記法(KS)、ロジック重めは型付きのコード記法(KSC)と、用途で書き分けられます。


5. はじめの一歩

  1. ティラノの 1 シーンを、上の対応表でそのまま置き換えてみる
  2. [bg]→@bg / [chara_show]→@ch / [glink]→choice{} の 3 つだけで、ほとんどの会話シーンが動く
  3. 揺れ・カメラ・エフェクトは KS のネイティブコマンドで足していく

詳しい全コマンドは KS 仕様書、ロジックを書きたくなったら KSC 仕様書 へ。

関連ドキュメント

Ad: inContent (336x280)
Ad: stickyBottom (728x90)
kaedevn - ノベルゲームを作れるプラットフォーム