MRが楽しい

MRやVRについて学習したことを書き残す

HoloLens用のオリジナルモデルを作成する その25(基本ポーズの変更)

本日はホロ恋子モデルの作成枠です。
前回、ホロ恋子モデルの適切なボーン構造を考えるため、UnityのMecanimHumanoidについて調べました。
blogs.unity3d.com

このページに、モデルのポーズについて以下の指定がありました。
・Tスタンスについて
 - Z軸方向に向かって、まっすぐに立っていること
 - 頭および目がZ軸方向に向いていること
 - Z軸に対して平行に、両足が接地していること
 - X軸に沿って地面に対し平行に、両腕が開いていること
 - X軸に沿って地面に対して平行に、両手は平らにし、かつ手のひらは下向きであること
 - X軸に沿って地面に対して平行に、各指(親指を除く)はまっすぐに伸ばしていること
 - 親指は、X軸とZ軸に対して半分ぐらいの角度(45度)で、かつ地面に対して平行にまっすぐに伸ばしていること

実際にはUnity上でHumanoidリグを適用した時点で、このポーズの状態に補正されます。
このため、必ずしもこのポーズでモデリングしないといけない訳ではありません。
f:id:bluebirdofoz:20180609191005j:plain

今回は学習の意味合いも込めてTスタンスに基本ポーズを修正します。
当然ながらこの修正を実施すると、以降は下絵との整合性が取れなくなるので注意です。

基本ポーズを変更するには、アーマチュアのボーン構造とメッシュの頂点構造の両方を変更する必要があります。
アーマチュアとメッシュのウェイト付けを行った状態で、「ポーズモード」で変更したいポーズに変形します。
f:id:bluebirdofoz:20180609191020j:plain

左右対称なポーズの作成方法は以下を参考にしてください。
bluebirdofoz.hatenablog.com

ポーズを決定したら、まずはメッシュオブジェクトの「アーマチュアモディファイア」を適用し、メッシュの変形を確定します。
f:id:bluebirdofoz:20180609191054j:plain

次に「ポーズモード」に戻り、メニューから ポーズ → 適用 → デフォルトのポーズに適用 でアーマチュアの変形を固定します。
f:id:bluebirdofoz:20180609191105j:plain

最後に、メッシュオブジェクトに再び「アーマチュアモディファイア」を適用して完了です。
f:id:bluebirdofoz:20180609191116j:plain

肩回りは自在に動くこともあり、ウェイトの調整が非常に難しいので色々な動かし方をして確認しましょう。
f:id:bluebirdofoz:20180609191128j:plain

HoloLens用のオリジナルモデルを作成する その24(UnityのHumanoidMecanim)

本日はホロ恋子モデルの作成枠です。
ホロ恋子モデルの適切なボーン構造を考えるため、UnityのMecanimHumanoidについて調べました。
blogs.unity3d.com

前々回、リグの元データとしてRigifyアドオンのHumanリグを利用しました。
bluebirdofoz.hatenablog.com

しかし構成をよくよく見てみると、この Human(Meta-Rig) と Unity で用いられる humanoid リグとは僅かにボーンの構成が異なるようでした。
今後、ホロ恋子のモデルは Unity で活用することを考えると、Blender の標準に合わせるよりも、Unity の標準構成に合わせておきたいところです。

多くのリソースが存在すると考えられる Unity ちゃんのモデルを元にボーンの構成を確認してみました。
f:id:bluebirdofoz:20180608070937j:plain

ボーン構造は大きく分けて、Body、Head、Handの三つの部分に分かれています。
HumanoidMecanimで共通化されているボーン構成についてキャプチャしました。
・Body
f:id:bluebirdofoz:20180608070949j:plain

・Head
f:id:bluebirdofoz:20180608070957j:plain

・Hand
f:id:bluebirdofoz:20180608071007j:plain

実際にUnityちゃんの FBX ファイルを Blender に取り込んで確認した結果もキャプチャしました。
ただし、Blenderだと正常に読み込めない様子でボーンの繋がりやメッシュがおかしくなっています。
・体全体
f:id:bluebirdofoz:20180608071019j:plain

・手拡大
f:id:bluebirdofoz:20180608071031j:plain

