忍者ブログ
【備忘録】UE5に対応したスケルトンを作成する

Blenderのアドオンを使ってUE5に対応したスケルトンを作成します。
今回使わせていただくのはGameRigToolsというアドオンです。

ダウンロードはこちらから GameRigTools

アドオン作者さんのチュートリアルはこちらです。


自分のモデル制作では素体にMakeHumanを使用しているのでもともとボーンが入っています。
このボーンにGameRigToolsのボーンをぴったり合わせるように編集していきます。


GameRigToolsのボーンと重なって見えにくい場合は、MakeHumanのボーンをスティック表示にしておきましょう。




【GameRigToolsでリギングする】
GameRigToolsのタブを開き、InitiateMannequinをクリックします。


するとこんなふうに長押し、変形、Unrealの3つのボーンが追加されます。


変形、Unrealの横のモニターマークをクリックして、長押しボーンだけを表示させます。
モニターマークの横の〇をクリックしてポーズモードに入ります。


デフォルトではBodyParts、Fingersだけが表示されているので、JointTweak、FingersTweakをクリックして表示させます。


ルート(紫の四角形)を選択して、ボーンの大きさと位置を大まかに合わせます。

ルートを選択


少しサイズや位置があっていないのを


GやSで移動、拡大して合わせます。

あとは各ボーンごとに位置を修正していきます。


全部位置を合わせられたら、


ApplyRigをクリックして編集を適応します。


自分のやり方ではメッシュの親はMakeHumanのボーンになっているので、一度すべてのメッシュとMakeHumanのボーンとの親子関係をクリアします。
※MakeHumanを使用せず自分で体のモデリングをした場合、変形ボーンと自動のウェイトでペアレント化し、この時点でウェイト調整を行います。


GameRigToolsのUnrealのボーンだけを表示して、


すべてのメッシュとUnrealのボーンをアーマチュア変形でペアレント化します。


MakeHumanとUE5でボーン名が一致しているので、ウェイトペイントをやり直さなくてもこのまま使用することができます。
これでUE5に対応したスケルトンが作成できました。
PR
【備忘録】ヘアパーティクルで眉毛とまつげを作成する



Blenderのヘアパーティクル機能を使って眉毛とまつげを作成します。
板ポリで作るやり方もありますが自分はそのやり方ではきれいに作れないので毛を一本一本実際に作るやり方で作っていきます。
板ポリのほうが頂点数を少なく作れるのでそのうちそちらも習得したいですね…。



【眉毛の下書き】
ベジエカーブで眉毛のだいたいの形をかたどった下書きをしておきます。
こうしておくとヘアパーティクルで毛を植えていくときに形がとりやすくなります。




【ヘアパーティクル用のメッシュを作成する】
透過表示にしておき、投げ縄選択で目と眉毛の周りを選択します。


選択したメッシュをShift+Dで複製し、Pを押して選択で分離します。


分離したオブジェクトにパーティクルを設定します。


+を押してパーティクルを追加し、ヘアーを選択します。

※スクショを取るときにメッシュのスケールがなぜか100倍になっていたので細い毛が生えていますが、スケールが等倍ならすごく太い毛が生えてきます。

発生の数を1に、ヘアー長を0.01に、セグメントを3にしておきます。


子パーティクルの設定をシンプルにして、表示数とレンダリング時の数を1に、半径を0.001にします。


ヘアー形状の根元の直径を0.01に、直径のスケールを0.05にします。


ここから先の設定はどこまで影響しているかわかりませんが、一応参考にした動画チュートリアルの通りにしていきます。
レンダーのBスプラインにチェックを入れステップを4にしておきます。


ビューポート表示のストランドステップを4、エミッターを表示からチェックを外しておきます。




【ヘアパーティクルでまつ毛を作成する】
メッシュを選択してパーティクル編集モードに入ります。


オプションの子にチェックを入れておきます。ミラーXのチェックは外しておきます。


関係ない場所に生えている毛をXで削除してから作業を始めます。


削除できない場合は一度新しい毛を追加してから全選択して削除します。


追加ブラシを選択して毛を植えていきます。追加する毛の数は1にしておきます。
キーが多すぎると形を制御するのが大変なので、3にしておきます。




はじめは大まかに間隔を広く開けながら植えます。


くしブラシを選択してまつ毛をまっすぐに揃えます。




