ありがちなミスや不都合を生みやすいポイントを紹介します。
- スキップしても大丈夫ですか?
- KAGはクリックや「次の選択肢まで進む」、スペースキーやEnterキーの長押しでスキップモードにはいります。このとき、たとえば時間制限選択肢でスキップの動作が禁止されていないとすぐにタイムオーバーになってしまいます ( これを避けるには時間制限選択肢が来たら @cancelskip して @clickskip enabled=false し、時間制限選択肢が終わったら @clickskip enabled=true する )。また、スタッフロールやデモシーンでもスキップとのかねあいを考慮する必要があります。
「自動的に読み進む」も、単純にクリック待ちを行うつもりで p タグなどを使った場合に問題になる場合があります。「自動的に読み進む」を強制的に解除するには cancelautomode タグを使います。
また、trans タグに対応している wt タグがないなと、「何か時間をかけて処理を行うタグ」と「それに対応する『待つ』タグ」がない場合は問題が発生することがあります。マクロなどを使ってこれらを常に組みにしてつかうならば問題ありませんが、複数の「何か時間をかけて処理を行うタグ」を組み合わせてオーバーラップさせて使うような場合は特に注意が必要です。
- 栞をたどっても大丈夫ですか?
- KAGのセーブとロード関連にはクセがあり、栞をたどるときにメッセージレイヤに記述された内容までは復元できず、つねにすべてのメッセージレイヤがクリアされた状態から実行が開始されます。また、トランジションやBGMや効果音のフェードなどもすべて停止した状態で開始します。これらはすべて「セーブ可能なラベル」から開始されますので、セーブ可能なラベルの直後で cm や ct タグのような、メッセージレイヤをクリアするためのタグがあるか (あるいはセーブ可能なラベルの位置ですべてのメッセージレイヤがクリアされた状態から開始しても問題ないか )、また、セーブ可能なラベルがトランジション中であったり、フェードアウト中であったりしないかどうかなどをよくチェックしてください。
- 状態は復元できていますか?
- たとえばCGモードを作って、CGモード中ではメッセージレイヤなどの状態をCGモード用に変更したら、当然CGモードを抜けるときにはその状態を元に戻さないとなりません。
- メッセージ履歴はOKですか?
- メッセージ履歴にどのような物が表示されているかは一応確認しておくと良いと思います。
- ウェイトがマシンスペックによって変わるような作りになってませんか?
- wait は、mode 属性を指定しないと、単に time 属性で指定された時間を待ちます。ですから、1秒ごとに何かを表示しようとして
@wait time=1000
@何かの表示など
@wait time=1000
@何かの表示など
@wait time=1000
@何かの表示など
と指定しても正確に1秒ごとにはなりません。wait 自体は確かに1秒を待ちますが、「何かの表示など」で消費される時間を考慮していないためです。
従って、これを正確に1秒ごとにしたい場合は、resetwait タグと wait mode=until を使って、
@resetwait
@wait mode=until time=1000
@何かの表示など
@wait mode=until time=2000
@何かの表示など
@wait mode=until time=3000
@何かの表示など
とします。resetwait で指定した時間原点からの時間を wait mode=until で待つという感じになります。