はじめに
Cemu上で動かしているSplatoonの射撃場に、マリオカートWiiのルイージサーキットをステージとして移植してみたので備忘録として残します。
Splatoonの射撃場のステージデータを吸い出すには、Aroma / TiramisuなどでCFW化したWii U実機が必要です。CFW環境からDumplingなどを使い、所持しているソフトのゲームデータをCemu用の形式で吸い出します。Wii U本体を持っていない・改造していない場合は、まずそちらの準備が前提になります。
CFWやエミュレーター使用による、違法DL・違法プレイなどを助長する記事ではありません。また、回りくどい方法でやってるかもしれません。
環境
- Cemu 2.6
- Dolphin
- Blender 3.3 LTS
- Switch Toolbox
- Wiimms SZS Tools
- Uwizard.Woomy
BlenderではなくMayaやSketchUp、3DSMaxでもできると思います。
マリオカートWiiのモデル形式はBRRES、SplatoonはBFRES、と違うフォーマットになります。このため「BRRESをBlenderで読み込み → 汎用形式で書き出し → BFRESとして再構築する」という変換が必要になり、その過程でBlender 3.3(BerryBushアドオン)が必要になります。
全体の流れ
- マリオカートWiiのISOからコースデータを抽出
- Wiimms SZS ToolsでYAZ0/SARCを展開
- Blender(BerryBush)でBRRESをインポート
- スケール調整・頂点数の最適化
- Switch ToolboxでBFRESへ書き出し
- KCL(当たり判定)の設定
- Uwizard.Woomyで再パック、Cemuへ配置
1. コースデータの抽出
Dolphinエミュレータで対象のISOを開き、Filesystemタブからbeginner_course.szs(ルイージサーキットのコースデータ)を取り出します。
wszst EXTRACT beginner_course.szs
展開するとcourse_model.brresが出てきます。これが今回インポートするモデル本体です。
2. Blenderへのインポート
BerryBushアドオンはBlender 4.xには対応していないため、Blender 3.3 LTSで作業します。File → ImportからBRRESインポートを選び、course_model.brresを読み込みます。
3. スケール調整と頂点数の最適化
まず頂点数が15,000以下ぐらいだと安全らしいので、元の17,066頂点から花などを削除して13,789頂点に削減しました。
とりあえず移植したかったので、スケールはとりあえず元のスケールを1/10倍にしました。
スケールは好きなように調整してください。
また、原点をコースの上にしておかないと奈落でリスポーンすることになります(射撃場の場合)。
Blenderで拡大縮小・移動をした後は、必ずCtrl+Aで適用しておかないと、書き出し時に数値が正しく反映されないので注意してください。
4. マテリアルの単一化
すべてのオブジェクトに単一のマテリアルを割り当てます(対象を全選択してCtrl+L→マテリアルをリンク)。
5. Switch ToolboxでBFRESへ書き出し
BlenderからDAE形式でエクスポート(Triangulateにチェック)し、Switch ToolboxでSplatoon側のBFRESにインポートします。
6. KCL(当たり判定)の設定
BlenderからOBJ形式で書き出し(Triangulate必須)、Switch ToolboxでKCLをReplace。Game SelectでSplatoon 1を選び、Preset Editorで地面用の属性値を設定します。
わかった知見・注意点
- 塗装可能な範囲には上限(キャンバスサイズ)があるらしく、ステージが大きすぎると一部が塗れなくなる。
おわりに
続きは今度書きます。