この記事ではUnityのPlayMakerを使って敵キャラクターの動きと当たり判定の作り方を紹介します。
敵キャラクターはプレイヤーがどこにいてもプレイヤーに向かってくるようにします。
そしてプレイヤーが持っている剣に当たると消える設定です。
前に記事にはこれまで設定が書かれているのでそちらをご覧ください。
前の記事 STYLYとUnityのPlayMakerで無双VRを作る Vol.1 -アニメーションとランダム生成-
サンプル
STYLY GALLERYからサンプル空間を体験できます。
記事で紹介しているUnityプロジェクトのダウンロードはこちらからできます。
使用しているアセット
PlayMakerとMove Motion Free Packを使用します。
キャラクターの設定
コンポーネントの追加
最初に当たり判定を取得します。
方法に関しては、以下の記事を参照します。
キャラクターが攻撃されたときの当たり判定を取得するためにRigidbodyとCapsule Colliderを追加します。
プレハブ化した”Nakagawa”を選択してコンポーネントを追加します。
RigidbodyのIs Kinematicのチェックは外しておきます。
Use Gravityのチェックも外しておきます。
Capsule ColliderのIs Triggerはチェックを外します。
体の形状に合うようにCenter、Radius、Heightの値を調整します。
Stateの設定
Prefabsフォルダの”Nakagawa”を選択してここにFSMを追加します。
PlayMaker Editor上で右クリックしてAdd Stateから新規でステートを作成します。
カメラ情報(プレイヤー情報)を取得するための方法は、以下の記事を参照します。
VR上でのプレイヤーを取得するためにメインカメラを取得します。 Find Game Objectを追加します。
Object Nameを「[VRTK]_VIVE」にします
Storeを選択し、「MainCamera」変数に格納します。
キャラクターがプレイヤーの方を向くようにLook Atを追加します。
Target ObjectにはMainCameraを指定します。 Keep Verticalにはチェックを入れます。
これでキャラクターがプレイヤー(MainCamera)の方に向くようになりました。
次はプレイヤーに近づいてくるようにしていきます。
ここではMove Towardsを使っていきます。
Target ObjectにはMainCameraを指定します。
Ignore Verticalにはチェックを入れます。
Max Speedの値をここでは2にします。
Finish Distanceは1のままにしておきます。
0にするとTarget Objectの位置まで移動しますが、1にしておくと少し手前で止まるようになります。
数値が大きいほどターゲットから離れた位置で止まります。
これでプレイヤーに向かっていくキャラクターができました。
当たり判定を取得するためにここではCOLLISION ENTERのイベントをState1に追加しましょう。
State1を選択した状態で、右クリックをし、Add Transition > Ststem Events > COLLISION ENTERを選択。
衝突したら削除するようにしたいのでオブジェクトを削除するステートを追加します。
Destroy Selfを追加して衝突したら自身を削除させます。
これで設定は完了です。
あとはVol.1で作ったプレハブ”STYLYmusou”をSTYLYにアップロードしてシーンに配置するだけになります。
UnityからSTYLYにアセットをアップロードする方法 記事を読む
この記事ではPlayMakerを使ってキャラクターの動く方向や衝突判定の仕方を紹介しました。
Vol.1との2部構成でSTYLYで無双的なゲームを作る方法を紹介しました。
VRと無双的なゲームはとても相性が良いと思うのでもっといろいろ作り込んでみたいですね。
攻撃された時のやられモーションをつけたり、音やエフェクトなどを追加すればもっと迫力のあるゲームになっていきます。
自分のスキャンデータをVRゲームにして簡単に公開できるなんて素敵ですね。
記事で使用した3Dモデルは、サンプルプロジェクト内にあります。
3Dモデルの使用は、STYLY内で限りご使用いただけます。
STYLY内で使用していただけるのであれば、改造や改変に制限はありません。