くしブラシの強さを0.3くらいの弱さにして、まつ毛を放射状の形状にします。


全選択していたらAlt+Aで選択を解除してからメニューの選択タブから根元を選択します。


選択を拡大で真ん中の点まで選択します。


毛の真ん中だけをくぼませていい感じのカーブを付けます。


Alt+Aで選択解除してから下まつ毛だけをすべてLでリンク選択して、下まつ毛の形状を整えていきます。


この時点で全体のバランスを整えておきます。


長さブラシを選択して伸長/収縮のうち収縮を選択します。


目頭側を少し短くするといい感じになる気がするので少し短くします。
下まつ毛は上まつ毛より全体的に短くしておきます。


追加ブラシを選択して補間にチェックを入れます。


まつ毛の隙間を一本ずつ埋めていきます。


あまり増やすと頂点数が多くなるのでこのくらいで。




【ヘアパーティクルで眉毛を作成する】
まつ毛と同じ要領で眉毛を作っていきます。
追加ブラシの補間のチェックは外しておきます。
下書きのまつげを反対側に表示しておくとバランスがとりやすいです。


眉毛をすべてリンク選択しておき、くしブラシで形を整えていきます。


角度を変えると浮いて見える部分も整えていきます。


くしブラシで撫でつけられてペタンコになってしまったら、根本を選択⇒選択を拡大した状態でくしをあてて、真ん中だけを少し浮かせます。


全体の形が整ったらまつ毛の時と同じように、追加ブラシの補間にチェックを入れて隙間の毛を植えていきます。




【メッシュに変換する】
モデファイア一覧のパーティクルシステムから、メッシュに変換を選択します。


編集モードに入り、メニューの辺から分割の復元を選択します。


復元の反復は3くらいにします。


オブジェクトモードに戻り、カーブに変換します。


編集モードに入り、根本を選択⇒選択の拡大⇒根元を選択(解除)をしてからXで頂点を削除します。


カーブのプロパティでシェイプのプレビュー解像度を1に、ベベルの深度を0.00025、解像度を1にします。
 


一旦Alt+Aで選択を解除し、最後を選択します。


平均半径を0.2にします。
※0にするとUE5にインポートした時、毛の先端だけマテリアルがはげてしまうので0にはしないでください。


シェーディングでマテリアルを設定します。


ミラーモデファイアを設定し、メッシュに変換するとこんな感じになります。
※あとから修正を加えたいときのためにメッシュ変換する前のカーブオブジェクトを複製しておいておきましょう。




【UEでのマテリアル設定】
Blenderからうまくマテリアルをインポートできない場合、このようにマテリアル設定します。


UE5で表示してみるとこんな感じです。


頂点数を気にしないなら、もっと毛の太さを細く、数を多くしてもいいかもしれません。
例によって上げ忘れていた進捗。


BlenderからUE5へのインポートがそこそこスムーズにできるようになりました。
4人とも外観はできましたが、最後に作ったトトはまだスケルトンの設定まで終わっていないので動かすことができません。

年内に習作を大まかに作ってしまいたいのですが、ちょっと間に合わないかな…。

あ。ちなみに。
9月5日の一周年でできているところまでで、こんな動画作ってました。
【備忘録】ベジエカーブで髪を作成する



Blenderでの髪の作り方はいろいろありますが、一番楽でリアルに近くできるのがベジエカーブだと思います。
今回はこちらの動画と、


こちらの記事を参考にしています。
機械系エンジニアの備忘録

ただ…。
自分のやり方ではAAAゲームのモデルのようなリアルな髪にはできていません。
同じベジエカーブを使ってもっとリアルな髪を作れている人もいるので、試行錯誤が足りないのだと思います。
もしも改善点がわかる方がいらっしゃいましたら教えていただけますと幸いです。



【髪のマテリアルを設定する】
上記の動画を参考に4つのテクスチャを作成します。
参考動画では板ポリで作成するためのチュートリアルなので複数の髪の束を作っていますが、今回はベジエカーブでざっくり作っていくので一面均一な髪のテクスチャでOKです。


動画を参考にマテリアルを設定しておきます。




【髪の断面用のベジエ円を作成する】
ベジエ円を新規作成します。
オブジェクト名を「_髪断面1」としておきます。


オブジェクトモードのままベジエ円をキャラクターの頭上に持ってきます。
作業をしやすくするためなので見やすい位置であれば頭上でなくてもOKです。


