sasami_unity2021/06/17 05:02回答ありがとうございます。 キャラのボディのところにgameobjectを置くと表示されるんですが、アニメーションが腕とか足とかが追従してくれません…(ずっとデフォルトの棒立ち) アニメーション通りにボディが追従して欲しいのですが…
sakura_hana2021/06/18 00:11「キャラのボディのところにgameobjectを置く」というのが気にかかります。ユニティちゃんのボディの子オブジェクトとしてユコ等のGameObjectを置いているならばそれは使い方が違います。 アニメーションを共有したいならばモデルのインポート設定等を確認する必要があります。 流れとしては、ユニティちゃんを配置したのと同じように完全に独立したユコ等のGameObjectをシーンに配置、モデルのインポート設定でHumanoidを有効化してAnimatorControllerを共有、スクリプトでモデルのGameObjectの表示・非表示を切り替え、となります。
sasami_unity2021/06/18 03:13回答ありがとうございます。 まったく新しいGameObjectを作ってそれに既存のアニメータとかスクリプトを入れて、モデルを表示・非表示で切り替えるという形でしょうか…? 自分が作ってるゲームは、武器や髪型とかも変更できるようにしています(武器や髪はCharacter1_referenceのボーンのところに直で入れて動いてます)。 既にUnityちゃんのGameObjectには色々パーティカルや武器、判定など詰まってるため、ボディごとにそれぞれ入れなおすのは出来れば避けたいです…。 あと、Photon2を使ったオンラインゲームなので非表示にするGameObjectまで生成するのは避けたいです…。 なので、できればUnityちゃんのGameObject内の追加・変更で実現したいです。 何か手はありますでしょうか…よろしくお願いします。
sakura_hana2021/06/18 06:04それだとかなり厳しいと思います。 根本論から言うと、3Dモデルはボーンとメッシュで出来ています。 Skinned Mesh Rendererで表示されるメッシュの頂点ひとつひとつは「どのボーンの影響をどれぐらい受けるか」というデータを持っています。 異なるモデルでもボーンの位置・向き・大きさ・名称が同一であれば共有できる可能性もありますが、そうでない場合はボーンとメッシュの紐付きができなかったり、想定外の場所にメッシュの頂点が移動することで図のような変な形になります。 両方のモデルのボーン構成を眺めてみて、違いが見えるようならば共有は難しいと思います。(モデルを編集するか、オリジナルモデルを作るか等すれば可能かもしれません) ちなみに武器等を持たせるのは、ボーンひとつひとつはGameObjectであり、アニメーションはボーンが動くことで反映されることを利用したものです。(「子オブジェクトは親オブジェクトに追随する」というUnityの基本機能に則っています) 髪型と同じ要領でユコモデルを分割化してセットという形で出来ればいいのですが、それだと多分難しいと思うので、諦めるか前述の通りモデル編集等の方法になるかなと思います。
sasami_unity2021/06/19 06:04回答ありがとうございます。 結局体だけ生成してアニメーションを動かすだけのスクリプトを用意してメインのキャラのスクリプトから操作してメインキャラと同じ動きをさせることで何とかできました! 大変参考になりました。ありがとうございます。
2021/06/17 05:02
2021/06/18 00:11
2021/06/18 03:13
2021/06/18 06:04
2021/06/19 06:04