【無駄のないVtuber作製講座】Part 3-1: リギング 編

posted in: 3D Animation, 3D Modeling | 0

本記事では、作製したキャラクターのメッシュに対して骨を導入させる作業(リギング)について解説します

(この記事内容は動画バージョンも存在します:Part 3-1

キャラクターのメッシュに骨を導入するために、骨を出現させましょう(図1)

骨は通常アーマチュアと呼ばれ、Shift + Aから追加させることができます

まずはオブジェクトモードで、キャラクターの股の下部分に配置しましょう

これをルートボーンと呼ぶことにします

さらに、アーマチュアは編集モードからメッシュ同様に、RやGといったキーで編集することができます

Eキーを用いて、骨をどんどん追加していきましょう

Rootの先端から追加されたアーマチュアは、全てRootの”子”であるという関係性になります

子であるということはつまり、Rootの骨が動いたら、子である骨も全部それに応じて動くということになります

追加した骨は、Upperjawなど、体の部位に対応する名称を設定しておきましょう

また、耳や肩など、左右対称に存在するものについては、”Shoulder_R”といった形式で、右側にあるものには”_R”を、左側にあるものには”_L”をつけてください

メッシュが左右対称である場合、右側の領域だけモデリングすれば、あとでArmatureメニューからSymmetrizeをクリックすることで、アーマチュアを対称化できます

対称化によって生成したアーマチュアは、Relationsの設定からConnectedにチェックを入れ、骨同士が連結するように設定しておきましょう

図1. アーマチュアの追加方法

アーマチュアを追加しただけでは、まだメッシュと関連づいていません

関連づいていないというのは、つまりアーマチュアが動いても、メッシュが動かないということです

関連づけることによって、アーマチュアが動いたら、メッシュも連動して動くようにしましょう

これを行うには、メッシュを選択したあとにボーンも選択肢、Ctrl + Pから”with automatic weights”で親子関係にしましょう

どんなものでも親は一つですから、親は最後に選ぶというわけです

親子関係になると、メッシュは元のStatic Meshだった状態からSkeletal Meshと呼ばれる状態になります

アーマチュアを選択した状態でPose Modeにし、Rで回転させてみましょう

すると、腕に対応するアーマチュアを動かしたような場合には、腕のメッシュも動いてくれるはずです

ただ、これだけでは実際には不十分なことが多いです

腕だけを動かすように設定したいのに、腕の周辺部分も動いてしまったりしてしまうのです

このような余計な動きを排除するには、頂点の追従具合(ウェイト)を設定する必要があります

ウェイトの確認方法は図2のように2つありますが、視覚的にウェイトを捉えることを可能とした”ウェイトペイントモード”が便利です

ウェイトペイントモードにおいては、追従具合が高いものは赤色で表示され、追従具合がないものは青色で表示されます

言い換えれば、ウェイトが高いものが赤、ウェイトが低いものが青ということになります

先の例を用いれば、腕のアーマチュアに対して腕のウェイトはもちろん高いのですが、腕の周辺部分にもウェイトが乗ってしまっているということになります

そこで、腕の周辺部分のウェイトをなくす作業が必要です

ウェイトをなくすということは、ウェイトが青に見えるように色塗りしていけばよいということです

この作業をウェイトペイントと呼ぶんですね

図2. ボーンとメッシュの対応付け方法

ウェイトペイントの具体的なやり方の解説です

アーマチュアとメッシュの動きを対応させながらウェイトペイントを行うと、効率がいいです

これを行うには、ボーン→メッシュの順番で選択し、ウェイトペイントモードに入ります

腕のアーマチュアをCtrl + Clickで選択したのち、Rで回転させてみましょう

本来動くべきでない箇所も動いてしまうはずです

そこで、その動くべきでなかった場所に対し、Weight = 0, Strength = 1でDrawを行いましょう

すると、その部分はウェイト0である場合の挙動を示すようになり、すなわち腕のアーマチュアに対して追従しなくなります

この作業を腕だけでなく、肩や耳などといった他の体の部位に対しても行い、ウェイトを設定します

最後に、様々な部位をR回転で動かすことで、完成度を確認してみましょう

回転させたあとは、そのアーマチュアを再度選択し、Alt + Rを押すことによって、初期の状態へ戻すことができます

このようにして、キャラクターのメッシュとアーマチュアを対応付けることができます

図3. ウェイトペイントの方法

【無駄のないVtuber作製講座】Part 2: テクスチャ 編

posted in: 3D Modeling | 0

本記事ではBlenderにおける3Dモデルのテクスチャ設定方法を解説します。

(この記事内容は動画バージョンも存在します:Part 2-1, Part 2-2

3Dモデルにテクスチャを設定するには、3Dモデルを二次元に展開する作業が必要です。なぜならテクスチャは画像情報であり、画像情報は基本的に二次元の情報であるためです。

そこで3Dモデルに切れ目を導入しましょう。この切れ目を境界線として二次元平面へ貼り付けることができます。

切れ目をいれるには、辺を選択し、Ctrl + Eを押した後、Mark Seamをクリックします。これによってシーム部分が赤線表示となり、切れ目となったことが確認できます。

次にモデルを展開します。展開する領域を選択後、Uを押し、Unwrapをクリックします。

展開図をうまく画像上に配置できたら、3Dモデル上に画像が表示されるはずです。

(3Dモデルへのテクスチャの反映を確認するには、Shadingタブから予め3Dモデルのマテリアルを作製しておくことが必要です。マテリアル内のBSDFのColorに対し、テクスチャ画像を直接つなげておきましょう。この画像は、フォルダからBlenderのマテリアルノードへドラッグ&ドロップすることで出現させることができます)

UV展開図と3Dモデルの対応を確認するにはUV sync slectionを用います。

対応確認時のみ、その機能をONにしておきましょう。

展開図の配置などといったUV編集時は、その機能をOFFにしておくことを推奨します。

マテリアルは3Dモデルの一部に対して適用することも可能です。適用対象となるメッシュを選択し、マテリアルタブから新しくマテリアルをNewします。さらに、メッシュを選択した状態で新しいマテリアルをAssignします。これで、選択されたメッシュのみが新しいマテリアル情報をもつようになります。

テクスチャを使用せずとも、色や質感を設定することができます。

これを行うには、マテリアルノードを設定します。

Principled BSDF内のBase Colorを設定すると、その色がモデルの色として反映されるはずです。

Renderedモードで確認してみましょう。

テクスチャは3Dモデルに対して直接塗ることでも設定できます。

Texture Paintタブから、Texture Paintモードでドラッグ&ドロップを駆使し、色を塗っていきましょう。

この際、ミラーモードを利用すると、作業を効率化できる場合があります。

【Blender】ホスト-ゲスト錯体の描き方【化学】

posted in: 3D Modeling, Chemistry | 0

ホスト-ゲスト錯体 やロタキサンの概念図を作製する際、厳密さを求めると、環状分子に構造式を貼り付ける必要がありますよね

今回、その方法をYoutubeで解説しました

【科学】 機械学習 を用いた3DP造形物における欠陥構造の分類

今回は3Dプリンターによる金属の印刷と 機械学習 についてのお話です

通常用いられる金属の3Dプリント方法は、Laser powder bed fusion (L-PBF)といって、金属の粉末をレーザーで焼結させます

この方法が完璧なものであれば、造形物として得られる金属構造は均一であり、どのような欠陥ももたないはずです

しかしながら、現実にはそうはいきません

実際には、造形物として得られる金属構造の中には空隙があるなど、構造的な欠陥が含まれます

このような欠陥があると、得られる構造は想定よりも弱いものとなってしまいますから、欠陥は少ないほどよいとされています

そこで、従来は3Dプリントの際のパラメータを感覚的に頑張って調整することでしか、その欠陥の数を制御できませんでした

例えば、レーザーの強度を調節するなどといった方法です

といっても、レーザーの強度は小さすぎても大きすぎても欠陥の数は増えますので、こういったパラメータの調整は難しいのです

理想的には、「どうすれば欠陥の数を最小限にできるか」の指針が分かったらいいですよね

これを達成するための方法が、今回の論文で示されています

それは「欠陥の種類を明らかにする」ということです

欠陥の種類とは

一口に欠陥といっても、その構造にはいろいろと種類があるわけです

具体的には、3種類あります

それらは、Lack of fusions (LoF)、Keyholes (KH)、Gas-entrapped pores (GEP)と呼ばれています

それぞれ、溶接が不十分なため生じる欠陥、金属の蒸発により生じる欠陥、気体が囚われることで生じる欠陥、となっています

気体はどうしても存在するものなので、GEPの形成を抑制することはできませんが、他の2つの欠陥の生成を抑制することはできます

LoFは溶接が不十分なときに生じるものなので、レーザー強度を上げれば、その形成を抑制できます

一方、KHは過度な加熱によって生じるものなので、レーザー強度を下げれば、その形成を抑制できます

すなわち、3DP造形物内にある欠陥がLoFとKHのどれであるかを判別することができれば、レーザー強度をどうすべきかが分かるということになります!

機械学習 による欠陥の判別

どうやって欠陥を判別するのかを明らかにしたのが、今回の研究です!

その方法とは、欠陥の形状に関わるパラメータに着目して分類することになります

具体的には、欠陥の”大きさ”や”丸さ”といったパラメータです(論文中では他にも7つのパラメータを取り上げていますが、本記事ではこの2つに絞ります)

実は、上述した3種類の欠陥は、その生成機構が異なるために、生まれた時の大きさや丸さも異なるのです

これを視覚的に示しますと、図aのようになります

欠陥の種類とその分類法

図aより、LoFは横に長い形、KHは大きい丸みのある形、GEPは小さい丸みのある形とわかります

こういった材料内にある欠陥の形状はX線で調べることが可能で、図bのような分布になります

図bの上の分布からは、LoFは様々なサイズのものがある一方、GEPのサイズは小さく、KHのサイズは大きいことが確認できます

図bの下の分布からは、LoFの丸みは小さく、言い換えれば角ばっている一方、GEPとKHの丸みは大きく、言い換えれば球に近い形状をとっていることが確認できます

このことから、図cのような決定木を作製できます

決定木とは、パラメータの大小関係によって、ある特徴量をもつものが何に分類されるのかを決める機械学習の手法です

この決定木の一段階目では、①サイズが小さいものはGEPかLoFである一方、②サイズが大きいものはLoFかKHであると分類できます

さらに二段階目では丸みに着目することで、①のグループの中でも角ばっているものはLoF、丸いものはGEPと分類できます

加えて、②のグループの中でも角ばっているものはLoFであり、丸いものはKHと分類できるのです

実際には他にも7つのパラメータがありますから、それらを全て考慮した上で、ある欠陥がどれに分類されるかを決めるのです

結果的に、LoFとKHのどちらかが含まれるかを明らかにすることができれば、たくさん実験せずとも、3Dプリントの際のパラメータを最適化できそうですね

3Dプリントされた金属が何よりも最強になる日も近いかもしれません!

以上、Nature Communicationに出版された最新論文でした

参考

Poudel, A., Yasin, M.S., Ye, J. et al. Feature-based volumetric defect classification in metal additive manufacturing. Nat Commun 13, 6369 (2022). https://doi.org/10.1038/s41467-022-34122-x