忍者ブログ

お知らせや近況報告

【備忘録】絵しか描けない人間がBlenderでモデルを自作してUE5で動かす

絵が少し描けるくらいの自分がBlenderで自作モデルを作ってUE5であれこれするまでのノウハウをまとめていきます。
同じようにイラストクリエイターから3Dを始めたい方の一助になれば幸いです。




使用しているバージョンはBlender4.0、UnrealEngine5.4です。

ちなみにこちらでまとめているのは我流のモデル作成手法になります。
自分は一から十まで自力で作らず、体のモデリングはMakeHumanというソフトを利用しているので、全身のモデリングとリトポロジーも自力でやりたい方はその部分だけご自身で調べてくださいね。
MakeHumanを使用している理由は、体のモデリングとリトポロジーも全部ひとりでやっていたら時間がかかりすぎるしモチベーションが持たないから…。
あと単純にリトポロジーが苦手だからです。

大まかな作成の流れを説明していく予定ですが、BlenderとUEの基本操作や用語解説はありません。基本操作・各用語についてはそれぞれ調べてみてください。
外部にすでに優れたチュートリアルがある場合はそちらへのリンクで済ませているものもあります。
記事ができ次第以下のリストにリンクを追加していきます。
目次は記事を書いているうちに増減するかもしれないです。





【備忘録】Blenderでモデルを自作してUE5で動かす

①モデリング
 ∟スカルプト
 ∟リトポロジー
 ∟髪のモデリング
 ∟目のモデリング
 ∟眉毛とまつげのモデリング
 ∟服のモデリング
 ∟UV展開

②質感・細部の制作
 ∟マテリアル設定
 ∟シワなどのディティールの作成
 ∟ディティール・マテリアルのベイク

③リギング・スキニング
 ∟UE5対応スケルトンの作成
 ∟ウェイトペイント

④エクスポート・インポート
 ∟Blenderからエクスポート
 ∟UE5にインポート
 ∟マテリアル検討記録

⑤物理設定
 ∟物理アセット
 ∟クロスシミュレーション
 ∟リジッドボディ

⑥アニメーション
 ∟アニメーションリターゲットとアニメーションブループリントの設定
 ∟コントロールリグとシーケンサを使用したアニメーションの改造
 ∟ブレンドシェイプで表情を付ける その①
 ∟ブレンドシェイプで表情を付ける その②
PR

【備忘録】IKを使ってNPCと握手する【下書き】

アンリアルエンジンで、何らかのキーを押すと握手などのNPCのボーンをターゲットにしたエモートを行えるようにする方法です。
詳しく説明する気力がないのでとりあえず下書き状態ですがノードを公開していきます。


【備忘録】IKを使ってNPCと握手する

こんな感じで、NPCとの距離に誤差があっても右手同士が接触するように設定していきます。
あんまり近いとプレイヤーとNPCの体がめり込むので適当にコリジョンを設定しておきましょう。


【ブループリントインターフェース】
Talkという関数を設定したブループリントインターフェース(以降BPI)を作成します。
このBPIを親となるNPCのインターフェースに設定しておきます。
これで子NPCを作成してNPCを複数設置することができます。


【アニメモンタージュの作成】

カーブを追加し、手を差し出して引っ込めるところの値が1.0になるようにします。
アニメーションはMixamoからダウンロードしました。
カーブの作り方は参考資料①を参照してください。


【プレイヤーのアニメBPの設定】
・イベントグラフ側

GetAllActorsOfClassに親NPCを設定し、子NPCの中から一番近いNPCを検索して、手のボーン位置を取得します。


アニメモンタージュのカーブの値をAlphaとして取得します。


・アニメグラフ側

FABRIKで制御するボーンを設定します。
手のボーン位置とアニメモンタージュのカーブ値を入力ピンに入れておきます。
FABRIKの使い方は参考資料の②を参照してください。


【NPCのアニメBPの設定】
・イベントグラフ側

プレイヤーの手のボーン位置を取得します。
※LookatLocationは先述の「近づくと見つめてくるアクタ」制作のための変数なので今回は設定しなくてOK


NPCのほうでもアニメモンタージュのカーブの値をAlphaとして取得します。


・アニメグラフ側

FABRIKで制御するボーンを設定します。
手のボーン位置とアニメモンタージュのカーブ値を入力ピンに入れておきます。


【プレイヤーBPの設定】

Enterを押すと近くのアクタを検索し、BPIが実装されていたらその中で一番近いアクタに対してイベントを実行するというものです。
BPIの詳細は参考資料③を参照してください。
試作ではアニメーションと会話を同時に行うようにしていたので余計なものがついていますが、呼び出すBPIはTalkだけでOKです。


【親NPCイベントグラフの設定】

長いし読みにくいけど頑張って読んでください…。
BPIを利用して、エンターを押すと、プレイヤーの操作を無効にして、プレイヤーとNPCが向き直って、握手のアニメーションを再生して、NPCの向きだけが元に戻って、プレイヤーが動けるようになる。
…という流れです。
大元から色々削ったり追加したりしていますが、この流れの作り方は参考資料④を参照してください。


まとめる気力がなかったので抜けがあるかも…。
気が向いたらちゃんと推敲して書き直します。


【主に参考にさせていただいた資料】
Unreal Engine 5: CCDIK
UE4 IKを使ってリアルタイムにボーンを制御してみる
【UE4・UE5】〈Tips〉使わないのはもったいない!ブループリントインターフェースを日本一分かりやすく解説する試み
RPGでよくある会話システムを作ろう!!キャラクター構成編[ UE TURORIAL ]

【備忘録】近づくと見つめてくるアクタ

2か月くらい前からUE5をはじめてます。
まずは簡単な習作を作ろうといろいろ調べていく過程で、思いついたことや試したことをネットの海に流していきます。

