『聖剣VoM』(聖剣伝説 VISIONS of MANA、ヴィジョンズオブマナ)のMOD作成についてです。

『聖剣ToM』(聖剣3R)と同じく本作もUE4で作られているのでMODは作りやすい方なのですが、当時からUEもバージョンアップして開発側も対策を施しているようで『聖剣ToM』と全く同じ方法では作れません。
とはいえ、当時よりツール類も充実してるので単純な衣装改造ならむしろ簡単になってます。
それでもやはり分からないことも多く、作成ガイドと言えるほど解説できないのでメモレベルでまとめておきます。UEMODの作成経験があれば分かるレベルだと思います。

1.必要なもの

モデル改造もしくはモデル置換に必要なツール類。

  • Fmodel(Umodelの代わり)
  • Blender
  • EpicGamesランチャー(UE4.27)

UE Modding用のあらゆるツール類は以下に全てまとまっているのでざっとでも目を通すのがおすすめ。
UE Modding Tools - GitHub

2.参考サイト

Trials of Mana Modding - Discord
暫定的にMODDING VOMのカテゴリが整備されて『聖剣VoM』の話題もOK。
日本語チャンネルもあるので質問や情報共有はここで。

LoversLab
初期に情報はあったものの、現在はDiscordにもほとんど同じ情報がある。

●rinnegridさんのブログ
【聖剣伝説-VOM_mod】DataTable(uassetファイル)の配列に値を追加する際に変更が必要なアドレスの備忘録

●『聖剣ToM』の作成ガイド
『聖剣伝説3 TRIALS of MANA』UE4用MOD作成ガイド

●Nova77xさんのHow to mod VoM翻訳
「このゲームでは iostore を使用しているため、UnrealUnZen でのみアンパックとリパックが可能です。
ゲームのプライマリ utoc ファイルをロードし、repack files を選択し、改造ファイルのあるフォルダ (元のファイルと同じフォルダ構造) を選択します。
その後、upack/utoc/ucasを保存します。ファイル名の接尾辞にはいつも通り「_P 」を使ってください。
uassetsを読みやすいjsonで表示するには、FModelを使います。uassetsを編集するには、今のところhexエディターで行う必要がある。」

3.抽出

3.1 Fmodelでモデルやテクスチャの抽出

Fmodelの最新版をDLして「FModel.exe」を作業フォルダに置く。(作業フォルダは英語名にしておく方が無難)
Fmodelを起動(Directory→Selector)して『聖剣VoM』のインストールフォルダを指定&UE4.27を指定。

セレクターのフォルダ構成は+で追加、×で削除できる。
初期設定は特に変えていない

導入MOD含めてpakファイル等が一覧表示される。
『聖剣VoM』では主に「pakchunk0-WindowsNoEditor.ucas」を開くが他のファイルにも分散されている。
「pakchunk0-WindowsNoEditor.ucas」をダブルクリックするとフォルダツリーのタブ表示。

ここではカリナ=P002の衣装改造をする。P002フォルダを選択した状態で上のpackagesタブクリックでフォルダ内のファイル表示。
「SK_P002.uasset」がカリナの初期衣装のモデル。ダブルクリックすると右側にソースコードが表示されるとともに、モデルビューワーが開く。(モデルによっては条件不明でFmodelが落ちる)

「SK_P002.uasset」を右クリック→Save Modelで3Dモデルをpsk/pskxファイルで抽出。
Fmodel.exeを置いてるフォルダの「Output」フォルダ配下に出力される。
uasset、json、pngも抽出可能。

3.2 Umodel

Umodelでも抽出は可能。Fmodelに対して以下のメリットがあるもののFmodelに慣れると使いづらい。
また、『聖剣VoM』のアプデによりモデルビューワーが機能しなくなったためFmodel推奨。体験版なら見れる可能性はある。

  • 分割されたpakファイルもまとめてフォルダツリー表示
  • モデルを開いてoキーでアニメーションをアペンドできる(聖剣VoMアプデ後は不可、Fmodelはアペンドしてる?)

『聖剣VoM』では使わなくなったが他ゲームでは使えるためメモとして残しておく。

作者Gildorさんの公式ページからWin32 versionをDLしておく。
『聖剣VoM』ではそのままでは使えないので「Visions of Mana(ゲーム英名) Umodel」で検索するとGildorさんのフォーラムが見つかる。
https://www.gildor.org/smf/index.php?topic=9038.0

