Unityを使ったゲーム開発記録

Unityのゲーム開発などを中心に投稿していきます。何か参考になる様な記事ではなく自分用の備忘録になる為、生暖かい目で見て下さい。

Unityでのゲーム開発 〜キャラクターに武器を持たせる編〜

今回は武器持たせてみようと思います。

今回使用するAssetはこちら⇩
assetstore.unity.com
無料Assetなのにこのクオリティはヤバいです(´-`).。oO(語彙力)


早速ですが下準備から初めて行こうと思います。

  • まず使用したい武器をAssetStoreからDL
  • Unityの標準で用意されている「Animation Rigging」をInstall

f:id:mochisakucoco:20210411081416p:plain


  • DLした武器をScene内に配置

f:id:mochisakucoco:20210411081734p:plain

デカすぎ!

*Assetによって大きさが違うと思いますので適切な大きさに変更した方が良いですね
今回はScale値を『X:0.1Y0.1Z0.1』に設定しています。

ゲーム画面を確認するとこんな感じです⇩
f:id:mochisakucoco:20210411082857p:plain

適宜変更していくと良いと思います。





 
これをPlayerの親子関係にすれば武器を持たせるのは完了です。
f:id:mochisakucoco:20210411084004g:plain

スミマセン嘘です:(;゙゚'ω゚'):
これで下準備は完了です。



Animation Riggingを使って武器を持たせる

作業工程1

  1. PlayerにAdd Componentから「Rig Builder」を取り付ける
  2. Playerの子要素として空のGameObjectを作成して「RigLayer」に名前を変更する
  3. 先ほど作成したRigLayerにAdd Componentから「Rig」を取り付ける
  4. Playerの「Rig Builder」に子要素のRigLayerを適用する
  5. RigLayerの子要素として空のGameObjectを作成して「RightHandIK」に名前を変更する
  6. 先ほど作成したRightHandIKにAdd Componentから「Two Bone IK Constraint」を取り付ける
  7. RightHandIKのTwo Bone IK Constraintコンポーネント内の[Root]に右肩、[Mid]に右肘、[Tip]に右手、Source ObjectsのTargetに武器を取り付ける

*Player⇨root⇨Hips⇨Spineの順に展開していけば見つかると思います、使用しているAssetキャラクターによって違う事が殆どの為展開して確認が◯です。


f:id:mochisakucoco:20210411085109p:plain


❷~❸

f:id:mochisakucoco:20210411091151g:plain

 

f:id:mochisakucoco:20210411091253p:plain

 

❺~❻

f:id:mochisakucoco:20210411092150g:plain

f:id:mochisakucoco:20210411100948p:plain


工程1での出来上がりはこんな感じ⇩
f:id:mochisakucoco:20210411101629g:plain

しっかりと武器が持てていないので変ですね_:(´ཀ`」 ∠):
武器を持てる様に微調整します。


作業工程2

  1. 武器の子要素として空のGameObjectを作成して「RightHandGrip」に名前を変更する
  2. 先程のRightHandIKのTwo Bone IK Constraint⇨Source ObjectsのTargetに「RightHandGrip」を取り付ける
  3. 武器のAdd Componentから「Rig Transform」を取り付ける
  4. RightHandIKにカーソルを合わせて⌘+Cでオブジェクトをコピーしてそのまま⌘+Dで貼り付ける「RightHandIK(1)」とゆう名前で複製されるハズなので「LeftHandIK」に変更する
  5. LeftHandIKのTwo Bone IK Constraintコンポーネント内の[Root]に左肩、[Mid]に左肘、[Tip]に左手を取り付ける
  6. 武器の子要素として作成した「RightHandGrip」にカーソルを合わせて⌘+Cでオブジェクトをコピーしてそのまま⌘+Dで貼り付ける「RightHandGrip(1)」とゆう名前で複製されるハズなので「LeftHandGrip」に変更する
  7. LeftHandIKのTwo Bone IK Constraintコンポーネント内Source ObjectsのTargetに「LeftHandGrip」を取り付ける
  8. Playerの子要素にしていた武器を「Upper Chest」の子要素に変更する
  9. LeftLowerArmの子要素として空のGameObjectを作成して「HintL」に名前を変更する
  10. RightLowerArmの子要素として空のGameObjectを作成して「HintR」に名前を変更する
  11. それぞれのHintをLeft用、Right用 Two Bone IK Constraintコンポーネント内Source ObjectsのHintに取り付ける


それぞれのTransformの数値などは下記の画像を貼ります、キャラクターAssetによって微調整必須です

RightHandIK

f:id:mochisakucoco:20210411133544p:plain

LeftHandIK

f:id:mochisakucoco:20210411133603p:plain

RightHandGrip

f:id:mochisakucoco:20210411133626p:plain

LeftHandGrip

f:id:mochisakucoco:20210411133643p:plain

HintR

f:id:mochisakucoco:20210411133704p:plain

HintL

f:id:mochisakucoco:20210411133716p:plain

武器のTransform

f:id:mochisakucoco:20210411133731p:plain



出来上がりはこちら⇩
f:id:mochisakucoco:20210411140918g:plain


これを武器種によって変更するともっとややこしくなりそう:(;゙゚'ω゚'):
Assetを提供している人とか本当に尊敬します!!



次回はチラチラ画面に写っているUIの設定をいじれたらと思います。