LookAtでプレイヤーを見つめてくるアクタの作り方は公式のドキュメントにも解説があるのですが、「ある程度近づくと見つめてくる」アクタの作り方は調べても見つけられなかったので試してみたものをメモしておきます。

【備忘録】近づくと見つめてくるアクタ
文章で説明するより実際のノードを見てもらうのが早いと思うので画像を貼っていきます。



【アニメBPイベントグラフの設定】
まずはアクタに設定するアニメBPのイベントグラフ。


下のほうは公式でも説明がある部分です。ここでプレイヤーの位置を取得します。
上のほうが今回のメイン「近づくと」を設定する部分です。

新しく「ActorPlayerDistance」という名前でfloat変数を作成し、IsValid?を挟んでセットします。
※IsValid?がないと動作はしますがエラーが出ます。
アクタとプレイヤーの距離を取得し、取得した値を割り算(divide)の下のピンにつなぎ、上の数値には「このくらいの距離まで近づいたら見つめてきてほしい」という値を設定します。
※例では100にしています。
割った値を「ActorPlayerDistance」としてセットします。



【アニメグラフの設定】
アニメグラフで設定した「LookAt」のAlphaに先ほど設定した「ActorPlayerDistance」をつなぎます。


例では頭・胸・腰の三か所にLookAtを設定しています。



【結果】
近づくと見つめてくるけど…


離れると視線を外す。


そんなアクタができました。



【追記:LookAtを複数設定した場合の角度補正について】

「LookAt」を複数に設定すると微妙に目が合わない事に気が付きました。
画像の例では首と目に「LookAt」を設定しています。

…これはおそらく、プレイヤーがアクタから見て10°の位置にいる場合、首と目の両方に10°の回転がかかり、結果的に20°の回転がかかってしまっているせいだと思います。

というわけで、下の画像のようにAlphaにつなげる変数を「LookAt」の数だけ除算します。
※画像の例ではノードは3つですが、左右の目の回転は影響しあわないので1つのノードとして考え、2で除算しています。



除算することで各ボーンの回転が修正されて、ちゃんと目が合うようになりました。




二人目

blender進捗。
二人目ができました。
一人目は調べながら、何度もやり直しながらだったので2~3か月かかりましたが今回は1週間くらいでここまでできました。



まとまった時間が取れなかったので出力やアニメーション、UEのダウンロードはまだできていませんが、次はUEを触っていきたいなあと思っています。

【備忘録】ヘアパーティクルで作った髪を大きな印象を変えずになるべく楽にメッシュに変換する方法

去年の11月末からblenderをはじめて右も左もわからない初心者ですが、偉大な先達が公開してくれる参考資料のおかげで何とかなっています。
貴重な記述を公開してくれる先達には本当に感謝を申し上げたい。

もしかしたら超初心者の自分だけど、思いついた事や試したことをネットの海に流していけば、誰かの助けにはなれなくてもヒントになれるかもしれないと思い備忘録をしたためます。



【備忘録】ヘアパーティクルで作った髪を大きな印象を変えずになるべく楽にメッシュに変換する方法




というわけで、まずはヘアパーティクルで作ったこちらの髪を、


こんなふうに大きな印象を変えずになるべく楽にメッシュ変換する方法




【ヘアパーティクルで髪を作る】

まずはこちらの動画を参考にして髪の毛をはやします。




【ヘアパーティクルをメッシュに変換する】

いったん子パーティクルの表示数を「1」に減らしてから 、

メッシュ変換を行います。


そしたら次はこちらのサイトを参考にしてメッシュをカーブに変更します。
【–GRAPH 3D】Blenderのヘアーパーティクルをメッシュに加工する

カーブの面の向きをそろえるところまで出来たらまだメッシュ変換は行わず、カーブの形状を変えていきます。

シェイプからフィルモードを「ハーフ」にして、


ベベルから「断面」を選び、深度を「0.01m」に、断面の形状を画像のようにします。


するとカーブの断面が三つ折り重なって元のヘアパーティクルに近い立体感が出ます。


まだメッシュに変換しません。
「選択>最後を選択>選択を拡張」を利用して髪の房の先端から2~3点を選択し、


トランスフォームから平均半径を調整して、房の先端を尖らせます。


1~3つ目までを選択した状態で平均半径を0.5に、
「選択を縮小」して1~2つ目までを選択した状態で平均半径を0.25、
さらに「選択を縮小」して1つだけ選択した状態で平均半径を0にするとちょうどよくなります。


ここまで出来たらメッシュに変換してスムーズシェードをかけておきます。




【髪のマテリアル設定】

こちらの動画を参考に髪のテクスチャを作り、マテリアル設定をします。


参考動画のように細い房をいくつも作りません。
作るのはこんな感じの一枚です。
※同じマテリアルでまつ毛と眉毛も作ったので右端に髪じゃないテクスチャがありますが、髪だけ作るなら全面髪にしてしまってOK。


UVエディタに入ってメッシュ変換した髪を全選択するともうすでに展開が済んで、すべての房がぴったり重なって表示されているので、すべてのUVを重ねたまま髪のテクスチャとサイズを合わせます。

ただし、そのままだとテクスチャの向きが90度傾いてしまっているのでUVのほうを90度回転させて修正します。

するとこんな感じで出来上がります。


編集モードやスカルプトモードで整えて、光沢の調整をしたたものがこちら。




以上、ヘアパーティクルをなるべく楽にメッシュに変換する方法でした。
参考になった、あるいはもっといいやり方があるよという場合は教えていただけると嬉しいです。

プロフィール

HN:
山乃 ゆぎと
性別:
非公開

最新コメント

[09/06 グリペン]
[07/03 くらげ]
[04/30 NONAME]