上記で案内されるトピックのLinkから「Umodel_acl_2.1」をDL。
https://www.gildor.org/smf/index.php/topic,8304.msg42970.html#msg42970

DLしたファイルを『聖剣VoM』のインストールフォルダにまとめて配置。

umodel~2.1.exeで開いて、「Visions of Mana」を選択。

赤枠でUE4とVisions of Manaを選択。

あとは『聖剣ToM』と同じように、uasset、psk、pngを抽出できる。

4.Blenderでモデル編集

Blenderを使用してモデル編集する。執筆時点最新版は4.2.2まで進んでるが、私はBlender3.0環境で実施。
pskインポーターは1項リンクにもあるUEmodding用改良版が作業量が減っておすすめ。編集→プリファレンス→アドオンで導入しておく。

Blenderを起動し、カメラ、ライト、キューブを削除。
ファイル→インポート→pskで抽出したpsk/pskxファイルを選択。

デフォルトのままでOK。元との違いはスケールダウンが非チェック、スムースシェーディング追加。

100倍サイズでインポートされるものの改良版pskインポーターにより単位スケールも変更済み。
適当にモデル編集する。キャラ置き換えならば武器収納ソケット(W***_Socket)のボーン追加が必要。(置き換え対象もBlenderに読み込みここを参考にボーン移植した)
モデルのパーツ単位で選択するときは左上「編集モード」で頂点クリックして「Ctrl++」連打すると楽。

右側アウトライナーの名称(赤枠)は改良版pskインポーターにより全て自動的に変換されてる。最上位はArmature、各名称のピリオド以降は消された状態。

アウトラインの追加方法(dayさんからの情報提供)

①アウトライン用のマテリアルを新規追加
②対象のメッシュを選択して複製
③アウトライン用マテリアルに複製したメッシュを割り当て
キャラのアウトラインが追加。実施するかどうかは各自おまかせ。

モデル編集したらファイル→エクスポート→fbxでfbxファイルとして出力。
スケール1.00(改良版のため)、アーマチュアのリーフボーン追加のチェックを外す、アニメーションをベイクのチェックを外す。『聖剣ToM』と同じ。

モーフ結合などが不要なので『聖剣ToM』と比べて簡単。

5.UE4でパッケージ化

Epic GamesランチャーのUnreal Engine→「ライブラリ」タブ→Engineバージョンのドロップダウンリストから「4.27.2」をインストールして起動。
ゲームのプロジェクトを新規作成→Blankプロジェクト→スターターコンテンツなしプロジェクト名「VisionsofMana」でプロジェクト作成。(プロジェクトは英語フォルダ配下に作る方が無難)

Blankプロジェクト
プロジェクト名はゲームフォルダと同じ方がいいらしい。一応本作ではMyProjectで作ったMODも動作することは確認済み。

初期設定を変更する。『聖剣VoM』ではチャンクIDが重要となる。
編集→エディタの環境設定→実験段階で「チャンクIDへの割り当てを許可」

編集→プロジェクト設定→パッケージ化で3つにチェック。ビルドコンフィキュレーションをshippingに変更。

Fmodelを見ながらフォルダツリーを作っていく。
今回はカリナの衣装を改造するので作ったP002フォルダにBlenderで出力したfbxをドロップ。

メッシュの詳細設定を表示して赤枠のように変更して全てインポート。『聖剣ToM』と同じ設定。

Fmodelを見ながら以下を実施。
・マテリアルの移動(毎回やる)
・PhysicsAssetを右クリック→複製してShadowPhysicsAsset(同キャラなら以降流用可能)
・各ファイルのリネーム
・共通スケルトンもリネームして移動(以降モデルダブルクリック→いいえで全キャラ流用可能)

ファイル移動やリネーム後。赤矢印でフォルダツリー表示

モデルSK_P002をダブルクリックして物理を割り当てる。
P001=ヴァルをP011=ライザに置き換えた場合は、スケルタルメッシュにABP_clothを割り当てないと髪や服など揺れ物が動かなかったので正解は分からない。ABPはフォルダ内右クリック→アニメーション→アニメーションBPで作れる。
また、別キャラ置き換えでは現状表情が動かない。

同キャラ置き換えなら赤矢印のABPは指定しなくても揺れ物や表情は動く。

