Study Works

YuukiHiraiの勉強したものを上げていきます。

拡張エディタ Third Person Controller - Melee Combat Template 使い方まとめ アセット真夏のアドカレ8/27 ~武器の作成~

はじめに
この記事は「Unity アセット真夏のアドベントカレンダー 2017」8月27日の記事になります。
今回は拡張エディタ「Third Person Controller - Melee Combat Template」の使い方のまとめの「武器の作成」の記事ととなります。

今回、紹介する武器の作成はこちらの動画で

www.youtube.com

紹介されていますが、さらに掘り下げて紹介していきます。

注意

こちらの記事は前回の「基本的な使い方」の続きとして紹介していきます。

 

目次

1、現在の状態を確認

2、武器の作成

 

1、現在の状態を確認

武器を作成する前にまず現在の状態を確認しましょう。

現在クリックまたはXboxコントローラーでRBを押すとこんな感じにパンチコンボ攻撃をします。

f:id:yuukihirai0331:20170821224410p:plain

これはデフォルトで設定されている攻撃になります。
まずはこの仕組みについて解説していきます。
現在、このオブジェクトにコンポーネントである「vMeleeManager」の「Wepons」には何も入っていない状態です。

f:id:yuukihirai0331:20170821224706p:plain

この状態だと素手であると認識するため先ほどのパンチの攻撃を繰り出すようになります。それをどこで認識しているかというとキャラのAnimationControllerの

f:id:yuukihirai0331:20170821225310p:plain

Layersの「FullBody」の「Attacks」の

f:id:yuukihirai0331:20170821225858p:plain

「WeakAttacks」「StrongAttacks」とありますが構造はどちらも同じなので今回は「WeakAttacks」を軸に紹介します。

f:id:yuukihirai0331:20170821225547p:plain

「Unarmed」がパンチコンボ攻撃のStateになります。

他にもStateがありますが後に説明をします。

「Unarmed」を開くと

f:id:yuukihirai0331:20170821230301p:plain

「A」→「B」→「C」と並んでいます。
これがコンボ攻撃の流れになっています。

「A」のInspectorを開くと

f:id:yuukihirai0331:20170821230929p:plain

赤字で引いた部分が重要な項目になります。
「Start Dmage」「End Damage」というのはモーションで攻撃の当たり判定が発生する時間帯を指しています。当たり判定はこの黄色いボックスになります。

f:id:yuukihirai0331:20170821231714p:plain


この「PunchLeft」というモーションの場合だと

f:id:yuukihirai0331:20170821231348p:plain

25%=0.25
としてカウントされ、ここから右腕の当たり判定が機能します。

f:id:yuukihirai0331:20170821232836p:plain

そしてこちら
60%=0.6
ここまでのモーション期間が攻撃判定になります。

f:id:yuukihirai0331:20170821230929p:plain

「Damage Multiplier」はキャラの攻撃力の加算値です。
このパラメーターはモーションごとに攻撃力を変化させたいときに使用します。

「Melee Attack Type」は「Unarmed」と「Melee Weapon」の二つのタイプがありますが武器を持っていないので「Unarmed」になっています。武器を設定したモーションの際は「Melee Weapon」にします。

最後に重要なのが

「Reset Attack Trigger」です。
これはコンボ攻撃の最後のモーションの場合チェックを入れてください。
この場合だと「C」が最後になるのでこちらにチェックが入っています。

これで現在の状態の解説は以上となります。

 

2、武器の作成

 Invector→Melee Combat→Create Melee Weaponを選択し、右のウィンドウを開きます。

f:id:yuukihirai0331:20170822001446p:plain

こちらキャラクター作成と同じように武器にしたいモデルデータを入れます。

f:id:yuukihirai0331:20170822002044p:plain

するとこのように生成されるので、まず黄色いコリジョンを整えます。

f:id:yuukihirai0331:20170822002205p:plain