Unityちゃんのボーン構造を元にホロ恋子モデルのボーン構造も見直しました。
特に手の構造と背骨の構造が異なっているので修正が必要です。
f:id:bluebirdofoz:20180608071044j:plain

注意点として、Unityちゃんモデルは、2番目の背骨ボーン(Spine)がHumanoidリグでは使われません。
f:id:bluebirdofoz:20180608071056j:plain
理由はわかりませんが、流用性のため、Unity取り込み時には同様のボーン構成になるようにしておきます。

参考
japan.unity3d.com
shade3d.jp

blenderで左右対称のポーズを作る

本日はBlenderの技術調査枠です。
ホロ恋子モデルを参考に、左右対称にポーズを変更する方法についてまとめます。
f:id:bluebirdofoz:20180608070753j:plain

ボーンの「編集モード」には「Xミラー」機能がありますが、「ポーズモード」にはありません。
このため、「ポーズモード」で左右対称なポーズを作成するにはボーンのトランスフォームのコピーを行う必要があります。

最初に、片方のボーンを走査し、ポーズを変更します。
そのまま変更頂点を選択した状態で、メニューにある「ポーズのコピー」ボタンをクリックします。
f:id:bluebirdofoz:20180608070804j:plain

対象コピーを行いたいボーンを選択し、「ポーズのペースト」ボタンをクリックします。
f:id:bluebirdofoz:20180608070818j:plain

この手順を各ボーンに行うことで左右対称なポーズの作成が可能です。
因みに複数ボーンをまとめてコピーすることも可能です。
f:id:bluebirdofoz:20180608070826j:plain

Blender2.9での手順

Blender2.9における同様の手順は以下の記事を参照ください。
bluebirdofoz.hatenablog.com

Blenderでメッシュをワイヤーフレームで描画する

本日はBlenderの技術調査枠です。
Blenderでメッシュをワイヤーフレームで描画する方法についてまとめます。
f:id:bluebirdofoz:20180607024007j:plain

UV球をサンプルに実施してみます。
ワイヤーフレームの描画方法は大きく分けて二つあります。

一つはマテリアルの設定でワイヤーフレームのみの描画とすることです。
ワイヤーフレームを描画したいオブジェクトを選択し、マテリアルタグを開きます。
マテリアルタイプを「ワイヤーフレーム」に変更します。
f:id:bluebirdofoz:20180607024022j:plain

この状態でレンダリングすると、対象のオブジェクトがワイヤーフレームで描画されます。
f:id:bluebirdofoz:20180607024032j:plain
ただし、こちらの方法はワイヤーの太さを任意に変更できません。

ワイヤーの太さを変更したい場合は、オブジェクトのメッシュ自体をワイヤーに変更する方法を利用思案す。
ワイヤーフレームを描画したいオブジェクトを選択し、「編集モード」を開きます。
メニューから メッシュ → 面 → ワイヤーフレーム を選択します。
f:id:bluebirdofoz:20180607024041j:plain

すると、メッシュがワイヤーフレームの形に修正されます。
変更直後であれば、ツールシェルフの設定で線の太さが変更できます。
f:id:bluebirdofoz:20180607024056j:plain

この方法でレンダリングすることで、線の太さを自由に決定できます。
f:id:bluebirdofoz:20180607024108j:plain
こちらの場合、実際にメッシュを変形しているため、頂点数が大きく増えます。
レンダリングの負荷が上がるため、用途に合わせて使い分ける必要があります。

HoloLens用のオリジナルモデルを作成する その23の2(指関節のトポロジとウェイト)

本日はホロ恋子モデルの作成枠です。
体のウェイト付けについての小ネタです。
アニメーションを確認し、手の関節をトポロジを見直しました。
f:id:bluebirdofoz:20180606234504j:plain

ループカットで作成していた指の関節について、以下のように修正ました。
外側を3つの頂点に、内側を2つの頂点に分割します。
f:id:bluebirdofoz:20180606234519j:plain

更にボーンは指の中心ではなく、なるべく指の上部を通すようにしています。
f:id:bluebirdofoz:20180606234534j:plain

こうすることで、指を曲げるアニメーションを行ったとき、より現実に近い変形を行うようになります。
f:id:bluebirdofoz:20180606234544j:plain

この辺りはネットの情報や既存モデルのトポロジを見ながら技術を盗みつつ作成しています。
書籍として、ノウハウがまとまった本がほしいところです。
f:id:bluebirdofoz:20180606234558j:plain

