Study Works

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

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の報告をブログで書く予定です。

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

今回は敵の処理を作っていこうと思います。

前半と書いたのですが、敵のAIを作成する際にどういった設計にしようかとても迷ってしまい、2週間ぐらいかかりそうだと思い分けました。

あたり判定はプレイヤーと敵との距離を確かめて判定していく感じですね。
Colliderであたり判定をとることもできますが、アクションゲームでは判定が正しく行われないことがあるので距離による判定が一番安定して行えると思います。

敵のAIについてですが、こちらのビヘイビアツリーという考え方を主軸にやっていこうと思います。

f:id:yuukihirai0331:20170423220305p:plain

UE4の画像で申し訳ないのですが、こんな感じです。
Unityでビヘイビアツリーを調べるとこのあたりの記事が分かりやすいと思います。

幻塔戦記グリフォンの AI で使っている Behaviour Tree | Aiming 開発者ブログ

seesaawiki.jp


すいません、じつはまだブログでまとめるほどできていないので来週に深い解説と設計をしたいと思います。

本当に申し訳ありません。

よろしくお願いいたします。


Unreal Fest West 17「モバイルモバイルゲームにもっとクオリティを! UE4を使ったハイクオリティなモバイルゲーム制作について」レポート

先日「Unreal Fest West 17」に参加してきました。

unrealevent.jp

その中で一番興味深かい「モバイルモバイルゲームにもっとクオリティを! UE4を使ったハイクオリティなモバイルゲーム制作について」についてのレポートを書きます。

f:id:yuukihirai0331:20170416102302j:plain

 

現在、UE4で開発されたスマホゲームで有名なのは「Hit」でしょう。

mobile.nexon.co.jp

スマホゲームでよく開発に用いられているのはUnityやCocos2d-xが主流ですが、

韓国で「リネージュ2」や「BladeⅡ」などUE4を採用したゲームを見ると今までのスマホゲームと一線を越えるものが数多くあります。

ここでスマホの性能をざっくり表にしました。

f:id:yuukihirai0331:20170416192337j:plain

今までのスマートフォンゲームはたくさんの人に遊んでもらうため、平均より低めの性能のスペックを考慮して開発を行われていました。しかし、このようにスマホの性能は上がってきていてそれを考慮したうえでクオリティを上げて開発をしなければなりません。

ということでゲームのクオリティを上げるにはUE4の採用を検討した方が良いというセッションでした。

しかし、まだUE4を採用した日本製のスマホゲームはまだ出ていません。

なぜ、採用しないのか私の考えを上げていきます。

1、前例がない

2、学習コストがかかる

3、ロイヤルティがかかる

といった3つに分けられると思います。

 

1、前例がないというのは日本ではその前例がなく、ノウハウがないことを指します。ユーザーのデータを管理するサーバとの連携やUnityでいうところのアセットバンドルなど作るだけでなく、サービスしていくことを考えると保守性にかけるといったところがあります。
しかし、DLCという形でネットワークを介した配布はできるようなのでこれをうまく使えば出来そうです。

unrealengine.hatenablog.com

 

2、学習コストがかかるのはもちろんですが、ドキュメントが豊富なのとUE4専門会社のヒストリアさんは新卒に「Unreal Engine 4で極めるゲーム開発」を2週間ぐらいでやっているということで職種によって異なりますが、基礎は2週間ぐらいで学ぶことが出来ます。

www.borndigital.co.jp

 

3、ロイヤリティというのは一定以上の売り上げが発生した場合、売り上げの5%をEpicに支払うということを気にする企業が多く、できればUnityのようなライセンス方式で一定金額を支払って成功しても金額が変わらないというのが理想です。
そのようにしたい場合、応相談次第で出来るかもしれません。Unityのライセンス料と同じかは保証はできません。詳しくは下記に

カスタムライセンス


といった感じでしょうか。
個人的に日本のスマホ市場にUE4が採用されることを願っています。

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

一週間ぶりですね。

あれから仕事終わりにコツコツと作った進捗の動画をアップロードしています。

youtu.be

今までキャラの移動はスクリプトで書いていたのですが、今回からはRootモーションによる移動や回転を中心に行っていきます。

docs.unity3d.com

あとはブレンドツリーを使ったりなど

docs.unity3d.com

全体図はこんな感じです。

f:id:yuukihirai0331:20170409220757p:plain

歩行アニメーションが歩くモーションと走るモーションのブレンドでしています。

f:id:yuukihirai0331:20170409221008p:plain

攻撃アニメーションはイベント処理(ダメージなどどのアニメーションから派生するモーション)で実装しています。攻撃モーションは複数存在するのでサブステートで一括にまとめています。

f:id:yuukihirai0331:20170409221458p:plain

攻撃アニメーションの際、アニメーションイベントを入れてHitの処理を入れています。

docs.unity3d.com

f:id:yuukihirai0331:20170409221800p:plain

ソースコードはこんな感じ

>||

public class PlayerAction : MonoBehaviour {

Animator Animator;

bool isNextAttack = true;
int AttackCount = 0;

void Start()
{
Animator = GetComponent<Animator>();
}

void Update()
{
//アクションボタンが押されたときフラグが立っていたら
if (Input.GetButtonUp("Action")&&isNextAttack == true)
{
//アニメータのカウントに代入
Animator.SetInteger("AttackCount", AttackCount);
//攻撃アニメーション開始
Animator.SetTrigger("isAttack");
//攻撃し終えるまでフラグを下ろす
isNextAttack = false;
}
}

public void Hit()
{
//ヒットした時の処理
}

public void Next(int num)
{
//攻撃判定が終了して次に移行可能状態
isNextAttack = true;
AttackCount = num;
}

public void End(int num) {
//攻撃処理終了
AttackCount = num;
}
}

||<

大雑把ですがこんな感じでソースを書いて先ほどの全体図のアニメーションレイヤーのパスに割り当てていきます。

今回はこんな感じで来週は敵の処理を入れていこうと思います。

UnityでTPSアクションゲームを作る 初回

このブログの更新から約一年ぐらい離れていましたが、久しぶりに更新します。

私もこの4月より新社会人ということで何かやらねばと思い、ここに日々の進捗や

技術を載せていこうかと思います。

実は去年の12月にAndroidでゲームアプリを公開しまして、その経験を生かしてモバイルゲームの開発を行っていこうかと思っています。

play.google.com


※容量が大きくダウンロードはおすすめできません(正直、消したい…)

実際に開発するゲームのイメージ

f:id:yuukihirai0331:20170402210701j:plain

実は下のやつのまんまなのですが…

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

なかなか良い感じのゲームが作れそうだなぁと思い

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

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

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

のアセットを使ってゲームを作っていこうかと思います。

このブログでは実際に使ってみた技術とか紹介していこうかと思います。

皆さんの参考となる記事ができればと思います。