今回はリクエストがあったので、XPS形式のキャラクターを追加できるか試した方法を説明します。
まず、XPSエディタの動作環境を確認しますので、コントロールパネルを開いたら、プログラムと機能からWindowsの機能を確認し、.NET Framework 3.5が有効になっていることを確認します。
次に、MicroSoft XNA Framework Redistributable 3.0がインストールされていることを確認します。
それでは、このサイトからXPSのエディタをダウンロードして解凍します。
次に追加したいXPSキャラクターのデータを、XPSエディタが保存されているフォルダのdataフォルダに保存します。
XPSエディタを起動したら、FileのAdd Modelから追加したいキャラクターのデータが保存されているフォルダを指定し、OKボタンを押します。
この時にRootの位置が正しくない等のエラーが表示されないことを確認して下さい。
エラーが発生するキャラクターデータをそのままUE4で使用するとアニメーションが正しく動作しないことがあります。
問題なければXPSエディタを閉じます。
次にBlenderを開き、XPSをインポートできるAddOnとUE4へエクスポートできるAddOnを追加します。
今回使用したBlenderのバージョンは2.91です。
Blenderを開いたらEditメニューからプリファレンスを開き、左側のAddOnを選択します。
その後、インストールのボタンをクリックしたら、ZIPファイルのAddOnファイルを選択して、Install AddOnボタンをクリックします。
プリファレンスの左下にあるメニューで、プリファレンスを保存したら、一度Blenderを閉じて再起動します。
再起動したら、プリファレンスでインストールしたAddOnが有効になっているか確認します。
次に、ファイルメニューからインポートを選択して、追加したいキャラクターのXPSファイルを選択します。
ファイルを開いたら右側からUE4のメニューを開いて、次の設定を行います。
・ExportタイプをExport recursiveにします。
・Update collection listのボタンをクリックして、追加したいキャラクターのデータのコレクションリストのチェックボックスをONにします。
・スケルタルメッシュのチェックボックスをONにします。
ここまでできたら、左上のファイルメニューで、一旦このシーンを保存してから、Export for UnrealEngine4のボタンをクリックすると、FBXファイルが出力されます。
次にUE4でプロジェクトのインポートしたいフォルダを選択してから、出力したFBXをインポートします。
インポートするときのオプションはスケルタルメッシュにチェックをいれるのと、インポートアニメーションのチェックを外します。
全てインポートするボタンをクリックすると、スケルタルメッシュとマテリアルがインポートされますが、マテリアルはすべて白い状態でインポートされます。
外部ツールで作成したFBXをインポートするとほとんどがこの状態になると思います。
直接UE4へテクスチャをインポートしますので、マテリアルとテクスチャーのフォルダを作成して整理します。
XPSのデータが保存されているフォルダから、TGAやPNGが保存されているフォルダを探して、UE4へDrag&Dropしますが、圧縮されたDDAファイルがある場合は、UE4で使用できませんので、TGAに変換してからDrag&Dropしてください。
次にマテリアルの設定を説明しますが、各マテリアルでどのテクスチャを使用しているのかは、Blenderで確認します。
BlenderのTexure Paintタブをクリックして、右側にあるマテリアルをクリックすると、使用されているテクスチャがわかりますので、これをUE4で指定します。
マテリアルを開くとこのような状態になっているので、ベースカラーに繋がっているノードを削除してから、Texture Objectのノードを作成して、Blenderで確認したテクスチャを指定します。
その後、Texture Sampleのノードを作成して、RGBのパラメーターからベースカラーへ接続します。
さらに必要に応じて、スペキュラとノーマルへ必要なテクスチャを接続します。
この作業を全てのマテリアルに行いますが、一部のマテリアルはアルファ値を使ってMaskを指定する場合があります。
その場合は、出力されるマテリアルを選択した状態で右側にあるブレンドモードをMaskedに設定する必要があります。
全てのマテリアルの指定が完了したら、スケルタルメッシュのファイルを開いて、マテリアルの設定に問題ないか確認します。
スケルタルメッシュに問題がなければ、次にリターゲットの準備をします。
UE4のマネキンのスケルトンファイルを開いたら、リターゲットマネージャのタブを選択して、リグをHumanoidに設定します。
次にスケルトンツリーのタブを選択して、rootボーンを右クリックしたら、スケルトンを再帰的に設定します。
そして、rootとikのボーンのリターゲットオプションをAnimationに設定し、PelvisのリターゲットオプションをAnimation Scaledに設定したら保存して閉じます。
次に追加したキャラクターのスケルトンファイルを開いて、リターゲットマネージャのタブを選択したら、リグをHumanoidに設定します。
ただしその下にあるリグのマッピングが設定されていませんので、マネキンのボーンを参考にしながら、追加したキャラクターのボーンを設定してください。
ベースと詳細のマッピングの両方の設定が必要ですが、Ikのボーンはなければ、設定なしで大丈夫です。
次にスケルトンツリーのタブをクリックして、リターゲットオプションを開き、rootボーンを右クリックして、全てのボーンをスケルトンに設定します。
次に、rootとikのボーンのリターゲットオプションをAnimationに設定し、PelvisのリターゲットオプションをAnimation Scaledに設定したら保存して閉じます。
リターゲットするキャラクターのAnimBlueprintを右クリックして、リターゲットを選択します。
リターゲットするスケルトンファイルと保存場所を指定したらリターゲットボタンをクリックします。
リターゲットしたら、追加したキャラクターのAnimBlueprintのファイル名をわかりやすい名前に変更します。
今回はChar03のキャラクターとして追加しますので、Char03のブループリントを開きます。
ビューポートのタブで左側のMeshをクリックしたら、右側のMeshを一旦リセットします。
メッシュをリセットしたら、追加したキャラクターのスケルタルメッシュを選択します。
各コリジョンボックスの位置をマネキンを参考に確認して、必要に応じて修正します。
また、今回のキャラクターは背が低いのでカプセルコンポーネントの高さも少し低くしています。
次にイベントグラフのタブで、キャラクターセレクト時に使用するアニメーションを選択します。
ここがキャラクター選択前のノードで、
ここが選択された時のノードです。
最後に使用するブループリントを追加したキャラクターのブループリントに変更すれば完了ですので、コンパイルして保存しましょう。
それではゲームを実行して、キャラクターが登場するか確認します。
今回の説明は以上です。
それではまた。
はじめてコメントさせていただきます。大変参考にさせていただきました。
私はインポートしたXPSモデルに物理アセットを作成したいと考えているのですが、自動生成ではボーンの構造が違うということもあり、頭、骨盤、太ももなど大まかにしか生成されませんでした。
こちらの方法でXPSモデルをUE4にインポートした際に、物理アセットは正確に自動生成されましたでしょうか?
まずは、XPSモデルをインポートとして動かせるようになるまでの情報提供が目的でしたので、物理アセットの正確性までは正直確認していませんでした。
ただ、今回使用したモデルについては、髪の毛の束の物理アセットも作成されていたので、たまたまうまくできていたようです。
ご返信いただきありがとうございます。XPSモデルはUE4の標準スケルトンと比べると、若干の構造の違いがあるようなので、その部分で物理アセットの正確性が損なわれているようですね。髪の束の物理アセットが作られていたとの情報いただきありがとうございます。他のモデルでもいくつか試してみたいと思います。
xnalaraのgeneral meshをfbxに変換出来なくて困ってしまいました
mixamoのモーションをblenderで使いたく、xps11のas.objやコンバーターなどを使いましたが、mixamoではエラーになり困りました
いろんなツールのコンバートやエクスポートを試してみるしかないと思われます。