|| 「踊る金狼亭」TOPメモ箱CWの変更点>エンジン識別法とエラー回避


[情報] 変更点早見表|変更点:1.28/1.29/1.30/1.50バグ一覧使える素材
[対策] エンジン識別とエラー回避|動作に必要なエンジンは?+既存手法での代替案

<公式サイト・公式ファンサイト配布のエンジンに関する情報です。私家版エンジンの識別法はこちら。>

新要素に対応・非対応で処理を分けたり、シナリオ内容にエンジンが追いついていない時に最新エンジン入手のお願いを表示したりするために、エンジンバージョン識別が役に立ちます。
特に、CW1.30以降で追加された新しいコンテントや一部拡張を使ったシナリオは、より古いエンジンでプレイする際にWindows側でエラーが出ます。可能なら何らかの対策をしておきたいところです。

公式サイト・公式ファンサイト配布エンジンのバージョンを見分ける

CW1.20からCW1.50までの各バージョン見分けポイントは、以下の通りです。
これらのポイントを利用して、以下のような流れでエンジンバージョンを判定できます。
結果はステップに保存すると、後で使い易いと思います。

▼Ver.判定
└◆<効果>味方1人に必中・無属性で沈黙付与
 └◆<状態判定分岐>誰か1人が沈黙?
  ├[成功] →CW1.50 →(必要なら私家版識別を実行後、)回復して終了
  └[失敗] 
   └◆<効果>沈黙を回復
    └◆<効果>味方1人に必中・無属性で混乱付与
     └◆<状態判定分岐>誰か1人が混乱?
      ├[成功] →CW1.30 →回復して終了
      └[失敗]
       └◆<効果>混乱を回復
        └◆<クーポン分岐>誰かが「@MP3」所持?
         ├[成功] →CW1.29
         └[失敗]
          └◆<クーポン取得>味方1人に「:Ver.判定」配布
           └◆<時間経過>
            └◆<クーポン分岐>誰かが「:Ver.判定」所持?
             ├[失敗] →CW1.28
             └[成功] →CW1.20 →時限称号を削除して終了

これだけでは、味方を状態異常にする際に状態変化アイコンが見えてしまうため、仕事先への移動等を利用し、一旦パーティー隠蔽した上で判定した方がよりスマートです。
私家版エンジンの識別が必要な場合は、上記のバージョン判定イベントでCW1.50である事を確定させた後、私家版識別を実行します。
(※私家版の判定を行わないなら、逆の流れ(CW1.20から始めてバージョンを上げていく)でも構いません)

※※※
Next、Pyの識別にも対応した「エンジン識別サンプル」シナリオも準備しております。
良かったらご利用ください。

[▲上へ]

新コンテントや評価メンバ・セル拡張によるエラー回避策

ここでは、読み込み違反やメモリ不足等のエラーでプレイそのものが中断されてしまう場合を扱います。
仕様変更で想定した通りの動きにならない可能性については、各バージョンでの変更点から個別にご判断下さい。

※※※
新要素を含むシナリオを、それらに非対応の古いエンジンで読み込んだ場合、エラーが出て止まってしまう事があります。
エラー原因として現在判明しているのは、以下の3つです。
  1. CW1.30やCW1.50からの新コンテント
  2. 評価メンバシステムを使用した台詞
  3. テキストセルやカラーセルを使用した背景変更コンテント
これらを含むものが……:
○エリア
CW1.20では、そのエリアに移動した際エラーが出る。
CW1.28以降では、シナリオ開始時にエラーが出る場合がある。
○パッケージ
問題のパッケージへのリンクやコールに到達した際エラーが出る。直前までのイベントは実行される。
○バトル
問題のバトルの開始時にエラーが出る。直前までのイベントは実行される。
○効果系カード使用時イベント
取得、喪失、所持分岐時にエラーが出る。直前までのイベントは実行される。
○キャストが持つ効果系カード
NPC確認(キャンプ)、バトル開始、連れ込みの時の他、CW1.20ではNPCの加入時にもエラーが出る。離脱や存在分岐ではエラーは出ない。
新コンテントや評価メンバ使用セリフを含むファイルのデータが必要になった時にエラーが発生します。
逆に言えば、エンジンバージョンを事前に判定し、対応・非対応による振り分けや問題箇所の回避を適切に行えば、新要素を使いつつ古いエンジンでも遊べるシナリオが作れます。

エリアに新要素があると、CW1.28以降でシナリオ開始時にエラーが出ることがあります(※)。
エンジンバージョン判定を行い、非対応エンジンで新要素を含むエリアを避ける方法は、絶対安全とは言い切れません。
パッケージ・バトル・カードを新要素対応用と非対応用の両方作り、エンジンバージョンによって使い分けることをお勧めします。
新機能を使わないと実現不能なもの以外は、思いきって既存の方法を採用しても良いかもしれません。
(※)補足
2013年に調査した際にはパーティーが移動しないエリアに新要素がある時にもエラーが発生していましたが、2018年の再調査ではエラーは出ませんでした。
調査には同じテスト用シナリオを使用しており、シナリオ構成が原因ではありません。
差として思いつくことはOSの違いぐらいですが(2013年はWindows XP、2018年はWindows 10(バージョン 1709))、それが原因かまでは調べきれていません。別の何かが原因の可能性も。
[▲上へ]