ブログ内で配布しているシンディングのフォロワー化MODを新CKで開こうとすると、「Validating Forms」の最中に「CK2.0は動作を停止しました」と出て、CKが終了してしまう問題について。
Dialogue TopicをSSEEditですべて削除すると新CKで読み込めるようになったと
以前の記事で書きましたが、ようやく原因がわかりました。
新旧CKの互換性の問題とは全く関係なく、私が間違ったCondition FunctionをTopicに設定していただけでした……。
ダメだったCondition Function
セリフの話者を指定するために、Aliasを指定していました。実はこれでもゲーム内では動作します。動作するので気がつかなかったというのもあります。
旧CKでは、セリフをダブルクリックしてResponseウィンドウを開けようとすると、CKが動作を停止してしまいました。
Responseウィンドウ下部には、各ボイスタイプ別ボイスファイルの一覧が表示されるところがあり、Topicに設定されたCondifion Functionsの条件に合致するボイスのみが並ぶようになっています。
恐らくですが、旧CKはResponseウィンドウを開ける瞬間にこの条件確認を行っており、問題の「GetIsReference」でAliasを指定されているとボイスタイプの特定が正常に行えず、エラーを出して強制終了したのだと思います。
そして新CKでは、この確認をファイルを開けるときの「Validating Forms」で行っていたと思われます。
とりあえず新旧CKどちらのプログラムにもやさしくない、間違ったCondition Functionの設定だったことになります。
で、セリフの話者にAliasを指定したいときの正しい記述がこちら。
正しいCondition Function
「GetIsAliasRef」です。バニラでは、DA05のQuestで使用されているのを確認。
「GetIsReference」をすべてこちらに変更したら、CKが動作を停止することはなくなりました。ボイスタイプもちゃんと条件から見分けてResponseウィンドウに出してくれています。
……原因が分かったので、新旧どちらのMODも修正しました。無事にSE対応もできましたので、シンディングがお気に入りの方はぜひお試しくださいませ。
前へ |
次へ