カーブのプロパティでシェイプのプレビュー解像度を1、ベベルの解像度を0にしておきます。
(片方の設定しか影響してない気がしますが念のため)
解像度を大きくするほど断面の凹凸が細かく滑らかになりますが、その分メッシュ化した時に頂点数がものすごく多くなってしまうので少な目にしておく方がいいでしょう。


編集モードに入り、すべての頂点を選択した状態で右クリックをして細分化を選択します。
これで頂点数が増えて断面の形が成形しやすくなります。
 

全体を選択したままSを押して縮小します。


表示モードを頭上からの平行投影モードにしておいて、各頂点を動かして髪の断面の形にします。

断面を複数作成して髪の部位によって毛束の形を変えることもできます。



【ベジエカーブで髪を作成する】
ベジエカーブを新規作成します。


カーブのプロパティでシェイプのプレビュー解像度を3~5にしておきます。


ベベルでオブジェクトを選択し、オブジェクトを先ほど作成した_髪断面1に設定します。


そうするとベジエカーブの断面がベジエ円で作成した形状になります。


カーブのマテリアルに上記で作成したマテリアルを設定します。




【髪を配置する】
編集モードに入り、ベジエカーブを配置していきます。
カーブの頂点をGで移動、Rで回転させながら思い通りの位置に配置していきます。


髪にねじりを加えたいときはCtrl+T。


毛束の太さを変えたいときはトランスフォームの半径の数値を変えます。


頂点数が足りないときは頂点を複数選択した状態で右クリックし、細分化を選択します。


増やした頂点の位置や回転、ねじれ、半径を調整することでより詳細に作りこむことができます。


あとは毛束をShift+Dで複製して増やし、ひたすら髪をはやしていきます。
左右対称の部分はミラーで作ると楽です。

最終的にこのようになります。
後ろの毛がはみ出ていますが、布なしの差分も想定して作っているので今はこのままで大丈夫です。

このままではエクスポートできないので髪のオブジェクトをすべて選択した状態で右クリックして変換、メッシュを選択します。
※あとから修正を加えたいときのためにメッシュ変換する前のカーブオブジェクトを複製しておいておきましょう。


メッシュ変換後、先ほどはみ出ている部分を編集モードやスカルプトモードで修正して完成です。



【UE5でのマテリアル設定】
Blender上で複雑にマテリアルを組んでいるとそのままUE5にはインポートできないので、インポート後に自分でマテリアルを設定しなおす必要があります。

BlendModeをMasked、ShadingModelをTwoSidedFoliageにします。
TwoSided、UseMaterialAttributesにチェックを入れます。
ベースカラー、ノーマル、アンビエントオクルージョンには直接テクスチャをつなぎます。
アルファテクスチャからはノードを2本出し、1本は直接オパシティに、もう一本はDitherTemporaIAAノードを介してオパシティマスクにつなぎます。
メタリック、スペキュラ、ラフネスの値をお好みで調整しておきましょう。


実際に見てみるとこんな感じです。


作るのは楽なのですがリアルさはいまいちなんですよね。
改善点等、わかる方がいらっしゃったらぜひ教えてください。


【追記(2024/09/22)】
髪の断面のカーブの形を画像のようにして、髪を形成するベジエカーブの先端の半径を0にせず太めにしておくと多少リアルな見た目になりました。
【備忘録】リアルな目のマテリアルをテクスチャ化する

Blenderでのリアルな目の作り方はいろいろな方が作り方をアップしてくれています。
自分が参考にしたのはこちらの動画です。


ただ、Blenderでリアルな目を作っても、そのままUEには持っていけない…。
UEはUEで、メタヒューマンやパラゴンモデルに使われている目のマテリアル設定の仕方があるようですが、初心者が理解するのはハードルが高いです。
そういうわけで、今回は肌や服と同じように、ベイクしてテクスチャ化してしまうことにしました。

他の皆はどうやってUEでどうやってリアルな目を表現しているのか…。
もしかしたら正しいやり方があるのかもしれません。メタヒューマンの目だけを自作モデルに持ってくるとか。
たぶん十中八九それが正しそうなのですが、自分はその方法にたどり着けなかったので…。
こんな間に合わせの方法じゃなくてもできる正しい方法を知ってる方がいたらぜひ教えてください。

しかしひとまずは正しい方法にたどり着けなさそうなので、間に合わせのやり方でやっていきます。