オブジェクト構造はこのようになっていて「hitBox」を拡大縮小するなどで整えます。

f:id:yuukihirai0331:20170822002419p:plain

 こんな感じにモデルより大きめに取ると良い感じに判定がしやすくなります。

こちらの武器のコンポーネントで「vMeleeWeapon」があります。

f:id:yuukihirai0331:20170822002755p:plain

これは武器の詳細になっており、重要なのは

「Hit Box」当たり判定コリジョン

「Attack ID」攻撃モーションタイプ

「Stamina Cost」使用時のスタミナコスト

の3つになります。

「Attack ID」攻撃モーションタイプというのはアニメーションコントローラーのこの部分です。これで武器ごとにモーションを設定することが出来ます。
この場合、剣を振るモーションにするため「Attack ID」を1にします。

f:id:yuukihirai0331:20170822003252p:plain

 作成した武器をキャラの手につくように調整します。

f:id:yuukihirai0331:20170822230908p:plain

これで攻撃が剣を振るモーションになりますが、一応キャラの「vMeleeManager」の「RightWeapon」に作成した武器を入れます。

f:id:yuukihirai0331:20170823001206p:plain

これにて武器の作成は以上となります。

次回に続きます。

 

f:id:yuukihirai0331:20170819151212p:plain

拡張エディタ Third Person Controller - Melee Combat Template 使い方まとめ アセット真夏のアドカレ8/27 ~敵の作成~

はじめに
この記事は「Unity アセット真夏のアドベントカレンダー 2017」8月27日の記事になります。
今回は拡張エディタ「Third Person Controller - Melee Combat Template」の使い方のまとめの「敵の作成」の記事ととなります。

 

今回、紹介する敵の作成はこちらの動画で

www.youtube.com

紹介されていますが、さらに掘り下げて紹介していきます。

注意

こちらの記事は前回の「武器の作成」の続きとして紹介していきます。

 

キャラ作成と同じようにInvector→Melee Combat→Create NPCよりCharactorウィンドウを表示し、モデルデータとAnimator Controllerの「Invector_MeleeCombatv2」 をもとに敵用のAnimator Controllerをセットします。

f:id:yuukihirai0331:20170823003838p:plain

 作成すると敵オブジェクトができますが、AIは働かずプレイヤーを認識しません。

f:id:yuukihirai0331:20170823235521p:plain

NavMeshを作成します。

Window→NavigationよりBakeを行います。
※ステージはStaticでなければいけません。
NavMeshの詳しい資料はこちらまで

docs.unity3d.com

 

f:id:yuukihirai0331:20170824000713p:plain

これで敵はプレイヤーを認識してくれるようになりますが攻撃をしてきません。
敵キャラに「vMeleeManager」を追加します。

f:id:yuukihirai0331:20170824001705p:plain

これで素手のみですが敵キャラらしく、プレイヤーを発見したら戦闘状態になって適度に攻撃してくる感じになります。

f:id:yuukihirai0331:20170824215002p:plain

申し訳ありませんが、AIの調整に関しては現段階では自分拡張するのが一番早いです。
敵も自キャラと同じように武器を持たせたり、パラメーターを変更することができるので「基本的な使い方」より参考にしていただければと思います。

以上で敵の作成を終わらせていただきます。

 

f:id:yuukihirai0331:20170819151212p:plain

拡張エディタ Third Person Controller - Melee Combat Template 使い方まとめ アセット真夏のアドカレ8/27 ~基本的な使い方~

はじめに
この記事は「Unity アセット真夏のアドベントカレンダー 2017」8月27日の記事になります。
今回は拡張エディタ「Third Person Controller - Melee Combat Template」の使い方のまとめの「基本的な使い方」の記事ととなります。

 

目次

1、プレイヤーキャラを作成する 

2、Charactorウィンドウの設定

 1,キャラモデルデータ

 2,アニメーションコントローラー

 3,カメラデータ

 4,UIデータ

3、各詳細設定

 

