
[3Dモデル]アクリルキーホルダーを作ろう。3
こんにちは!
3Dモデルのアクリルキーホルダーを作りたい!ということで、今回の記事ではアクリルキーホルダーに揺れを設定してUnityに持っていきます。
この記事で完結します!
前回の記事では金具とアクリルのモデリングを完成させました。↓
今回はアクリルキーホルダーが揺れるように、まずは骨(ボーン)を入れるところから設定していきます。
Step1 ボーンを設定する。
まずはボーンを1つ追加します。
追加→アーマチュア→「単一ボーン」で追加します。

追加できたらTabキーで編集モードにします。
下の根本の丸を選択したら、G→Zで大きい金具の一番上に合わせます。

次はボーンの先端の丸を選択して、G→Zで大きな金具の下の方に合わせます。ドーナツの金具が引っかかっているあたりです。

E→Zで下の方にボーンを押し出します。二つ目のボーンができました。

二つ目のボーンの先端は、中央の金具のパーツの上のあたりにあわせます。

またE→Zでボーンを押し出して、3つめのボーンを作ります。
先端は下のドーナツみたいな金具の上の部分にあわせます。

E→Zで4つめのボーンを作ります。先端はアクリルの下あたりでいいかな。

E→Zで5つめのボーンを作ります。長さはちょっと出てるくらいでOK。

Unityでボーン設定するときのために一応つけておきました。
これでボーンの設定はおしまいです!
次はボーンに対してどの金具やアクリルがついてくるかのウェイトを設定していきます。
Step2 ウェイトを設定する。
ウェイトを設定するためにモデリングした金具やアクリルを、アーマチュアにペアレントします。
そういえば、金具の名前を変更するのを忘れていました!
CircleになっているのでMetalなどわかりやすい名前にします。


ではペアレントの作業をします。
Tabキーでオブジェクトモードにします。
まずアクリル(Acrylic)を選択して、次はCtrlを押しながら2つめのアクリル(Acrylic_image)、金具(Metal)を選択して、最後にArmatureを選択します。
選択できたらCtrl+Pを押して、「空のグループで」を押します。

これでペアレントできました!
この作業をすることで、金具やアクリルにウェイトがつけられるようになりましたよ~。
では、金具からウェイトを設定していきますね。
金具を選択して、Tabキーで編集モードにします。
この二つのパーツを選択します。

右のメニューの緑の三角のタブが開かれている状態で、
「Bone」を押します。

青い「ウェイト」の部分が1.000になっていることを確認して、
「割り当て」を押します。

これで選択した2つのパーツのウェイトをBoneに設定できました!
ね、簡単でしょ?
これと同じ要領で他のパーツもやっていきます!
上のまるい金具を選択したら、「Bone.001」を押してから「割り当て」

中央のパーツを選択して、「Bone.002」を押してから「割り当て」

選択し忘れに気を付けてね!
下のまるい金具を選択して、「Bone.003」を押してから「割り当て」

金具のウェイト設定完了です!
アクリルもやってしまいましょう。
Tabキーでオブジェクトモードに戻ります。
1つめのアクリル(Acrylic)を選択します。
Tabキーで編集モードにしてAキーで頂点を全選択。
「Bone.003」を選択して、「割り当て」。
Tabキーでオブジェクトモードに戻り、
今度は2つめのアクリル(Acrylic_image)を選択します。
Tabキーで編集モードにしてAキーで頂点を全選択。
「Bone.003」を選択、「割り当て」をします!

これでウェイト設定完了です!!ヤッター!!
次はUnityに持っていけるように、書き出しをします!
Step3 FBXで書き出す。
書き出すために、まずは書き出したいオブジェクトを選択します。
Armatureを選択したら、Shiftを押しながら、Metalを押します。

書き出したいものが全部選択できました。
ファイル→エクスポート→「FBX」を選びます。

書き出しの設定が出てくるので、右のメニューから設定します。
「選択したオブジェクト」に✓、全ローカルを「すべてFBX」に変えて、アーマチュアの項目を開いたら「リーフボーン追加」の✓を外します。
あとは、保存したいフォルダを指定して、ファイル名を好きな名前に変えたら「FBXをエクスポート」を押します。

