BlenderとUnityで作ったものをVR(Meta Quest/Oculus Link)で動かします

ブログの女の子を作る #21 ボーン入れとウェイト設定1【Blender,Unity】

 
前回の記事で「テクスチャ画像」を描いて、モデリングが完成しました!
 
最初の目標は達成できたんですが、一番最初の記事「#1 作るものと三面図」では、3Dモデルを作ったあと、
> ・スカートにボーン入れてウェイト設定
> ・Unityにインポート
> ・アセット設定してスカートひらひら
を考えてました。
 
スカートだけではもったいないのと、ずっとTポーズのままというのも寂しいので、体全体を動かしてみることにしました。
 
今回は、ボーン入れとウェイト設定をしていきます。
 
 
で、やってみたんですが。。。
 
「ボーンを入れる→ウェイト設定する」だけならすぐできます。けど、その後に「動かしてみる→おかしいところがある→設定を少し変えてみる→良くなった!(または悪くなった…)」という作業が続いていくのでした。。。



参考にさせて頂いたサイト

 

(1) ボーンを入れる

基本的にBlenderでは、「体」を動かす際に、直接「メッシュで作ったオブジェクト」は動かしません。
 
まず、体の中にボーンを入れておき、ボーンと「体のオブジェクト」を紐づけます。親が「ボーン」、子が「オブジェクト」の親子関係になりますね。そして、そのボーンを動かすことで、間接的に「」を動かしていきます。そんな仕組みのようですよ。
 

上半身に入れる

追加 – アーマチュア – 単一ボーン」を選択します。
 
これが「ボーン」ですね。
太くなっている下側を「Root(根本)」、細くなっている上側を「Tip(先端)」と呼ぶようです。
 
1本ボーンを追加した後は、先端から「押し出し」でボーンを増やしていきます。
 
頭までボーンが入りました。
 
Unityにインポートすることを考えて、ボーンの名前を決まった名称にしておきます。「Head、Neck、Chest、Spine、Hips」などですね。
 

腕と手に入れる

左腕」にボーンを作っていきます。
右側は、あとから「対称化」機能でコピーするので手動では作りません。
その代わり、ボーンの名前は「Xxxx_L」のように「_L」を付けておきましょう。こうすることで、対称化した時に「Xxxx_R」という名前のボーンを作ってくれますよ。
 
指にもボーンを入れておきます。
使うかは分かりませんがとりあえず。
 
基本的には、オブジェクトで作った「関節」の単位でボーンを入れていきます。
 
一本分を作ったら「複製」して、それぞれの位置を調整するのが楽です。
 
手の指はこんな感じでしょうか。
 

関節の外側が良いらしい

動画でも説明がありましたが、関節部分の場合、外側に回転部分を持ってくると良いらしい。
 
ここら辺ですね。
こうすると、関節を曲げた時に違和感が少なくなるらしい。
 

「対称化」で反対側にコピーする

左側の「Xxxx_L」という名前が付いたボーンをすべて選択し、「右クリックメニュー – 対称化」を選択します。
 
反対側にボーンができました!
 
名前も「Xxxx_R」になってますね。
便利です!
 

下半身に入れる

下半身にもボーンを入れていきます。
 
足は「UpperLeg_L、LowerLeg_L、UpperFoot_L、UpperFoot_L」などですね。
 
これも「対称化」しておきます。
 
右側にもボーンができました。
 


(2) ボーンとオブジェクトを親子関係にする

基本となるボーンが入りました。
 
次は、「ボーン」と「体のオブジェクト」を紐づけて、親子関係にしていきます。
 

親子関係にする

オブジェクトモードで「オブジェクト」を選択し、Shiftキーを押した状態で「ボーン」を選択します。
 
オブジェクト – ペアレント – 自動のウェイトで」を選択します。
ここに出てきた「ウェイト」は、「ボーンを動かした時に、どれくらいオブジェクトを動かすか」の「重み、影響度」を意味していますよ。
 

「ボーンヒートウェイト」エラーが出た

先ほどの操作で、「ペアレント(親子関係にする)」と「自動でウェイトを付ける」を同時にやってくれる、はずなんですが、エラーがでました。
ボーンヒートウェイト:一つ以上のボーンで解決に失敗しました」らしい。
 

原因がどこかにある

どこかの頂点がおかしいのが原因なんですが、どこがおかしいかは表示してくれません。ベタな方法ですが、消去法で原因を探ります。
 
試しに、腕以外のメッシュを削除して、ペアレントしてみます。
 
できましたね。
エラーは発生せず、ポーズモードでボーンを回転させると、腕のオブジェクトも回転してくれました。
 
ということは、腕以外のメッシュに問題がありそうです。
 

クリーンアップする

という感じで探そうとしましたが、かなり面倒なので、「クリーンアップ」機能で頂点をキレイにしてみます。これで改善するとありがたい。
 
すべての頂点を選択して、「メッシュ – クリーンアップ – 孤立を削除」を選択します。
 
頂点:6個、辺:4個、面:0個を削除しました」と表示されました。
ゴミ頂点が無くなったようですね。
 
