【Unity】PlaymakerでTPSゲームを作ろうと思ったときに役に立った動画 〜 基本動作 編 〜
Unityでゲームを製作する場合は、ほとんどの場合はC#などでプログラミングをする必要があります。
ですが『Playmaker』というアセットを利用することで、コードの記述をすることなくプログラミングすることができます。
playMakerを購入する場合はこちらかどうぞ
仕組みとしては、
ある程度プログラミングされた状態で、それぞれの役割を持ったブロックがたくさん用意されており、その、ブロックを繋いでいくことでプログラミングしていきます。
こういったプログラミングのスタイルを、『ビジュアルスクリプティング』と呼ばれています。
プログラミング言語を知らなくてもある程度使いこなせるので、ゲーム製作初心者にも便利なツールです。
ですが、0から作り出すのはとてもハードルが高いので、チュートリアルなどを参考にして作っていった方が簡単に物事を進められます。
そこで、とても便利なのが、YouTubeなどの動画のチュートリアルです。
文章だけだとよくわからないこともよくあると思いますが、映像を見ながら、実際の作業手順などを確認することができるので、とても効率的に勉強を進めることができます。
日本語による動画もありますが、マニアックな内容になってくると日本語解説の動画はあまり見つかりません。
なので、海外の人が作った動画を参考にしていきます。
YouTubeの字幕翻訳機能を使うことで、大体の内容は把握できます。
今回は、タイトル通り、Playmaker を使ってTPSゲームを作るときに役に立った動画の紹介です。
【基本】キャラクターを操作する
最近のTPSで言えば『ラスト・オブ・アス』などがあります。
三人称視点のシューティングゲームで、画面のすぐ前にプレイヤーの姿が見えるタイプの構図。
まずは、その目の前にいるキャラクターを歩かせたりしたいですよね。
キャラクターを動かす方法にもいろいろな方法があります。
Unityの場合、パッと思いつくところでは2つの方法があります。
・キャラクターコントローラーを使う方法
・リジットボディーを使う方法
あまり専門的なことは分かりませんが、この2つの方法のそれぞれの違いは、
キャラクターコントローラー方式は物理的な計算をほとんどしない方式のようなので、リジットボディー方式より挙動が軽いような印象があります。
ですが、坂を滑り落ちるような動きなど、物理的な動きをさせようと思った場合、
自分でその仕組みを作る必要があったり、ちょっと凝ったことをしようとする場合のハードルが高い印象があります。
一方、リジットボディー方式は物理的な挙動をさせたいときには便利で扱いやすいです。ですが挙動が重くなる傾向があるように感じます。
それぞれに一長一短があると思います。
個人的にはできればキャラクターコントローラーを使った方式で作りたいですが、物理的な動きをさせたいことが多いので今のところリジットボディー方式を採用しています。
Third Person System Tutorial Series Unity | 2017
まずはキャラクターコントローラー方式で作っている動画です。
この動画はYouTubeのプレイリストになっています。
ざっくりと各動画の概要
1本目:キャラクターをコントロールするためのセットアップ。カメラの設定。
2本目:ジャンプシステムの実装。戦闘システム実装のための準備。
3本目:戦闘システム。コンボシステムの実装。
4本目:敵のダメージシステムの実装。
5本目:敵がプレイヤーを追いかけるシステムの実装
6本目:武器を装備したり装備を外したりするシステムの実装。
7本目:敵の攻撃モーションを実装する。
8本目以降は応用編的な印象
この動画の感想:
個人的には思い出のある動画。この動画を真似しながら作ることでPlaymakerの操作を覚えました。
話が結構速いので、途中で停止する必要があるかもです。
動画の解像度が低いので文字などが潰れ気味でちょっと見づらいのが残念。
AIに関しては、ちょっとわかりにくいかもしれない。私の場合は結局このAIシステムを採用しなかったです。
Making Survival-Shooter Game in Unity
こちらは、リジットボディー方式で制作しているチュートリアルです。
こちらもプレイリストにしてくれていました。
ざっくり概要
1本目:プロジェクトの立ち上げ〜キャラを歩かせる。
2本目:壁を乗り越えたり、キャラクターに様々な動作をさせる。
3本目:銃を構えたり、打ったりする。カメラの設定。
4本目:弾丸の飛ぶ方向の調整。銃口のエフェクト実装。
5本目:残弾表示の実装。リロードシステムの実装。
6本目:敵のダメージシステムと体力システムの実装。
7本目:敵の体力ゲージの実装
8本目:敵に弾がヒットした部位ごとにダメージ量を変えるシステム。
9本目:敵がプレイヤーを追いかけるシステム・攻撃モーションの実装。
10本目:弾丸を拾うシステムの実装。
この動画の感想:
実用的な内容でわかりやすいです。この動画のおかげでMixamoの存在を知りました。
この動画の通りにやれば、ちゃんと同じように再現ができる。
体力ゲージの作り方などは、体力以外のゲージ作りにも応用ができるので便利。
途中で、Playmakerが無料でダウンロードできるみたいな、詐欺のようなサイトを紹介しているのは、せっかく良い動画なのにもったいないと思ってしまった。
アセットを買って使うのも良いかも
この『アセット』というのは、Unityのアセットストアで購入することができるプログラムで、
例えば、キャラクターを動かすためのアセットの場合、ある程度プログラミングされた状態でそのままでもゲームとして遊べるぐらいの完成度のモノが販売されています。
そのアセットを自分で好きなように改造したり、システムの一部分だけを使ったりします。
C#の知識がある場合はとても便利な方法ですが、
私のようにPlaymaker でゲームを作ろうと思った場合は、少し厄介です。
ほとんどのアセットはC♯で書かれているので、新しい機能を付け加えようと思ったときにそれを改造するのはなかなかハードルが高いのです。
なので、プログラミングがわからない私が、そのアセットを使う場合は、改造をしないでそのアセットに含まれる機能の範囲内で作り上げる。といった方法を取ると思います。
もしPlaymakerでゲームを作ろうと思ったとき、なおかつ、アセットを利用しようと思ったときは、Playmakerで組まれたアセットを利用してみるのがおすすめです。
フローチャートを見ていけば、ある程度仕組みがわかるので、改造もしやすいと思います。
- PlayMakerで組まれたTPSのテンプレート
- PlayMakerで組まれたFPSのテンプレート
かっこいいカメラワークにしたい!
自キャラを追いかけるカメラ。いつも同じ距離でピッタリついてくるカメラでは物足りない。
壁に近づいたときにカメラが壁にめり込んでしまう。
そんな残念なカメラワークを改善したい!と思っていたら、『Chinemachine』を使うと良いっぽいことがわかりました。
ですが、どうにも上手く使いこなせないので、早速チュートリアルを探してみました。
Third Person Camera System using Cinemachine in Unity
この動画では、Cinemachineの設定と、壁にカメラがめり込まなくするための『コライダー』 の取り付け・設定などが理解できます。
銃などの武器をしっかり持たせたい!
キャラクターが銃を構えたときに、なんとなく銃がくっついてるだけのような不自然な見た目を改善してカッコよくしたい!
ということで調べていたら『Rigging』と呼ばれている技術を使うといいらしい。ってことがわかりました。
なので早速しらべていたらいい動画を見つけました。
Unity Third Person Shooter – Using Animation Rigging
Riggingを使えば、右手は銃のグリップを掴み、左手でハンドガードを支えるといった姿勢を取ることができます。
こちらの動画もプレイリストになっています。
Riggingの設定のチュートリアルは#02〜#04までの動画で解説しています。
#05以降は応用編になっています。
動画を見た感想:
この動画はplayMakerを使っていません。C#でスクリプトを組んでいます。
ですが、playMakerユーザーが見ても勉強になります。
要は、アニメーターウィンドウ内の、Riggingを適用しているレイヤーの影響度(Weight)の調節をplayMakerで制御すればいいので、割と簡単に再現ができます。
下の動画では左下のウィンドウがレイヤー情報で、playMakerで制御しています。
フェードをかけることで滑らかに切り替えることができます。
Animation Rigging のインストール方法にいてはこちらの記事が参考になります。
まとめ
今回紹介した動画は、長いやつだと1本40分とかあるので、ちょっとしんどいかもしれませんが、動画の通りにやれば再現できます。
これらの動画を見るとプログラムの仕組みが理解できるので、改造をしたりといった応用が効くと思います。
次回は、会話のシステムや敵AIのシステムなど、様々な動画を参考にしていますので、それらの動画も紹介していきたいと思います。