モデルSK_P002を右クリック→アセットアクション→チャンクに割り当てから任意の番号を付ける。
複数モデル置き換える場合は複数の対象モデルに同じIDを割り当てる。本作では衣装が精霊器依存、クリア後は基本的に初期衣装固定となるので初期衣装とDLC衣装を置き換えた方がいいかも?
IDは0~300まで。0と1はゲーム側で使用。(Novaさんは500以上のIDを使っているがどうやった?)
同一IDのMODが存在するとFatal Errorで落ちる。(確定?)

ファイル→プロジェクトをパッケージ化→Windows(64bit)でパッケージすると指定フォルダ配下に8つのファイルができる。
そのうち指定したチャンクIDの3ファイルが作成したMOD

今回はチャンクID51としたのでファイル名に51がある3ファイルがパッケージ化。

パッケージ後はプロジェクトを「全て保存」しておくと何度も流用できる。
『聖剣VoM』のモデルMODではリパック作業は不要。

6.リネームしてMOD導入

チャンク付きの3つのファイルをゲームの「~mods」フォルダにコピー。
MODとして読み込まれるにはファイル名末尾「_P」が必須。チャンク被りを防ぐためにIDは分かるようにしておいた方がいい気がする。

末尾を_PにリネームしてMODの動作確認。

今回完成したMODはNexusへ投稿済み。Nexusへの投稿方法は『聖剣ToM』のガイド参照。
質問などはDiscordへ。
-2024/9/26

7.BlenderとUEを使わないモデルスワップ

UE製のゲームによってはBlenderとUEを使わずともモデルスワップ(置き換え)を作ることができる。
『鬼滅の刃』で作った際にメモを残していたが、参照先としていた海外ガイドの画像が消えてしまっていた。
関連記事:『鬼滅の刃 ヒノカミ血風譚』UE4用MOD作成補足メモ

今回、『聖剣VoM』でもBlenderとUEを使わずにモデルスワップして作成ガイドとして残しておくつもりだったが結果的にはできなかった。しかし、色々調べた結果とモデルスワップの方法は簡単に残しておく。

例:P011ライザをP001ヴァルに置き換える手順。
①FmodelもしくはUmodelで対象2キャラのモデル「SK_P***.uasset」を抽出。
②抽出したP011のuassetをP001のフォルダに移動。
Uasset Editor(AssetEditor.exe)もしくはUAssetGUIでP011のuassetを開く。
『聖剣VoM』ではUAssetGUIで開けない。また、手持ちのUasset Editorで開くことはできてもUE4.26までのため保存できずUE5対応版が開発中で現状DLできない。
④Header List上部のファイルパスをP001のパスに修正&下部にあるファイル名のみのエントリをP001に修正して保存。
⑤uassetファイルを「SK_P001.uasset」にリネーム。元の「SK_P001.uasset」は削除。
⑥UnrealPakなどでリパック。

上部にあるファイルパスを置き換え対象先に変更。右上でUEバージョンを選択。
下部にあるファイル名のみを変更。

理論上はUE製ゲームは全てこの方法でモデルスワップできるはず。しかし、ゲームの作りによっては置き換えたモデルが崩れたりするので「質の悪い」MODとなることが多い。GameBananaではこの方法で作ったMODの投稿はNGらしい。
モデルスワップについてはここまで。

ここからは『聖剣VoM』のuassetが読み込めない理由の調査。
色々調べるとUE5以降はFmodelやUAssetGUIで読み込むには「Mappings.usmap」というファイルの設定が必要らしい。『聖剣VoM』はUE4.27だがこれが原因かもしれないと思って調べていた。
「Mappings.usmap」はUE4SSを使って抽出するか人気タイトルならどこかに落ちてたりする。『聖剣VoM』ではusmapを抽出することができなかったためuasset編集は諦めた。仮に抽出できたとしてもNovaさんの言う「iostoreを使用している」と直接編集は無理なのかもしれない。

以下は『Ready or Not』におけるModdingガイドであり、「Mappings.usmap」についてや、UEmoddingの基礎的な情報も載っていて参考になる。
https://unofficial-modding-guide.com

また、『パルワールド』(UE5製)の5chスレにおいて、画像付きで「Mappings.usmap」の設定&抽出方法やUAssetGUIを使ったシステムMOD(数値変更)の作り方が分かりやすく解説されている。(レス番0809、0840)
https://itest.5ch.net/fate/test/read.cgi/gamef/1707536753

-2024/10/2

↑いいね貰えると励みになります