HoloLens用のオリジナルモデルを作成する その23(指定オブジェクトへの自動ウェイト)

本日はホロ恋子モデルの作成枠です。
リグへのウェイト付けを実施していきます。
今回は作業を簡略化するため、自動ウェイトの機能を利用してみます。
f:id:bluebirdofoz:20180604084552j:plain

ウェイト付けの事前準備に、アーマチュアの関連付けを実施しておきます。
関連付けるオブジェクトを全て全て選択し、最後にアーマチュアオブジェクトを選択した状態にします。
Ctrl+Pキーまたは「オブジェクト」→「親」から「アーマチュア変形」を実行します。
f:id:bluebirdofoz:20180604084601j:plain

するとオブジェクトの親子関係の関連付けと、各オブジェクトへのアーマチュアモディファイアの追加が行われます。
このときの注意点として、アーマチュアモディファイアは各オブジェクトの一番最後に追加されます。
細分割曲面モディファイアと辺分離モディファイアのところでも説明しましたが、モディファイアは上から順に適用されます。
メッシュの加工は変形後に行いたいため、アーマチュアモディファイアはこれらの上部に配置しておきます。
f:id:bluebirdofoz:20180604084610j:plain

次に、自動ウェイトである程度オブジェクトのウェイト付けを実施していきます。
しかし全てのオブジェクトとボーンに対して一括で自動ウェイトを実施すると、意図しないウェイト付けが多発します。
特に今回は、HMDオブジェクトについては管理するボーンを完全に切り分けたいところです。

よって、今回はボーン毎の自動ウェイトを実施します。
HMDオブジェクトで試してみます。
最初に「ポーズモード」でウェイト付けを行いたいボーンを選択します。
f:id:bluebirdofoz:20180604084620j:plain

その状態で、ウェイト付けを行いたいオブジェクトを選択し、「ウェイトペイントモード」に入ります。
メニューから ウェイト → ボーンから自動割り当て を実行します。
f:id:bluebirdofoz:20180604084629j:plain

こんな感じで自動で目的のオブジェクトとボーンにのみ、ウェイト付けされました。
f:id:bluebirdofoz:20180604084638j:plain

しかし、あまり意図したウェイト付けにはなっていなかったので、結局は手動で設定することになりました。
もしかしたら、もうちょっと上手い利用方法があるのかもしれません。
f:id:bluebirdofoz:20180604084647j:plain

HoloLens用のオリジナルモデルを作成する その22(Humanリグ)

本日はホロ恋子モデルの作成枠です。
クリース、シャープ付けも完了し、モデリングが完了したので、今回からリギングに着手します。
細分割、スムーズを掛けた状態でレンダリングしてみました。
最後には、改めて低ポリゴンに落とし込むので、完成系はこれより荒くなります。
f:id:bluebirdofoz:20180603021827p:plain

書籍課題ではボーン構造を自作しましたが、今回はRigifyアドオンのHumanリグを利用します。
以下の記事のときに使ったアドオンです。
bluebirdofoz.hatenablog.com

アドオンを設定すると、メニューから 追加 → アーマチュア → Human(Meta-Rig) で利用可能です。
f:id:bluebirdofoz:20180603021846j:plain

注意点として、Blender 2.79 から Pitchipoy と Meta-Rig が統合されているため、2.78 以前と 2.79 以降ではこのとき、追加されるリグの構造が異なります。
dskjal.com
今回は 2.79 の環境を利用しています。

リグが追加されたら、ボーンタグを開いて「表示」の設定を変更します。
書籍課題で実施したときと同じように「スティック」表示で「レントゲン」を有効にしました。
f:id:bluebirdofoz:20180603021909j:plain

後はアーマチュアオブジェクトの編集モードから、ボーンの大きさを変更し、体の大きさに合わせていきます。
Human(Meta-Rig)はボーンレイヤの設定なども予め行われているので、必要なボーンを分けて表示させて編集できます。
f:id:bluebirdofoz:20180603021923j:plain

今後、作成したアニメーションを別モデルに流用できることを期待して、顔ボーンもそのまま活用します。
今回はモーフによる表情作成は行わない予定です。
f:id:bluebirdofoz:20180603021932j:plain