最初はアセットをインポートした後、
Assets\Invector-3rdPersonController\Melee Combat\DemoScenesの中にある「vMeleeCombat_DemoScene」を開いてみましょう。
開くとゲーム感覚で一通り機能を体験できるのでぜひやってみましょう

www.youtube.com

個人的にこの段階でゲームとしてよく出来ていると感じました・・・

 

今回、紹介する基本的な使い方はこちらの動画で

www.youtube.com

解説されていますが、動画の手順や解説していない部分を記載していきます。

 

解説する内容はUnityちゃんを使って解説していきます。
1、プレイヤーキャラを作成する

f:id:yuukihirai0331:20170819153356p:plain

Invector→Melee Combat→Create Melee Controllerを選択するとCharactorウィンドウが表示されます。

2、Charactorウィンドウの設定

f:id:yuukihirai0331:20170819154845p:plain

1,キャラモデルデータ

 動かしたいキャラのモデルデータを入れる
2,アニメーションコントローラー

 動かすアニメーションコントローラーを選択
 注意事項

 基本的に「Invector_MeleeCombatv2」というあらかじめ用意されているアニメーションコントローラーを使用するのですが、このアニメーションコントローラーはキャラごとに拡張していくのでコピーを取っておくこと推奨します。

3,カメラデータ

 こちらもあらかじめ用意されているカメラデータを使用します。今回作成するのはTPSアクションゲームを想定しているので「vMeleeCombat@CameraState」を選択しましょう。他にもトップダウン型やサイドスクロール型もあるので興味があれば触ってみるのもアリです。

4,UIデータ

 こちらもあらかじめ用意されているUIを使用します。

 

これでキャラクターの作成が終わりました。
Gif


3、各詳細設定
それでは今回作成した内容をもとに各解説を行います。

f:id:yuukihirai0331:20170819163326p:plain

1,「vThirdPersonCamera」

 今回作成したキャラクターを追尾するカメラになります。

f:id:yuukihirai0331:20170819163829p:plain

 基本的に現時点でそこまで違和感のあるカメラの挙動はしていないのでデフォルトで大丈夫だと思いますが、調整するとしたらカメラとキャラの距離は「Distance」、カメラの高さは「Height」を調整すれば良いと思います。

 

2,「vThirdPersonMelee」

 実際に動かすプレイヤーになります。
 構成はこのようになっています。

f:id:yuukihirai0331:20170819191116p:plain

 「vThirdPersonController
  デフォルトの設定クラス

f:id:yuukihirai0331:20170819171345p:plain

 「Default」「Stamina」「Layers」「Locomotion」「Jump」「Grounded」の6つのパラメーターを調整できますが基本的に「Default」が一番使うと思うのでそちらのみの解説を行います。
 重要なパラメーターを赤で引きました。

 「Max Health」・・・キャラの最大HP
 「Max Stamina」・・・キャラの最大スタミナ
 「Stamina Recovery」・・・キャラのスタミナ回復速度
 「Current Health」・・・キャラの現在の体力
 キャラを成長させたい場合はこちらの値を調整すればいけると思います。

 

 「vMeleeCombatInput
  プレイヤー入力の設定クラス

f:id:yuukihirai0331:20170819184432p:plain

 

 「vGenericAction
  新規のアクションクラス

f:id:yuukihirai0331:20170819184954p:plain

 既存以外で新しくアクションシステムを作成する場合、こちらのクラスを設定して使います。(基本的にあまり使う機会は少ないです。)

 

 「vMeleeManager
  バトルアクションクラス

f:id:yuukihirai0331:20170819185909p:plain

 戦闘するうえでとても重要なクラスになります。
 「On Damage Hit」に関数をセットすれば、このキャラにダメージがヒットした際にその処理が走ります。

 「Wepons」では右手、左手の武器を設定することが出来ます。武器の説明はこの後の記事でご紹介します。

 

 「vLockOn
  ロックオンクラス

