KAG 3 未満からの移植と KAG 3 での新機能

# KAG 3 未満からの移植について

KAG 3 はそれまでの KAG を新しく書き直したもので、シナリオレベルでの互換性はありますが、細かい差異もあります。
もっとも大き変更は、シナリオファイル中の改行を無視するようになったことですが、これは Config.tjs の `global.ignoreCR` を `false` に指定することで旧 KAG の動作と同じにすることができます。
また、quake タグの time 属性は、KAG 3 では ms 単位になりました。KAG 3 未満の、文字数単位にしたい場合は Config.tjs の `defaultQuakeTimeInChUnit` を `true` に設定してください。
KAG 3 未満に比べて、文字が大きめに出てきます。小さめのフォントを指定してみてください。
セーブデータの保存場所は、デフォルトで実行可能ファイルのあるフォルダ以下の savedata フォルダになっていますのでご注意ください。
タグもいくつかの相違点があります。

- emb タグに zenkaku 属性がない
- playvideo の usesound 属性廃止
- clearsysvar はシステム変数をクリアするだけ

他にも動作が違うタグがあるかもしれませんが、おそらく KAG 3 のバグかと思います。変に思ったら作者までご一報ください。
プラグインの扱いの違いについては 準備をしよう の「プラグインについて」をご覧ください。

# KAG 3 の新機能

KAG のシナリオ解析部を吉里吉里２本体に内蔵
  吉里吉里２本体には KAG のシナリオを解析するための機能が組み込まれまし た。KAG 2.x では TJS スクリプトで処理していましたが、これを本体に内蔵す ることによってシナリオの解析速度が飛躍的に高速化されました。
ほとんどのタグに cond 属性が使える
  cond 属性はほとんどすべてのタグに使用でき、cond="式" で指定した式が真 の場合だけ、そのタグを実行するようになります。たとえば、
  `[jump cond="f.flag1==0" target=*loop]
  `
  と記述すると、f.flag1 が 0 の時だけ *loop というラベルにジャンプする、と いう意味になります。
アニメーション情報ファイルが asq から asd になった
  より汎用性の高い形式である asd 形式になりました。配布ファイル中の asq2asd は asq ファイルを asd ファイルに変換するスクリプトです。asd ファ イルの記述については AnimationLayer.tjs 内をご覧ください。
  また、アニメーションセグメントと呼ばれる方法を使って、一つの画像に対し て複数のアニメーションを同時に実行できます。
メッセージ履歴が縦書き表示できるようになった
  横書きに加えて縦書き表示ができるようになりました。Config.tjs で設定し ます。
セーブデータの暗号化が可能に
  セーブデータに簡単な暗号化をかけることができるようになりました。 Config.tjs で設定します。
UNICODE ファイルへの対応
  吉里吉里２が出力するテキストファイルは基本的に UNICODE ( UTF-16 ) です。
  セーブデータなどは UNICODE で出力されます。UNICODE を扱うことのできる テキストエディタを用意しておくと便利かと思います。
  また、吉里吉里２へ読み込ませるファイル ( KAG シナリオなど ) として UNICODE 形式の テキストファイルを読み込ませることが可能になりました。
ムービー形式として MPEG に正式対応
  MPEG を再生できるようになりました。アーカイブ内に MPEG ファイルを納め ても再生できます。
  ただし、ムービーを再生するには、吉里吉里２本体に付属している krmovie.dll を、吉里吉里２本体と同じフォルダにおいておく必要があります。
  また、ムービーを再生するために DirectX8 以降が OS にインストールされて いる必要があります(DirectX9以降を推奨します)。
レンダリング済みフォントへの対応
  レンダリング済みフォントを使用することによって、OS や環境によるフォント の違いや、字詰めの問題を回避できます。また、作成者側の環境でのフォントデ ータを用いるため、プレーヤの環境にないフォントや外字を使用することができ ます。
  レンダリング済みフォントを作成するには krkrfont.exe を使います。