これで書き出し完了です!
次はUnityを使うのでUnityを開いてくださいね!
バイバイ!Blender~!永遠に!
Step4 Unityで設定をする。
先程Blenderで作ったモデルをUnityに持ち込みます。
ここではVRChat向けの設定方法を説明します。
Unityで新しいプロジェクトを作ったら、VRCSDKをインポートします。
今回はシェーダーはliltoonを使って、マテリアルの設定をします。
こちらもインポートしておいてくださいね。
インポートし終わったら、Assetsの上で右クリックして、Create→Folderで新しいフォルダを作ります。フォルダの名前は…Keychainとかでいいかなぁ。

作ったフォルダにfbxをドラッグで入れます。

fbxを入れたら、Unity上のfbxをクリックして、Inspectorタブを見ます。
「Extract Materials」を押します。

ウィンドウがでるのでそのままフォルダーの選択を押すと、マテリアルがfbxと同じフォルダに3つできます。
Blenderで設定したマテリアルと同じ名前ですね~。
できたマテリアルをCtrlを押しながら3つ選択して、「Standard」→「liltoon」を選択します。

一度fbxをHierarchyに置いて見た目を確認します。


この状態からマテリアルを設定していきます。
「Metal」のマテリアルを選択して、Inspectorを見ます。
「プリセット」→「無機物」→「金属(MatCap)」を選択します。


次は「Acrylic」マテリアルを選択し、Inspectorを見て、「軽量版ガラス」を選択します。

「詳細設定」→「基本設定」→「From Shader」を「Transparent」に変えます。

見えるようになります!
次は自分で作ったテクスチャを使うので、Unityに作ったテクスチャを入れます。

「Acrylic_image」マテリアルを選択したらInspectorを見ます。
「詳細設定」→「メインカラー/透過設定」→「色」の項目のグレーの四角を押すと色が選べるので真っ白にします。

テクスチャを色の左の四角にドラッグします。

描画モードを「不透明」から「半透明」に変えます。
ついでに自動修正も押しておきます。


きれいに表示できました!
ついでに2つのアクリルのマテリアルに「リムライト設定」からリムライトを追加すると、ちょっと反射が出ていい感じになるかも。

次にPhysBoneの設定をサクッとやってしまいましょう。
オブジェクトの名前の横の▽を押して開き、「Armature」の三角をクリックしたら、Boneを選択します。

Inspectorを見て「Add Component」を押したら、検索欄に「ph」と打ち、「VRC Phys Bone」を選択します。

「Simplified」をAdvancedに変えます。

設定の数値はこのようにしました。
見比べながら、好みの数値を入力してくださいね。

これで設定完了です!試しに揺らして動作を確認しましょう。
上側にある再生ボタンを押して…

Sceneビューでアクリルキーホルダーを選択して移動してみてください!

揺れたぁ~!!
移動してもついてこない金具やアクリルがあったら、ウェイトの設定ミスなのでBlenderに戻ってもう一度ウェイトの作業をします…。
きれいに揺れていたらこれをPrefabにしましょう。
再生ボタンを押して再生を解除するのを忘れないでくださいね~。

Hierarchyのアクリルキーホルダーを選択したら、フォルダにドラッグします。出てきたウィンドウの「Original Prefab」を選択すればPrefabの完成です。

アバターにつけるときになど、他のProjectに持っていけるようにアクリルキーホルダーをUnityPackageにします。
アクリルキーホルダーのフォルダの上で右クリックして「Export Package」を押します。

「Include dependencies」の✓を外して「Export」します。

あとは自分のわかりやすいフォルダを指定して、名前をつけたらunitypackageを「保存」してください。
これで全部の作業がおしまいです!おつかれさまでした~!
アクリルキーホルダーをつけたいアバターがあったら、そのアバターのUnityプロジェクトにliltoon(既に入れてたら入れ直さなくてOK)と先程作ったUnitypackageをインポートしてPrefabを配置すればOKです!
手に持たせたかったら、手にキーホルダーの位置を合わせて手のボーンに…かばんならかばんに位置を合わせてかばんのボーンにそのまま入れてアップロードしちゃいましょう。

自分のワールドがある人は、ワールドに設置してもいいかも!
長時間の作業、おつかれさまでした!
良いBlender&Unity&VRChatライフを~。