IshidaGames【UnityC#講座】ユニティちゃんをスカイリム風に操作するTweetnoteで管理人イシゲーのゲームの思い出記事を100円で公開しました。以前ユニティちゃんを操作できるようにしました。今回はその時とは別の操作方法にします。名作オープンワールドRPG「スカイリム」のようにマウスで方向を変えてそれを基準に前後左右、ジャンプ、そして攻撃と高速移動を設置します。さあ、まずはプロジェクト「SkyrimController」を作ってください。Controllerを開く。3.Idleを中心にそれぞれのステートマシンを矢印、Transitionでつなぐ。4.Parametersを設定する。5.TransitionにParametersを設定していく。■ユニティちゃんをセットする以前と重複になりますがまずはユニティちゃんをアセットストアからダウンロードします。この作品はユニティちゃんライセンス条項の元に提供されていますProjectからunitychanをHierarchyかSceneにドラッグ&ドロップしてください。unitychan次にユニティちゃんが乗る地面ですが、以前はPlanですが今回はTerrainを使います。TerrainユニティちゃんがTerrainにちゃんと乗るようにしておいてください。あとタグの設定もしておきましょう。++を押して出てきた欄にGroundを追加します。ついでに後で使うEnemyも作っておきましょう。最後にTerrainにGroundのTagを設定して出来上がりです。ColliderとRigidbodyを追加します。ColliderとRigidbodyを検索してください。Colliderはこのようにしましたが厳密にこの通りにする必要はありません。Rotationのチェックボックスをすべてチェックしてください。これで不要な回転をしなくなります。■Animatorの設定をするこれも以前したことで説明は重複になるのでざっと説明します。詳しい説明が見たい人はこの記事を見てください。Controllerを開く。Controller名前は「SkyrimAnime」にしました。ウィンドウが小さくて扱いづらい時はAnimatorのタブをウィンドウの外に持ち出すと別画面として使えます。マウスのホイールでズームを操れます。ウィンドウの中身を動かしたいときはホイールをクリックしたまま動かします。Emptyとすると長方形のもの、ステートマシンが出てきます。9つ出してInspectorから以下の通りに名前をつけてください。IdleFrontBackRightLeftJumpSprintAttackそしてそれぞれにInspectorのMotionにアニメーションを以下の通りに入れます。POSE263.Idleを中心にそれぞれのステートマシンを矢印、Transitionでつなぐ。Transitionをクリックしてつなぎたいステートマシンをクリックします。間違えてつないでしまった場合、TransitionのInspectorのTransitionsの「-」をクリックすると消すことができます。4.Parametersを設定する。Animatorウィンドウの左上にParametersがあるのでクリック、次にBoolをクリックし名前を入れます。名前は分かりやすくステートマシンと同じで良いでしょう。Idle以外の7つのParametersを全てBoolで設定してください。5.TransitionにParametersを設定していく。矢印をクリックし、InspectorのConditionsの+マークをクリックしてください。そこで先ほど設定したParametersを設定していきます。Idleつながっている先のステートマシンと同じ名前のParametersを設定します。TrueとFalseは以下のようにしてください。Timeのチェックボックスを全て外します。Controllerをユニティちゃんにあてましょう。Hierarchyのユニティちゃんをクリックし、そのInspectorのAnimatorのControllerの欄に入れます。Motionのチェックを外してください。Scriptこれで作ったファイルを作り、名前は「SkyrimController」にします。攻撃できたらそれをHierarchyのunitychanにドラッグ&ドロップしてください。ここで一旦動かしてみたいところでしょうが、まだ準備ができていません。次はInspectorからSkyrimControllerの設定をします。■カメラと効果音をセットするこれはHierarchyのunitychanのInspectorのSkyrimControllerです。Camera、AudioClip、LegLeft、LegRight、AttackObjを上から順に設定していきます。Cameraをunitychanにドラッグ&ドロップしてください。画像のようになればOKです。Cameraを今度はSkyrimControllerにドラッグ&ドロップします。unitychanをクリックし、InspectorのCameraの欄に向けてドラッグ&ドロップします。2.AudioClipこちらはまずInspectorのSkyrimControllerのAudioClipの文字の頭についている三角をクリックします。するとSizeという欄に数字を入れられるので「2」と入力してインターを押してください。すると2つそこに音のファイルを入れられるようになります。次は効果音を調達しましょう。戦闘系音こちらのサイトは個人の利用なら連絡なしで利用して良いそうなのでありがたく使わせていただきましょう。好きな音を選んで良いのですが私はこちらにしました。手足・殴る、蹴る12回転03前者は攻撃用で後者が旋風の疾走用です。SkyrimControllerに回転03だけをドラッグ&ドロップしてください。手足・殴る、蹴る12は別に使います。System」を使うので以下のバナーからダウンロードしてください。これはTerrain上で地面のテクスチャによって足音を替えてくれるという優れものです。・footstep_triggerとfootsteps_databaseを設置。・unitychanにAudioSourceとCharacterFootstepsを設置。Sourceの欄にHierarchyのunitychanをドラッグ&ドロップ。このような流れになります。Resourcesここに入っているfootstep_triggerとfootsteps_databaseを使います。footstep_triggerですがこれはユニティちゃんの両方の足にひとつずつつける必要があります。このようにunitychanの中にあるCharacter1_LeftToeBaseとCharacter1_RightToeBaseに1つずつドラッグ&ドロップします。次に足から地面につくように位置を調整してください。このようにTransformのXやY、Zに矢印を置くとマウスでのドラッグで微調整できます。位置はXYZすべて0でも良いかもしれません。調整は後からでもできます。footstep_triggerをSkyrimControllerにドラッグ&ドロップします。左右を設定していますが逆に入れても問題はありません。次にHierarchyにfootsteps_databaseを置いてください。scriptsにあるCharacterFootstepsをunitychanにドラッグ&ドロップ。Sourceの欄にunitychanをドラッグ&ドロップして終わりです。Sourceお疲れ様でした。Terrainではテクスチャが張られていないと音が出ないようなのでそれもつけてみましょう。Texture4.AttackObj最後はとりあえず空のオブジェクトを作りAttackObjの欄に入れておくだけで良いです。Empty名前は同じ「AttackObj」にします。HierarchyのGameObjectを右クリック、Renameで変えられます。最低限の準備は完了したので動かしてみてください。音は出ているでしょうか?攻撃の音は敵に攻撃が当たった時に出るのでまだ聞けません。■攻撃された敵が吹っ飛ぶようにするまずはAttackObjにCapsuleColliderをAddComponentからセットし、IsTriggerにチェックを入れます。次はまた以前のfootstep_triggerと同じように足につけるのですが、今回は右足だけです。大きさは変えなくても問題ありません。後から好きに変えてください。位置はCharacter1_RightToeBaseの子にしたらTransformのXYZがすべて0で大丈夫です。次はスクリプト「AttackRange」を作ります。できたらAttackObjにドラッグ&ドロップ。前にダウンロードしておいた音声ファイルの手足・殴る、蹴る12を空欄に入れ、そしてAddComponentでAudioSourceを入れます。次にAudioSourceのPlayOnAwakeのチェックを外してください。入れたままにすると必要ないところでも鳴ってしまいます。AddComponentで入れるものまとめ。・CapsuleCollider、IsTriggerにチェック・Rigidbody・AudioSource、PlayOnAwakeのチェックを外す次は蹴り飛ばす敵を用意します。敵と言ってもただのCubeですが。CubeまずTagを前に作っておいたEnemyにします。AddComponentでRigidbodyを加えて出来上がり!上手く音が出て敵は吹っ飛んでくれたでしょうか?これで今回は終わりです。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。