f:id:yuukihirai0331:20170819191555p:plain

 「Aim Image Prefab」・・・ロックオン時に表示される画像

 「Aim Image Size」・・・ロックオン時に表示される画像サイズ
 現在、デフォルトの画像が入っていますがオリジナルに切り替える場合こちらを切り替えていただければ

 

3,「vGameController」
 主にゲームオーバーの時の処理になります。
 このオブジェクトはゲームマネージャーとしての役割を担っているの拡張する際はこちらを参考にすると良いと思います。

f:id:yuukihirai0331:20170819180209p:plain


4,「vUI」
 このオブジェクトの子オブジェクトに「HUD」があります。

f:id:yuukihirai0331:20170819181756p:plain

 「Health Slider」・・・HPゲージ
 「Stamina Slider」・・・スタミナゲージ
 「Damage Image」・・・ダメージ時の画面エフェクト画像
 「Flash Speed」・・・ダメージ時の画面エフェクト速度
 「Flash Colour」・・・ダメージ時の画面エフェクトの色
 重要な項目としてこんなところです。

 

今回はここまで次回に続きます

 

f:id:yuukihirai0331:20170819151212p:plain

拡張エディタ Third Person Controller - Melee Combat Template 使い方まとめ アセット真夏のアドカレ8/27

みなさん、お疲れ様です。

個人でよくゲーム開発を行っているYuuki Hiraiです。

この記事は「Unity アセット真夏のアドベントカレンダー 2017」8月27日の記事になります。
今回は拡張エディタ「Third Person Controller - Melee Combat Template」の使い方のまとめを紹介していきます。

https://www.assetstore.unity3d.com/jp/#!/content/44227

f:id:yuukihirai0331:20170819134718p:plain


PV

www.youtube.com

こんな感じのアクションRPGを手軽に作成することができる拡張エディタになっております。

使用例PV

www.youtube.com



あまりにも機能が多すぎるため、一つの記事でまとめず複数の記事で解説していきたいと思います。

基本的な使い方

studyworks.hatenablog.com

武器の作成

studyworks.hatenablog.com

敵の作成

studyworks.hatenablog.com


この3項目で解説していきます。

 

よろしくお願いします。


おまけ

YuukiHiraiの薦めるファンタジーアセットです。

http://u3d.as/W5q

YuukiHiraiの薦めるアクションゲーム用のアニメーションアセットです。
これよりクオリティの高いアニメーションアセットないと思います。

http://u3d.as/W5u

Unite報告レポート 後半

前回の続きでUnite後半のレポートです。

studyworks.hatenablog.com

 

Unite2日目は全体的を通してとても参考になるセッションが多かったです。

その中でも3つ紹介したいと思います。

1つ目は安原さんの「スマートフォンでどこまでできる?3Dゲームをぐりぐり動かすテクニック口座」です。

www.slideshare.net


これが2日目最初のセッションだったのですが、内容がコアな部分が多く、私にとってとても参考になりました。一つ一つの実装がとても最適化されていてその理由や新しい表現方法について詳しく解説されていました。

今回のUniteの資料(デモを含め)の中でトップクラスでだと思います。
Uniteにかける意気込みが十分に伝わってきました。


2つ目は小林さんの「Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクス」です。

www.slideshare.net


去年に引き続き小林さんによるトゥーンシェーダーのセッションですが、毎年この方のシェーダー研究はUnityにおける絵作りの先頭を走っているような気がします。
今回のUniteにてプリキュアあんさんぶるスターズ!のUnity採用事例を見ると、きっかけは小林さんじゃないかと思いました。
このセッションでは去年のトゥーンシェーダーとは変わり、イラストチックな表現を解説されていました。

f:id:yuukihirai0331:20170510005016p:plain

こんな感じにライティングの影響を受けるトゥーンシェーダーです。
Unity Technologies Japanの方によるセッションは全体を通して、質の高い内容が多いですが、その中でも実際にプリキュアあんさんぶるスターズ!のように採用された実績に一番貢献したのは小林さんだと思います。


