蜘蛛男
今回は、趣向を変えてゲームの話を書きたいと思う。
最近発売されたPS4のゲーム「Marvel’s Spider-Man」だ!!! www.jp.playstation.com
俺もやりたいと思い、少し調べてみたら面白い記事を見つけた。
jp.automaton.am
記事の内容を簡単に説明すると、
「E3*1よりリリース時のゲームのクオリティが下がったんじゃね?」
って内容だ。
別にネガキャンをしたいとかではなく、ゲーム業界で働く身として面白い記事だと思ったから取り上げてみた。
面白いと思ったポイント
水
まずは、「水」について、
リンク記事の冒頭でも書かれている用に、床の水たまりが減ったことが取り上げられている。
「水」関係の実装は、ご存知の通り多くのプログラマーを悩ませる種のひとつ*2だが、自分が思ったのは、この「水」はゲームの性能やクオリティに関わることだとユーザーが理解しているところだ。
自分がゲームの素人なら、多分この水たまりが減ったことなんで多分気づかないし、もし気づいたとしても、ゲームのクオリティが下がったとは思わない。
このことから、今のゲームをプレイするユーザーは少なからずゲーム開発についての知識を持っていると感じた。
クラフィック重視
リンク記事を読んでいて一番感じたのが、今のユーザーは「グラフィックをどれほど重視しているか」という疑問だ。
今回の記事がグラフィック関係の内容なので正確では無いが、ユーザーはグラフィック見た目を重視している点について再度理解することが出来た。
最後に
今回の記事は趣向を変えたので、文字が多く読みづらさがあると思いますが、ご勘弁を。
. 。o O ( 誰か買って~~~~~ )
ECE プロジェクト設定
おひさっす。
前に書いてたECS系の記事の続き書こうと思っていたら、
ECSを動かす設定関連の話をしていなかったので、
まとめとくぜよ。
ECSが動くUnity
ECSやC# Job Systemが使えるようになるUnityの
バージョンをインストールしておこう!
ECSは Untiy 2018.x から使えるようになっているので、
自分のUnityのバージョンを確認してみよう!
Unityダウンロードページ
Unityのインストールとかの説明は他でしらべてね。
Unityのプロジェクト設定
ECSを使える用に次は、プロジェクト設定をしていくよ。
メニューから、Edit > Project Settings > Player Settings
選択して表示されたPlayrt Settingsの
Scripting Runtime Versionを .net 4.x に変更する。
変更すると、プロジェクトをリスタートして下さいってポップアップが表示されるので [Restart] を選択。
Unityが再読込されたらUnityのプロジェクト設定は終了。
ECSが使えるようにパッゲージ設定
プロジェクト設定はしましたが、まだECSは使えません。
ECSは、デフォルトのUnityは入っていません。
なので、ECSはのパッケージをダウンロードと設定していきます。
Unity 2018 から追加されたパッケージマネージャーを
使ってダウンロードしていきますが、ECSはいろいろなパッケージを使うので、
テキストから設定していきます。
{プロジェクトのルートフォルダ}/Packages/manifest.json
を開きます。
開いたら、上のリンクのファイルをそのままコピーして貼り付けて保存。
保存後にUnityに戻ると、Unity各パッケージのダウンロード、読み込みが始まるので待ちます。
設定は以上です。
できるだけ丁寧に説明しましたが、わからないことがあったらコメントくれたら対応しまーす。
小話
最近 SCUM買って友達と遊んでたら再現可能バグを発見。
リリースしたばかりだからしかたないね。。。(日本語対応はやめでオナシャス)
CEDEC2018のECS講演資料
おひさっす!
2018/8/22に開催されたCEDEC2018に講演されていた、
ECSに関する資料が公開されてたのでリンク乗せときます。
講師:安原 祐二 様(ユニティ・テクノロジーズ・ジャパン合同会社)
Slideshare
www.slideshare.net
Github
Youtube
この講演記事は、ECSだけでなく、「NativeArray 」や「C# Job System」「Burstコンパイラ」など、ECSに関連する内容が盛り沢山なので目を通して置くと良いかも。
。o O ( 俺もCEDECいきたかったな~ )
ラーメン : 濃菜麺 井の庄
お待ちかねラーメン
今回は、お待ちかねラーメンだよ!
なかなかに美味しくて、感動した!!!
濃菜麺 井の庄
今回、食べたのは井の庄さんの「濃菜麺」の野菜大盛りを食べました。
見た目
見た目は、二郎系を思わせる見た目になっていて、ボリューム感があります。
ちなみに、トッピングに「ジロベジ」というのがあったので、お店側も意識していると感じました。
店内は、カウンターのみで席数も少なかったですが、食券を事前に店員さんに渡すので商品が来るのが早く回転率も良かった用に感じました。
見た感じ女性は入りにくい雰囲気ですが、女性のお客さんが多く来ていたので見た目より味が勝ったと思っていいでしょう。(二郎系にしては、オシャレ)
濃菜麺
イチオシが濃菜麺(こいさいめん)で、少し変わったトッピングを乗せて食べるのがオススメらしいです。
ラーメンの種類は、とんこつラーメンでこってりした味になっています。
スープは、3日間炊い作っているので濃厚な味わいになっています。
豚骨ラーメンの旨味がすごく利いていて、とても美味しいスープでした。
麺は、太麺で少し縮れた麺になっていて、二郎系の麺の用にしっかりとしていて、食べごたえのある麺になっていました。
良かったところ
メニューが豊富
井の庄さんでは、濃菜麺だけではなくいろいろな魅力的なメニューが有りました。
辛い濃菜麺や、つけ麺、魚介系ラーメンなどの、メニューがありそれだけでも十分なのに、
トッピングや小さい丼もの種類も豊富でした。
トッピングもお面白いものが多く、「ジロベジ」「カラベジ」「カレーベジ」… 自分でカスタムして最高の1杯が作れそうです。
食べ方いろいろ
メニューが豊富に加えて、いろいろな食べたをすることができます。
まず、ラーメンなのに「割りスープ」が注文できます。
実際に、頼んみスープに入れて飲んでみると、魚介のダシがきいて、
少しあっさりして、深い味わいになりました。
また、トッピングを少し残し、再度メニュー丼に乗せて食べるなど、
様々な食べ方が推奨されていて、飽きの来ないお店だと感じました。
お冷
お冷が、なんとお茶でした!
麦茶で、こってりスープをスッキリさせてくれます。
ごちそうさまでした
上京してから、一番美味しいラーメンでした。
またいきます。
ECS 設計編
前回に引き続き、ECSについて書いていきます。
実践的なことをやりたいので、できるだけゲームに使えそうなことをやっていきます。
おさらい
更にざっくりおさらい
用語について説明するぜ!
- ECS (Entity Component System) ... 新しい設計の考えかた
- コンポーネント (ComponentData) ... データのこと
- システム (ComponentSystem) ... コンポーネントをもとに処理する処理自体
- エンティティ (Entity) ... コンポーネントをまとめたもの、データの塊
設計
前回でも紹介したとおり、ECSはどんなコンポーネント、システムを作ったかが共有できていないと
思わぬ動作をされてしまうので簡単な設計をします。
要件定義
今回は作るものは、
「キー入力で逃げるプレイヤーを追いかける敵」です。
「は? 簡単すぎやろ、アホくさ」と、思ったあなた!
申し訳ない、この要件がECSの各ポイントを抑える事ができるんや。
システム設計
まず、実装したいシステムを考えてみましょう。
- 描画
- 前方向移動
- キーボード入力移動
- 指定の方向を向く(Lookat)
今回は、これだけにしておきます。
実は、UnityECSには最初から基本的なシステムが追加されています。
「描画」と「前方向移動」は最初から備わっていいるので、
自分で実装しなくてはいけないのは、
「キーボード入力移動」と「指定の方向を向く」
です。一気に楽になりましたね!
コンポーネント設計
次に、
実装したいシステムに使うであろうコンポーネントについて考えましょう。
基本的なコンポーネントは、これまた、Unity側が追加してくれているので、ありがたく使わせてもらいましょう。
- 描画
- トランスフォーム [位置、回転、拡縮] (TransformMatrix)
- 描画するメッシュ情報 (MeshInstanceRenderer)
- 前方向移動
- 位置 (Position)
- 前方向ベクトル (Heading)
- 移動スピード (MoveSpeed)
- 移動方法のラベル (MoveForward)
- キーボード入力移動
- 位置 (Position)
- 回転 (Rotation)
- 移動スピード (MoveSpeed)
- 入力ラベル (Input)
- 指定の方向を向く
- 向かれる相手の情報
- 向かれる相手ラベル (Target)
- 位置 (Position)
- 向く自分の情報
- 向く自分ラベル (Lookat)
- 位置 (Position)
- 前方向ベクトル (Heading)
- 向かれる相手の情報
ずらっと、書いてみましたがこんな感じですけね。
ちなみに、自分で作らないといけないコンポーネントは、
「Input」「Target」「Lookat」
だけです! 楽勝やな!!!
エンティティ設計
最後に、上のシステムとコンポーネントを使って実装するオブジェクトについて考えていきましょう!!!
プレイヤー
プレイヤーが使うシステムは、
- 描画
- キーボード移動
です。
が、
敵がこちらを向いてくるので、
「向かれる情報」がいります。
以上を踏まえて、プレイヤーが持つコンポーネントは
- トランスフォーム [位置、回転、拡縮] (TransformMatrix)
- 描画するメッシュ情報 (MeshInstanceRenderer)
- 位置 (Position)
- 回転 (Rotation)
- 移動スピード (MoveSpeed)
- 入力ラベル (Input)
- 指定の方向を向く
- 向かれる相手ラベル (Target)
ざっくりこんな感じ。
敵
敵が使うシステムは
- 描画
- 前方向移動
- 指定方向を向く
です。まとめると
- トランスフォーム [位置、回転、拡縮] (TransformMatrix)
- 描画するメッシュ情報 (MeshInstanceRenderer)
- 位置 (Position)
- 前方向ベクトル (Heading)
- 移動スピード (MoveSpeed)
- 移動方法のラベル (MoveForward)
- 向く自分ラベル (Lookat)
こんな感じ~
わかりやすく絵にすると
おわり
ちょっち長くなったのでコーディングは次回かな~~~
今日が七夕なんで、織姫と彦星の小話なんだけど、
年に1回しか会えない悲しいとか皆思ってるかもしれないけど
織姫と彦星のもとになった星たちの寿命は、約80億年、
つまり80億年を人間の80年に置き換えると、
「1秒間に3回会ってる」計算になるらしい...
会い過ぎじゃね?
ECS (Entity Component System)おさわりした
ECS (Entity Component System)
今回は、Unity2018の新しく追加された、ECSついて書いていこうと思います。
実践的なことは、次に回すのであしからず。
ECS とは
ECSはソフトウェアアーキテクチャパターンの一つです。
簡単に言うとゲームの新しい設計の考え方だね。
ECSは大量のオブジェクトの処理をするのに適した設計になっています。
具体的に
ECSを使えるようになると、こんなことができます。
20万個のCubeの移動 & 描画
8000体の宇宙船(670頂点)のターゲット追従処理
ECSの詳細は、自分が説明するより他のサイトが詳しく説明してくれているので省くね。(けして面倒くさい訳ではないよ)
- オブジェクト指向でゲームを作るのはうやめよう ← 考え方について
- テラシュール ← イラスト付きでわかりやす
- C#JobSystem & ECSでCPUを極限まで使い倒そう ← SlideShare
- C#JobSystem と ECS 解説 ← 動画
- Unity公式ドキュメント
ECSを分析してみた
ECSの概要は上にサイトを参考にしてもらうとして、
今回のECSを使ってみて、自分なりに分析してみました。
- 今までのオブジェクト指向的な考えは通用しない。
- すべてのゲームが高速になるわけではない。
- 冒頭で書いた通り、大量のオブジェクトの処理が得意なだけで、格ゲーなどのオブジェクトが少ないゲームは向いていない。
- 大人数で開発する場合、どんなコンポーネントを作ったか、各システムはどのコンポーネントを使うかなど、チーム内で共有できていないと、思わぬ動作をしたりするので注意が必要。
- C# Job Systemを使えば並列処理を組むことができる。
従来との違いは
- ハードウェアにやさしい。
- 余分なデータを持たなくても良くなった (Transform君、きみのことやで)
C# Job System
分析のときにでてきたC# Job System とは、 これまた、ECSと同じでUnity2018から追加された機能です。
C# Job Systemは並列でC#の処理をさせることができる新機能なのだ!!!
並列処理をするために独特なソースの書き方をするけど、
慣れれば今までのソースより書きやすい(かも)。
ECSとC# Job Systemは組み合わせて使うことで、更に高速な処理ができるようになります。
なぜかは、次のブログで、、、
ざっくりだけどこんな感じで
次のブログはできるだけ早めに載せるから、
俺は止まんねぇからよ、
お前らが止まんねぇかぎり、その先に俺はいるぞ!
だからよ、止まるんじゃねぇぞ・・・。
いきなりつけ麺
つけ麺屋 やすべえ
いきなりチェーン店かよ、、、
とか思っているそこのあなた!
うまいから店舗が増えるんじゃい!
一番の売りは、もろちん「つけ麺」
自分もつけ麺注文しましたよ。
見た目
まず、店内がおしゃれで入りやすい
おしゃんなお皿に盛りつけられた、麺とつゆ
スタンダードなつけ麺です。
つけ麺
自分は冷盛を頼んだんですが、どうやら熱盛がおすすめらしい(後から気づいた)
だが、冷やでもうまい。
冷やしてあるから、麺のコシもしっかりあり食べ応え抜群でした。
ただ、冷盛だとつゆと麺との絡みが少し弱く感じました。
寒くなったら熱盛たべます。
つゆも、スタンダードな味で尖りがないように感じるが、
それが良い、味がまとまっていて飽きがこない味になっていました。
良かったところ
やすべえの何が良いって、麺の量増量が無料なのが最高*1
大盛は440gもあって、デブが加速するぜ!*2
あと、安い780円!!!
あとね、割りスープ最高だった、、、
割りスープのために薬味入れるの我慢してみてください。
あと、一部の人が気になる情報を最後に、
お冷やも美味しかったよ。