完成品はこちら-> resrec:///U-1Ngqnns2Owa/R-2889f07d-2630-4f5f-9a36-d8f57d655cd7
前編に引き続きモンスターボールを作成していきます。
モンスターボールをモデリング
とりあえず、Blenderでモデリングを始める前にモンスターボールを開かせる方法を聞いてみた。
Blenderのshape keyで開いた時の状態を作っておいて、オンオフ
Blenderでボーンを入れてボーンを動かす
上と下のメッシュを直接そのまま動かす
1番と2番をやってみた。思っていた以上にすんなり開くことがわかり、ほっとした。アバターを導入する時に色々苦労していたので、同じように大変な設定があるのかと思っていたが、そんなことはなかった。

開かせる方法がわかったので安心してBlenderでモンスターボールを作った。開ける方法はボーンを使ったやり方にすることにした。

Resoniteにいれて開けてみた。うまくいった!やったね!

ただ、material設定のところで
Base Color
Roughness
Metalic
Emission
のテクスチャを入れて質感を表現していたのだが、PBS metalic にはRoughnessの欄がなくて少しハマった。どうやら、VRChatでもResoniteでもMetaricとRoughnessのマップデータはまとめられMetaricSmooth(名前はこれではなかったかな)になるようで、そこで時間を食った。下のサイトの手順でMetaricとRoughnessのマップデータをMetaricSmoothのマップデータに直して入れた。(質感がBlenderと違う気がしたが、まぁよし!)
チェック
とりあえず、モンスターボールとポケモンを配置して見栄えをチェック。いい感じ!

調整
気になるところを調整していく。
出てきたポケモンの向き
ポケモンの出てくるタイミング

1番は投げた時の初速度を変数にしていたので、その変数のXZから算出した。arctanや180/PIなどを使った。
2番はちょっとハマってしまって、物理演算に使うSlotのスケールが1でなかったために、計算結果と異なる挙動をしていた。開く位置は投げた高さと同じ高さのところで発火するようにした。2Vy/gを使った。

ちょっと出るタイミングが早すぎるかも知れないが、開くアクションを入れてから調整しようと思う。
開くギミックの追加
モンスターボールの開閉をFluxのTweenで実装した。カパカパしていてかわいい。ちょっと注意点はローテーションはポジションと違って、一つの軸しか回転させないのに、複数の軸を変更しないと思ったような挙動が得られないということ。下のGIFアニメではモンスターボールの上部の閉じている状態のローテーションが(-90,-90,-90)で開いている状態が(-55,180,0)です。

そして、開くギミックを取り入れて下のようになりました。いい感じ!

調整
モンスターボールの開く位置とタイミング、ポケモンの出現位置を調整した。

光らせる
ボールが開いた時にコンポーネントのLightを使って光らせた。ちょっと思っていたのとは違ったが、よしとする。

調整
スケールが違うと物理演算の挙動が変わるらしく、CharacterControllerの〇〇ScaringのところをすべてNoneに変えた。

完成!!!
これで完成とします!よし!
