iconこの記事ではUnityのラグドールのシステムと、STYLYが提供するインタラクションSDKを組み合わせて、武器で敵を倒すシステムを作ります。アバターを用意し、無料のアセットを使うことで簡単に実装することができます。初心者でも簡単なアクションゲームやバトルゲームを作ることができます!ゲーム作りの参考にしましょう!今回はSTYLYが提供するインタラクションSDKを使用します。以下のマニュアルに目を通しておくと、理解を深められます。コンテンツ制作を学ぼうサンプル今回のラグドールとインタラクションSDKを使った、敵を倒すサンプルシーンが以下になります。キャラクターの準備Unityで使用するキャラクターの準備をしましょう。今回はAdobeが提供する3Dキャラクター・アニメーション制作ツール「mixamo」を使用します。mixamoにアクセスしましょう。https://www.mixamo.com/#/mixamoを初めて使う方は以下の記事を参考にしましょう。mixamoで3DキャラクターにアニメーションをつけるMixamomixamoでキャラクターと、簡単なアニメーションを用意します。今回は、この強そうな敵キャラクターを選びました。この敵キャラクターにアニメーションを付けます。任意で選んで大丈夫ですが、今回は「Taunt」を選びました。Unityの形式でダウンロードし、Unityのプロジェクト内にインポートしましょう。Avelange」、アニメーションは「Taunt」となっています。インポートが完了したら、マテリアルとリグを調整します。キャラクターのデータを選択した状態で、インスペクターウィンドウの「Materials」タブを選択します。Materials(Legacy)」を選択します。Legacyを選択すると、適切なマテリアルがアタッチされます。Material次にリグを調整しましょう。同じようにインスペクターウィンドウの「Rig」タブを選択します。TypeのGenericをHumanoidに選択します。HumanoidこれでHumanoidタイプに変更できました。次にアニメーションの準備をします。アニメーターを用意しましょう。Controllerを選択します。Controller名前をEnemyAnimatorとします。EnemyAnimator「skeletonzombie_t_avelange@Taunt」のFBXファイルを選択し、アニメーションファイルを表示します。AnimationTauntのアニメーションファイルを選択し、コピー&ペーストまたは[Ctrl+D]で、複製しましょう。Time」にチェックを入れます。TimeEnemyAnimatorをダブルクリックし、アニメーターウィンドウを表示します。アニメーターウィンドウAnimationTauntのアニメーションファイルをアニメーターウィンドウにドラッグ&ドロップしましょう。アニメーターファイルをヒエラルキーウィンドウの「skeletonzombie_t_avelange@Taunt」オブジェクトにドラッグ&ドロップします。すると以下のようにインスペクターウィンドウにアニメーターコンポーネントが追加されます。Componentアニメーションこの状態で一旦再生してみましょう。アニメーションが再生され、ループします。これでキャラクターの準備は完了です。次にキャラクターが倒れたときに、人のように、倒れた挙動を表現する「Ragdoll」を準備します。そもそもRagdollとは、コライダー等の物理演算を利用して、挙動を表現することです。Helper」を使用します。HelperはHumanoidタイプのアバターをRagdollに変換してくれる便利なアセットです。アセットストアからダウンロードし、プロジェクト内にインポートしましょう。helperウィンドウを開いたら、シーン上のSkeletonzombieオブジェクトを選択します。Helperウィンドウが以下のようになります。Createウィンドウの一番上の「Ragdoll」を選択した状態でCreateを選択しましょう。すると、体にそってColliderがアタッチされます。以下のようになります。ColliderRagdollの準備ができました。キャラクターが倒れたとき、地面につくように地面のオブジェクトを用意します。ヒエラルキーウィンドウからCubeを作成します。名前をFloorにし、Transformを以下のようにします。TransformキャラクターのオブジェクトのTransformも設定しましょう。Transformこのようになりました。綺麗に表示される最後に武器の当たり判定をつけるためのコライダーの設定をします。Ragdollのコライダーとは別で、新規でCapsuleをシーン内に追加します。Capsuleで追加しましょう。Object」とし、Transformを以下のようにします。Objectを敵キャラクターの子オブジェクトとします。子オブジェクトすると、以下のようになりました。Objectこのままではメッシュが表示されてしまうため、メッシュを非表示にしましょう。Rendererのチェックマークを外します。Rendererすると、シーン上にはColliderだけが表示されます。Meshが表示されなくなるRagdollの準備は完了です。次に武器の用意をしましょう。アセットストアから武器を用意するのでも大丈夫ですが、今回は一番シンプルにCreateからCubeで簡単な棒状の武器を用意します。Cubeを用意します。名前を「Weapon」とし、Transformを画像のようにします。Transform画像のようになります。ComponentからRigidbodyをアタッチしましょう。以下のように設定します。Rigidbodyこれで全てのオブジェクトの準備ができました。最後にインタラクションSDKの設定をします。最後にインタラクションSDKの設定をします。STYLY_Attr_Draggable最初に武器のインタラクションSDKを設定します。先ほど作成したWeaponに「STYLY_Attr_Breaker」と「STYLY_Attr_Draggable」をアタッチします。STYLY_Attr_Breakerは「STYLY_Attr_Breakableコンポーネントが追加されているオブジェクトを破壊する」スクリプトです。STYLY_Attr_Draggableは、「オブジェクトをポインターでつかめるようになる」スクリプトです。これで、Weaponオブジェクトをつかんで動かせるようになり、STYLY_Attr_Breakableを破壊することができるようになりました。次に、敵キャラクターのアニメーターが無効になる設定をします。ComponentからインタラクションSDKのSTYLY_Attr_Breakableをアタッチします。STYLY_Attr_Breakableは、「STYLY_Attr_Breakerコンポーネントが追加されているオブジェクトに破壊される」スクリプトです。STYLY_Attr_BreakerとSTYLY_Attr_Breakableはセットで使います。Event」によって、敵キャラクターのAnimator.enabledをfalseにします。EventのListを追加します。List右下の[+]ボタンを押して、Listを追加します。(Object)の欄に、skeletonzombie_t_avelange@Tauntオブジェクトをドラッグ&ドロップします。enabledを選びます。enabled画像のように設定ができたら完了です。再生して確認シーンをUnity上で再生し、確認してみましょう。武器をドラッグし、敵にぶつけてみましょう。敵を倒せました!これで完成です。STYLYへアップロードSTYLYへアップロードしましょう。今回はシーンでアップロードします。Unityシーンアップロード機能の使い方シーンのサイズが大きくてSTYLYにアップロードできない場合は、こちらの記事をご参照ください。作成したタイムラインのシーンをSTYLYにアップロードしてみましょう。iconcolliderKAKIRagdollKAKIフリーのデザイナー/DJ。SCHOOLを機にXR領域へ進出。XRを利用した音楽、アートの制作について学んでおります。最近はVRとジャーナリズムについても興味があります。リアルとバーチャルが溶け合う、次世代のクリエイターの受賞作をご覧ください。リアルとバーチャルが溶け合う、次世代のクリエイターの受賞作をご覧ください。