Unity

【Unity】キャラクターの部位破壊用パーツ作成方法の備忘録【GKC】

はじめに

Unityの有料アセット「GKC(Game Kit Controller)」を使用した環境下での、キャラクターの部位破壊時に使用するパーツ(腕とか足とか)を作成方法の備忘録です。

本記事は以下のバージョンで確認できている情報です。
Unityバージョン:2022.3.47f1
GKC(Game Kit Controller)バージョン:3.77
バージョンが異なる場合操作方法やUIに差異がある場合がありますのでご注意ください。

本記事は、GKCコミュニティの英文かつテキストオンリーの情報を翻訳し解析した内容となっています。

詳細手順

①Animatorがアタッチされている任意のキャラクターのオブジェクトをシーンに配置する

キャラクターのオブジェクトは後程、中身を弄るのでPrefabを展開しておく。

②手順①で用意したキャラクターオブジェクトに、アセットGKCのスクリプト「ragdoll builder」をアタッチする

③手順②でアタッチした「ragdoll builder」に設定を行う

Skelton Settingのすべての欄を埋める。

Animator Settingsのアニメーターに「Animator」をドラッグアンドドロップする。

Build Ragdollをクリックして設定を終える

各パーツにRigidbodyとCapsule Colliderがアタッチされます。

自分で設定するのは面倒なので楽ですが、使用しないパーツにもアタッチされるのでゲームの最適化の面を考慮するとあんまり良くないかも。

④キャラクターオブジェクトの各スケルトンを親オブジェクトの直下に移動する

今編集しているキャラクターオブジェクトはキャラクターとして使用しないので、階層が崩れることは気にせず移動する。
部位破壊時にどの形にしたいかに応じて、スケルトンすべてをバラバラにするか、一定のまとまりにする(腕は片腕で一まとまりするなど)。

⑤パーツ化したい部位以外のスケールを0,0,0にする

下図では右腕をパーツ化したかったので、右腕以外の部位のスケールを0,0,0に設定している。

非表示になっている各部位にテクスチャが引き伸ばされているので、それぞれの部位の位置を動かして見栄えを良くする。

⑥パーツ化したい部位の下に、他のスケルトンを移動する

こうしておかないとゲーム時にテクスチャが伸びる現象が発生した。

⑦ゲームで使用するキャラクターオブジェクトに作成したパーツをアタッチする

手順①~⑥までに触っていたキャラクターオブジェクトではなく、実際のゲームで使用するキャラクターオブジェクト。
下図ではゾンビにアタッチしている。

⑧実際に動かしてイメージ通りか確認する&残りのパーツも作成する

実際動かして問題なければ、残りのパーツも同じ作業の繰り返しです。

お疲れさまでした。

本記事は以上となります。

-Unity