
マイケル
どうもこんばんは!マイケルです!

エレキベア
クマ〜〜〜〜〜〜

マイケル
最近は3Dエレキベアを動かすのを目標に3Dモデル作成をがんばっていましたが、
今日はゲーム作成側の勉強ということで、こちらの本を使って進めていきます!
今日はゲーム作成側の勉強ということで、こちらの本を使って進めていきます!
Unityゲーム開発 オンライン3Dアクションゲームの作り方

エレキベア
アクションゲームクマ!!

マイケル
こちらの画面が作成するゲームの画面になります!

エレキベア
かっこいいクマ〜〜〜!!

マイケル
移動して攻撃したりとそれなりのクオリティのゲームが作れるので、
Unityの基本操作を一通り覚えて、次のステップに進みたい人には持ってこいですね!
Unityの基本操作を一通り覚えて、次のステップに進みたい人には持ってこいですね!

マイケル
ただ、いろいろと情報が古いので調べながら直さないといけない部分も多々あるので注意です。。。

エレキベア
昔の本なのクマね

マイケル
そうなんだよね!
調べたくない人はなるべく最新の参考書をみたほうがいいかもしれません…
調べたくない人はなるべく最新の参考書をみたほうがいいかもしれません…

マイケル
とりあえずこの本を前半部分、ゲームの基本操作の部分を作り終わったので、自分の中の整理もかねて紹介しようと思います!
作成の流れについて

マイケル
この本では主に、
・移動操作の設定
・ステータスの追加
・アニメーションの設定
・攻撃処理の設定
・敵のAI設定
という流れで作成していきます!
・移動操作の設定
・ステータスの追加
・アニメーションの設定
・攻撃処理の設定
・敵のAI設定
という流れで作成していきます!

マイケル
まずはスクリプトの全体図を僕の解釈でまとめてみました!

エレキベア
ごちゃごちゃしてて分からないクマ

マイケル
これから少し分割して説明するよ

マイケル
最初は少ししっかりしたゲームを作り始めようとした時、
どういう単位でプログラムを組んだらいいかわからないと思うけど
どういう単位でプログラムを組んだらいいかわからないと思うけど

マイケル
この本で作るゲームは役割ごとにスクリプトを分けて作っているので、
全体設計の参考にも役立つと思うし、いろんなゲームに流用できるところがあると思うよ!
全体設計の参考にも役立つと思うし、いろんなゲームに流用できるところがあると思うよ!

エレキベア
それはやりがいがあるクマね
移動操作について

マイケル
最初に移動させる操作を作ります!

マイケル
まずキャラクターを移動させる共通のスクリプト「CharacterMove.cs」を作って、受け取った移動位置に移動するスクリプトを書きます

マイケル
そしてクリックやドラッグ操作を判定する「InputManager.cs」、
クリックした時に移動地点を渡す「CharacterCtrl.cs」の二つを作ってあげることで
InputManage -> PlayerCtrl -> CharacterMove
の順番でクリックした位置の情報が渡っていき、移動することができます!
クリックした時に移動地点を渡す「CharacterCtrl.cs」の二つを作ってあげることで
InputManage -> PlayerCtrl -> CharacterMove
の順番でクリックした位置の情報が渡っていき、移動することができます!

エレキベア
他のキャラクターにも使いまわせるよう
役割ごとに分けてるクマね
役割ごとに分けてるクマね

マイケル
そのとおりクマ
ステータスの追加について

マイケル
これは簡単で、キャラクターのHPや名前を管理する
「CharacterStatus.cs」を作ります!
「CharacterStatus.cs」を作ります!

エレキベア
これもあとで他のキャラクターにも設定できるようにするクマね

マイケル
賢いねエレキベア
アニメーションの設定について

マイケル
次にアニメーションの設定です!

マイケル
アニメーションは上記画像のようなAnimationClipの設定画面から遷移条件を指定できます!

マイケル
遷移条件を設定したら、パラメータを設定する「CharaAnimation.cs」を作ります!

マイケル
以上の設定で、特定条件を満たした時にアニメーションが変化するようになります!
合わせて、「PlayerCtrl.cs」にもステータスを追加しておきましょう!
合わせて、「PlayerCtrl.cs」にもステータスを追加しておきましょう!
攻撃処理について

マイケル
移動、アニメーション設定までしたら次は攻撃処理の設定です!

マイケル
攻撃する武器の範囲に「AttackArea.cs」、
攻撃を受ける範囲に「HitArea.cs」を作成しましょう!
攻撃を受ける範囲に「HitArea.cs」を作成しましょう!

マイケル
そして「AttackArea.cs」を設定した武器が当たった対象の
「HitArea.cs」に攻撃情報を送り、「PlayerCtrl.cs」内でHPを減らす処理を実装します!
「HitArea.cs」に攻撃情報を送り、「PlayerCtrl.cs」内でHPを減らす処理を実装します!

エレキベア
これで相手のHPを減らせるようになるクマね
敵のAI設定について

マイケル
以上でプレイヤーの動きは大体設定できたので、
最後に敵の動きを設定していきます!
最後に敵の動きを設定していきます!

マイケル
敵に設定するスクリプトも基本的にプレイヤーと一緒ですが、「SearchArea.cs」を追加し、「PlayerCtrl.cs」から「EnemyCtrl.cs」に変えています

エレキベア
具体的にどう違うクマ?

マイケル
自分で動かすプレイヤーと違って敵は自身で動いてもらわないといけないので
AI設定をしているというわけです!
AI設定をしているというわけです!

エレキベア
敵が勝手に動くようにするクマね

マイケル
「SearchArea.cs」で探索範囲の中にプレイヤーがいたらターゲットに設定して、「EnemyCtrl.cs」の中でプレイヤーを追跡するステータスを追加するよ!
まとめ

マイケル
ざっくりと話しましたが、これまでの設定で敵が自分で動いて、
攻撃したら倒せるようになります!
攻撃したら倒せるようになります!

マイケル
ここにゲームルールや敵を生成するジェネレータを追加するだけでも割と遊べますね

エレキベア
3Dキャラを動かすのは楽しいクマね

マイケル
夢が広がるね!
今回で基本操作までは作れたから、次はUIやネットワーク設定をしていくぞ!
今回で基本操作までは作れたから、次はUIやネットワーク設定をしていくぞ!

エレキベア
楽しみクマ〜〜〜〜〜〜〜

マイケル
さて、ブログも書いたし遊ぶか〜〜〜〜

エレキベア
どんだけドラゴンおんねん

マイケル
バグらせるのも楽しいね
【Unity】オンライン3Dアクションゲームの作り方をまとめる! (前編) 〜完〜