同じくクリーンアップで「大きさ0を溶解」を選択します。
 
頂点:0個、辺:6個、面:6個を削除しました」と表示されました。
更にキレイになったようです。これは期待大。
 
 

「自動のウェイトで」で動いた!

再度、「自動のウェイトで」をやってみます。
 
エラーは出なかったようです。
 
ポーズモードでボーンを動かしてみると、ちゃんと「体のオブジェクト」も動きました!
これでなんとか作業を進めれそうです。
 
ポーズを元に戻したい時は、「右クリックメニュー – ユーザーのトランスフォームをクリア」ですね。
 

(3) いろいろ動かしてみる

とりあえずボーンを入れて、「自動のウェイトで」をやってみました。
 
まずは、この状態でどんな感じで動くかを確認しておきます。
 

とりあえず動くが…

腕の関節がやや不自然。
 
まだ靴下はペアレントしてないので追随しませんが、足の曲がり具合は良い感じ。
 
親指は、回転角に問題がありそう。
 

他のオブジェクトもペアレントする

ワイシャツをペアレントしてみます。
 
オブジェクトの種類が「ワイシャツ」に変わるだけで、操作方法は同じ。
 
 
とりあえず服も動くようになりました。
「神に祈りを!」※本好きの下剋上
「神に祈りを!」※本好きの下剋上
 
動きましたが、いろいろと問題あります。
 
リボンがズレる。
 
ワイシャツの下からブラがはみ出してる。
 
スカートの形が崩れる。
スカートは「Magica Cloth(マギカクロス)」で制御するので、体の動きには追随する必要はありません。あとからウェイト消しておけばOKです。
 
まつ毛や眉毛、靴などは、単純にウェイトの付け忘れ。
 
ウェイトを付けておきましょう。
 
靴は変形しないので楽ですね。
 

余分なウェイトを削除する

顔(Head)のボーンを動かした時、リボンも動いてしまうのは、「リボンのオブジェクトにHeadのウェイトがのっているから」です。
 
Headボーンを選択してから、ウェイトペイントモードに切り替えてみると、リボンの上部に「薄い黄緑」が付いてました。
これが「ウェイト無し(青色)」になれば良いですね。
 
「ウェイト0.000」で塗ってみました。
 
リボン本体は動かなくなりましたね。
ウェイトペイントで調整する場合は、こんな感じの作業のようです。やや面倒。。。
 


(4) Unityにインポートしてみる

まだ調整は途中なんですが、この段階で一度、Unity上でどのように表示されるか確認しておきます。
 

FBXファイルに出力する

エクスポートはとても簡単です。
 
Blenderのメニューバー「ファイル – エクスポート – FBX(.fbx)」を選択して、出力ファイル名とフォルダを入力します。
 
画面右側の「オブジェクトタイプ」は、「アーマチュア」と「メッシュ」だけを選択しておきましょう。
 

Unityを起動する

私の場合、この記事で作成した環境があったので、そのまま使いました。
 
なんかいる!と思ったら、以前作成した「2頭身の女の子」でした。
スケール間違えてたので超でかい。。。
今回は関係ないので消しときましょう。
 

FBXファイルをインポートする

FBXファイルをインポートしていきます。
 
作業としては、
  1. fbxファイルをUnityにD&Dする
  2. テクスチャが入ってるフォルダをコピーする(フォルダ名はtextureとか)
  3. Rigを「Humanoid」に変える
  4. Materialsで「Extract Materials…」をクリックして、テクスチャフォルダを指定する
ですね。
 
 
動作確認しますので、適当にAnimatorのControllerを設定しておきます。
 
これで準備完了です。
 

いろいろおかしい

で、動かしてみたんですが、いろいろとおかしい。
 
・ワイシャツが小さくなってマフラーになってる
・まつ毛と眉毛がどこかに行った
・靴が脱げてる
など。
 
リボンだけは本来の位置にあるので、ギリお見せできる画像にはなってますが。
 
Blender上ではそこまでおかしくは無かったので、もしかするとFBXにエクスポートするファイルを間違えたのかも知れません。
 
そのあたりも含め、確認と調整作業を続ける必要がありそうです。
 

まとめ 

ボーン入れとウェイト設定をやってみました。
 
とりあえずUnityにインポートしてみましたが、まだまだ調整が必要なようです。けど、実際にUnity上で動くことは確認できたので、なんとかなる気もしてますよ。
 
次は引き続き「ボーン入れとウェイト設定」をやっていきます。なんか、モデリングより時間かかる予感がしてきた。。。
 
スポンサーリンク

コメント

  • トラックバックは利用できません。

  • コメント (0)

  1. この記事へのコメントはありません。

ブログの女の子を作る #20 テクスチャ画像を描く(モデリング完成しました!)【Blender】

ブログの女の子を作る #22 ボーン入れとウェイト設定2【Blender,Unity】


最近のコメント

だーしゅ
IT関係のお仕事してます。
3Dモデルの女の子は「ブログノ・スージー」。VRは楽しいですね。

[当ブログについて]