最後に大道さんと島村さんによる「「Shadowverse開発事例」~美麗カードが動く!制作テクニックのすべて~」です。

【Unite 2017 Tokyo フォローアップ】『Shadowverse開発事例』 ~美麗カードが動く!制作テクニックのすべて~ | Cygames Engineers' Blog

 このセッションは初心的な部分が多く学生やゲーム業界1年目の方に向けた内容でとてもよかったです。平面シェーダによるイラスト表現でこれを行った理由やカード構成の生産性の効率化など私にとってはとても参考になりました。
そして、Cygamesさんは去年のUniteからCEDECなど大型の勉強会でスポンサーになったり、多くのセッションを開かれていてすごい勢いのある会社だと思います。こういった大型のイベントで告知することで多くの有能な開発者が集まっていると思います。私も意識しないといけませんね。

今回のレポートはこんな感じです。
Unite講演者の皆さん、受講者の皆さん、二日間お疲れ様でした。

Unite報告レポート 前半

今日はUnite2017に参加してきました。

unite.unity.com

 

今回、一日目の33セッションの中2つのセッションについてのレポートになります。

events.unity3d.jp


1つ目は「「黒騎士と白の魔王」にみるC#で統一したサーバ/クライアント開発と現実的なUniRx使いこなし術」です。

www.slideshare.net


一番最初に驚いたのがサーバーとクライアントをC#で書いているという…本日一番の衝撃でした。

私は現職でスマホのオンラインゲームを開発していますが、C#で統一しているのは初めて見ました。
確かに、言語が統一されていればサーバーとクライアントエンジニアの境界は狭まりますが、それを行うに至っての道のりがとても険しく、開発人数が多くなってしまったようですがC#のこだわりがとても強く見られました。
聞いていてハラハラするセッションでした。


2つ目が、「いかにして個人製作ゲームで生きていくか~スマホゲームレッドオーシャンの泳ぎ方~」です。

www.slideshare.net


この講演者はTwitterでよくアカウントを見かける人だったので、興味があったのですが今日のセッションではマネジメント周りがとてもわかるセッションでした。
私の周りでも個人でゲームを開発されている方は多くいらっしゃいますが、その方たちは本業があって副業として個人開発されていたのでくまんぼうさんのような本業で個人開発されている方は意識が違うと感じました。
マネジメントに対して深く考えて、そのうえでアクションを起こし、今の実績があるという。
とても説得力がありました。
見習うべきところがたくさんありました、今日の公演はこのセッションが聞けただけでも価値があったと思います。

今日はこのくらいで明日に続きます。

UnityでTPSアクションゲームを作る 第3回 後半

敵のAIを簡単に作ってみました。

 

youtu.be

blog.uzutaka.com

 

この方のAI解説がとても分かりやすかったのでこれを参考にしています。

今回はAIの解説というよりも
アニメーション周りで説明したいと思います。

自キャラと敵キャラが同じ攻撃モーションをするとき
アニメーションイベントはどのように管理するのか
とても悩みました。

 

f:id:yuukihirai0331:20170409221800p:plain


そこで上司に定時後、相談したところ
アニメーションイベントで呼ばれるスクリプト継承させてあげればいいよ。」
という解決策のもとやってみたらうまくいきました。

f:id:yuukihirai0331:20170506221203p:plain

 

こんな感じでCharactorクラスを作ってこれを
アニメーションイベントで設定し、
キャラごとに継承させて

f:id:yuukihirai0331:20170506221423p:plain

 

こんな感じで内容を各キャラごとに書いてあげればいけました。

今回はこんな感じです。

追記
先週は一週間ゲームジャムのためお休みしていました。

ラビット吹っ飛ばし | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

こんなゲーム作りました。
もしよければ遊んでください。

来週はUniteの報告をブログで書く予定です。