【目のオブジェクトを作る】
動画の中ではがんがんサブディバイドしていて、その通りに作ると片目だけで頂点数が千とか万とかいってしまうので、ゲーム内で使用するオブジェクト用に少ない頂点数で作成していきます。
今回はセグメント数16,リング数12で作っていきます。


上の画像のように編集モードで角度を90度回転させてサイズを調整したら、オブジェクトモードに戻ってこのオブジェクトをコピーします。

一つ目のオブジェクト名を「目の表面」、二つ目のオブジェクト名を「網膜」としたら、「網膜」のオブジェクトを選択した状態で編集モードに入り、「網膜」が「目の表面」よりも少しだけ小さくなるように縮小します。


「目の表面」オブジェクトの一部を突出させます。


次に「網膜」オブジェクトの虹彩部分をくぼませます。




【UV展開】
「網膜」のオブジェクトをUV展開します。
下の画像のようにシームを入れるとわかりやすいかと思います。




【マテリアルの設定】
オブジェクトモードに戻って「網膜」オブジェクトをさらにコピーし、コピーしたオブジェクトを「虹彩」と名付けておきます。

この記事の最初に紹介している動画に倣って、目のマテリアルを設定してください。
ただし動画では一つのオブジェクトに網膜・虹彩二つのマテリアルを割り当てていますが、今回は「網膜」オブジェクト、「虹彩」オブジェクトにそれぞれ目のマテリアルを設定してください。

「網膜」オブジェクトはこのように。


「虹彩」オブジェクトはこのようになっていたらOKです。




【マテリアルをベイクする】
設定したマテリアルのカラーとノーマルをベイクします。
こういう時はTexToolsが非常に便利ですね。

「網膜」オブジェクト、「虹彩」オブジェクトをコピーしてそれぞれ名前を「網膜.lp」「網膜.hp」「虹彩.lp」「虹彩.hp」に変更します。
この4つのオブジェクトを選択した状態でTexToolsを開き、「BaseColor」を選んで「Bake×2」を押します。


下のように2種類の画像が得られます。
それぞれ名前を付けて保存しましょう。


最終的に必要なのは網膜と虹彩の部分だけなので、他の画像編集ソフトで下の画像のように編集しておきます。


ノーマルも同じようにベイクします。


こちらは「虹彩」だけでOK。




【オブジェクトを整理する】
このままUEに持っていくとベイク用、マテリアルの設定用の余計なオブジェクトが含まれてしまうので、必要なオブジェクト以外は削除するかレンダリングしないようにします。
UEに持っていくのは「網膜」オブジェクトと「目の表面」オブジェクトだけです。(「虹彩」オブジェクトはいりません。)
UEでは日本語の名前があるとエラーが起きるらしいので、FBXとしてエクスポートする前に、「網膜」は「eyes」、「目の表面」は「surface」など、英語の名前に変換しておきましょう。



【UEでのマテリアル設定】
「eyes」と「surface」にそれぞれマテリアルを設定します。

「eyes」のマテリアル設定は、ベースカラーとノーマルにBlenderでベイクした画像を張り付けるだけです。
詳細タブのShadingModelをClearCoatにすると光沢のある瞳になります。


「surface」にはテクスチャがないので、ベースカラーには適当に白をつないでおきましょう。
メタリックを1.0、ラフネスを0.0、オパシティはお好みで0.05~0.1くらいに設定します。


詳細パネルのマテリアルのブレンドモードをtranslucent、透過処理のLightingModeをSurfaceTranslucencyVolumeにしておきます。





そうすると「Surface」オブジェクトがこんな透明な球体になります。
これが「eyes」オブジェクトを包む構造になっているので…。


こんな感じの目が出来上がります。

メタヒューマンやパラゴンの目と比べると微妙ですね。
でも自分のようにUEでリアルな目の設定の仕方がわからない場合はこのやり方で何とか代用できるんじゃないかと思います。
でもできれば間に合わせの代用方法じゃなくてちゃんと正しい方法で目を作りたいので、UEでの目の作り方を知ってる方がいたらぜひ教えてくださいね。
プロフィール
HN:
山乃 ゆぎと
性別:
非公開
最新コメント
[09/06 グリペン]
[07/03 くらげ]
[04/30 NONAME]

Template by Emile*Emilie
忍者ブログ [PR]