Unityでのゲーム開発 〜キャラクターに武器を持たせる編〜
今回は武器持たせてみようと思います。
今回使用するAssetはこちら⇩
assetstore.unity.com
無料Assetなのにこのクオリティはヤバいです(´-`).。oO(語彙力)
早速ですが下準備から初めて行こうと思います。
- まず使用したい武器をAssetStoreからDL
- Unityの標準で用意されている「Animation Rigging」をInstall
- DLした武器をScene内に配置
デカすぎ!
*Assetによって大きさが違うと思いますので適切な大きさに変更した方が良いですね
今回はScale値を『X:0.1、Y0.1、Z0.1』に設定しています。
ゲーム画面を確認するとこんな感じです⇩
適宜変更していくと良いと思います。
これをPlayerの親子関係にすれば武器を持たせるのは完了です。
スミマセン嘘です:(;゙゚'ω゚'):
これで下準備は完了です。
Animation Riggingを使って武器を持たせる
作業工程1
- PlayerにAdd Componentから「Rig Builder」を取り付ける
- Playerの子要素として空のGameObjectを作成して「RigLayer」に名前を変更する
- 先ほど作成したRigLayerにAdd Componentから「Rig」を取り付ける
- Playerの「Rig Builder」に子要素のRigLayerを適用する
- RigLayerの子要素として空のGameObjectを作成して「RightHandIK」に名前を変更する
- 先ほど作成したRightHandIKにAdd Componentから「Two Bone IK Constraint」を取り付ける
- RightHandIKのTwo Bone IK Constraintコンポーネント内の[Root]に右肩、[Mid]に右肘、[Tip]に右手、Source ObjectsのTargetに武器を取り付ける
*Player⇨root⇨Hips⇨Spineの順に展開していけば見つかると思います、使用しているAssetキャラクターによって違う事が殆どの為展開して確認が◯です。
❶
❷~❸
❹
❺~❻
❼
工程1での出来上がりはこんな感じ⇩
しっかりと武器が持てていないので変ですね_:(´ཀ`」 ∠):
武器を持てる様に微調整します。
作業工程2
- 武器の子要素として空のGameObjectを作成して「RightHandGrip」に名前を変更する
- 先程のRightHandIKのTwo Bone IK Constraint⇨Source ObjectsのTargetに「RightHandGrip」を取り付ける
- 武器のAdd Componentから「Rig Transform」を取り付ける
- RightHandIKにカーソルを合わせて⌘+Cでオブジェクトをコピーしてそのまま⌘+Dで貼り付ける「RightHandIK(1)」とゆう名前で複製されるハズなので「LeftHandIK」に変更する
- LeftHandIKのTwo Bone IK Constraintコンポーネント内の[Root]に左肩、[Mid]に左肘、[Tip]に左手を取り付ける
- 武器の子要素として作成した「RightHandGrip」にカーソルを合わせて⌘+Cでオブジェクトをコピーしてそのまま⌘+Dで貼り付ける「RightHandGrip(1)」とゆう名前で複製されるハズなので「LeftHandGrip」に変更する
- LeftHandIKのTwo Bone IK Constraintコンポーネント内Source ObjectsのTargetに「LeftHandGrip」を取り付ける
- Playerの子要素にしていた武器を「Upper Chest」の子要素に変更する
- LeftLowerArmの子要素として空のGameObjectを作成して「HintL」に名前を変更する
- RightLowerArmの子要素として空のGameObjectを作成して「HintR」に名前を変更する
- それぞれのHintをLeft用、Right用 Two Bone IK Constraintコンポーネント内Source ObjectsのHintに取り付ける
それぞれのTransformの数値などは下記の画像を貼ります、キャラクターAssetによって微調整必須です
RightHandIK
LeftHandIK
RightHandGrip
LeftHandGrip
HintR
HintL
武器のTransform
出来上がりはこちら⇩
これを武器種によって変更するともっとややこしくなりそう:(;゙゚'ω゚'):
Assetを提供している人とか本当に尊敬します!!
次回はチラチラ画面に写っているUIの設定をいじれたらと思います。