JOURNAL / 2026.08.08
エンジンを乗り換えている。
ただし、手では運んでいない。
開発中の『Project “Kagiroi-Zankou”(陽炎-残光)』のプロトタイプを、Godot から Unity へ移し始めました。移植で一番時間を食うのは、書き写す作業ではありません。
01 — 何を移しているか
戦闘の中核です。パリィの判定、体幹(姿勢崩し)、気迫ゲージ、攻撃の順番を管理する仕組み、機関刀の過熱、ロックオン、所持品、武器のセーブ、武器カタログ、ランダム性能の抽選、ドロップの抽選、そして戦闘数値そのものを持つ器。あわせて12のクラスです。
どれも画面にも音にも触れません。刀が何フレームのあいだ見切りを受け付けるか、体幹がいくつ削れたら崩れるか、機関刀が何秒で過熱するか——数字と、その扱い方だけが入っている部分です。
エンジンを乗り換えるとき、ここが一番先に移せます。逆に言えば、ここを先に移さないと、あとの全部が「動かしてみないと合っているか分からない」状態になります。
02 — なぜ乗り換えるのか
理由は3つに絞りました。どれも「Unity の方が新しいから」という類のものではありません。
1つ目は、手で触って詰める工程が長いこと。アクションの手応えは、値を少し変えて、動かして、戻す——これを何十回も繰り返して決まります。その工程では、エディタが落ちない・保存が巻き戻らないことが、機能の多さより重くなります。
2つ目は、IK(逆運動学)です。この作品は300種類の武器を扱うハクスラで、刀ごとに長さが違います。アニメーションは1本なので、柄の位置が変われば、両手持ちの左手が空を握ります。それを吸収するのが IK なのですが、乗り換え前の環境ではこの機能が公式に「将来変更または削除される可能性がある」と書かれていました。
3つ目は、アセットが売っている場所です。3Dモデルやモーションを扱う大手のストアは、対応形式として Unreal と Unity しか挙げていません。買った建物が1,136個あっても、持っていけなければ組み直しになります。
03 — 速さの話
エンジンの移植で一番時間を食うのは、コードを書き写す作業ではありません。「正しく写せたか」を確かめる作業です。
見た目が同じコードでも、言語が違えば挙動が変わる場所があります。四捨五入の仕方、辞書の並び順、乱数の作り方。どれも、動かしてしばらく経ってから「なんかおかしい」と気づく類の差です。
そこを人が読んで確かめると、時間がかかるうえに見落とします。だから、機械にやらせています。同じ入力を移植元と移植先の両方へ流し、出てきた値を1項目ずつ突き合わせる。直近の例では20通りの入力に対して31項目、合わせて620箇所を照合しました。「たぶん合っている」と人が判断する工程がありません。
実測 / 2026.08.08 — 武器の数値を戦闘設定へ合成する2つの関数を移した回
- 移植 + 等価性テストの新規作成 + 既存70スイートの再実行
- 約 20 分
- 等価性の照合(20 通りの入力 × 31 項目)
- 620 件 すべて一致
- 既存テストスイート
- 70 / 70 PASS
- スイートの実行時間
- 91.8 秒
数字はすべて実際に走らせて取ったものです。作業した側の申告ではなく、こちらで再実行して確認しています。
速いのは、書く手が速いからではありません。確かめる工程に人間の手番が入っていないからです。
04 — 途中で見つけた、少し面白いもの
移植したはずの計算が、どうしても一致しない箇所がありました。
調べていくと、原因は計算ではなく入力の方でした。0.016666666666666666(60分の1秒)というまったく同じ文字列を両方の言語に読ませたところ、出てきた数が違いました。64ビットの表現で、最後の2つぶんだけずれていたのです。
10進数で表示すると、どちらも同じ数に見えます。掛け算をすると、結果も「0.25」と表示されます。画面上ではまったく区別がつきません。
これは人が読んで見つけられる種類の誤りではありませんでした。そして、パリィの受付が何フレームかを1フレーム単位で詰めていく作品にとっては、放置してよい差でもありません。機械に620通り試させていなければ、半年後に「なぜか手応えが違う」という形で出てきたはずです。
05 — 書かないことについて
ここまで「機械に確かめさせている」と書きましたが、その仕組みの中身は公開しません。
わたしたちが1年近くかけて組み上げてきたのは、ゲームそのものだけではありません。AI にどこまで任せ、どこで人間が止め、何をもって「終わった」と判定するか——その体制と、そこで動いているロジックの資産です。今はこれを、うちの中に置いておきます。
出し惜しみに見えるかもしれません。ただ、小さいスタジオが大きなリングで殴り合うために持てる武器は多くありません。速さはその一つで、速さの正体は道具ではなく組み方の方にあります。
なので、この開発ブログで書くのは「何が起きたか」と「何が分かったか」です。「どう組んでいるか」は、時期が来たら考えます。
06 — 現在地
正直に書いておくと、移行先にはまだ「ゲーム」がありません。移したのは計算の部分だけで、シーンもキャラクターも入力もカメラも、まだ1つも置いていません。今この瞬間に動くプロトタイプは、乗り換え前の環境の方です。
乗り換えの計画には、古い方を消す工程を入れていません。戻れなくなった時点で、それは計画ではなく賭けになるからです。
次は、シーンとカメラを立てて、実際に刀を振れるところまで持っていきます。そこまで来たら、また書きます。
『Project “Kagiroi-Zankou”(陽炎-残光)』は、真鍮の歯車と蒸気の煙が立ちこめる不夜城『汽京』を舞台にした、クォータービューの侍アクションRPGです。作品の詳細は作品ページに。