GDC2017その5

いよいよ最終日

⬛10:00-11:00 Lesson Learned CREATE UI THE DIVISON
・ShowDropエンジン*UBIのエンジンなのかな
ゲームエンジンのなかにUIEditorが含まれている
とてもシンプル

いろんなパーツが用意されていて設定可能
Windw,Text,Image,Stack,ScrollBox,
Text,Imah,Line,Point,Shapes,Pectors,Custom
Node

マルチでレンダリングがひつようですね

SimpleTool
いかにシンプルにして


⬛13:30-14:30 BETTER DEVWLOPMWNT THROUGH SCIENCE
HOW ALIENS, ODYSSEUS,AND TOYOTA CAN HELP IMPROVE PRODUCTION

FIND fun
RISC
VARANCE

⬛15:00-16:00 Epic AND interractive FINAL FANTASY XV

GDC最後のセッションなのでみんあので岩本の顔を見に

条件にあさせて曲を切り替えたり
ボス戦の終了などの音楽終了をどのように調整していたのか、けっこう面白いお話でした

英語で、笑いをいれながらすごいなー

GDC2017その4

今朝もなかなか調子がいいので、始めましょうか

⬛10:00-11:00
The benefit of the Vulkan graphics API

Multi-Pass rendering

Unity5。5から吐き出す方法に関して

UnityでSkyForceのレンダリングをやってるけど、すごいなー

これ、Androidででるのかな?
OpenGLESをしようしないでVulkanにしたのね

OpenGLES3とVulkanのパフォーマンス比較
OpenGLにはむらがあるなー

Vulkanの法がはーどの性能をひきだしていますね、
add more partices object or animation
keep FPS してるグラフィックのクオリティーを下げずに

なんでいまだにDX9やOpenGLES2なのかはわからない
Vulkanとの比較はDX12でやってほしいな

CGパイプラインに関して、

よしよしDX11な

こんすたんとバッファ?

Descriptor set cachをちゃんとやりましょう
Momory management
Push constant
Vulkanの方自動で設定するのでシンプルという話がよくわからないなー

平均化ということなのかな、

結局DX11との比較なのね、30%ほどGPUがアップしたようです

アプローチは

Making in fast

⬛11:30ー12:30 
Windows Holographic Rendering

ホロレンズの事は話すかな?
頑張る小野さんがカメラマン

なんか手話で説明しる人発見

おーMixedRealtyなのでHololensの話でよかった

ゲームのイメージ

おかしいな、こんな風にはみえないはずなんだけで?

プログラムに関しての情報

Unityなら、簡単に3Dの世界情報を制御できるか楽ですよ
なんか、いろいろとめんどくさそうですね

制御軸は複数あるので、それを理解してね

HolograhicRendering

これすべてのものがはいっているのがHoloLensです

そこそこのパワーなので、きおつけなくてはね

VSからパフォーマンスがみれるよ
Remoteレンダリング

たしかにPCでレンダリングするので、負荷はへるけど

未来は
Stability
 
おおー、DirectxX11のデプスバッファに対応するのはうれしいですね、黒で書かなくてもいいのかな?

デバッグTool

TheCanonicalCupTest

たしかにGlobalIIuminationした方が、きれいにみえますよね
それをどうやって情報もってくるのか?

空間状況のはあくから
なるほど、こうやって情報をいれておくのね

後半は日本のセミナーではきけてない情報なのでよかった!

⬛14:00-14:30 Find Your Biggest Fans with Googles Machine Learning

以外と課金するひとはすくないなー

課金するタイミングに監視tえ
きまっているので、そのタイミングを増やすことで

人一人からたくさんの課金ができる、
課金するユーザへの道、そのステップ

将来、もどってくる予測?
課金するタイミングを知ることでビジネスにどうつなげる?
マネタイズにつなげる?
ゲームに関してAIで、予測が可能になる(課金に関して

Googleはいつもでーたを集計しているのか

LTV

どのように課金するように誘導させるのか?
カスタマー

⬛15:00-15:30
 とくに聞きたいセンションがなかったのでエキスポへ

⬛16:00-17:00 NVIDIA GameWorks Animation Tecnologies inUnrial Engine 4

Immediate mode

Immediate mode stages

途中でメモをとっていたAndroidが暴走、バックスペースが入りっぱなしになり、一部書いたものが消えてしまった(日本に帰ってから補完)

パイプラインはこんな感じ

結局メッシュ状態にして、モーションをさせているので、その速度は
GPUで計算することでかせいでいるようです

⬛17:30-18:30 The UX of Engagement and immersion
UXのお話で

3つのEngageability Buckets
Motivation
Emotion
GameFlow

Motivation
 WikiぺリアでMotivationの意味
 
ゲームのばあいのモチベーション

色によるモチベーション
VideoGameでは

用事が入り、途中でぬけてしまいました

GDC2017その3

⬛09:30-10:30 DEEP LEARNING INTRODUCTION

朝早いセッションなのに、すごい混んでいました、はやく来て正解ですね

今はやりのディープラーニングに関してお復習してみましょう

古いタイプのAIはこんな感じでした

ディープラーニングのいろんな例を紹介です
プロトタイプでいろいろとテストしてつくってみたようです

・image classification
 白黒の画像に色をつける技術
 画像のアップコンバート

・Speech recognition
 翻訳

・Speech synthesis
 音声合成

・Recommendation system
 
・Natural language undestandion
 文章解析

・Game state ation->reward
 ゲームへの応用、
 ブロック崩しの例をあげて、ピクセルのいろから学習
 スマブラの例、強い

OpemAIもなかなかおもしろいですね、これをつかっていれば、とっかしたはなしではなくなるのかな?

⬛11:00-12:00 Magic image upscalling and Material Synthesis Using Deep Leraning

ディープラーニングはマシーンラーニングとはことなる
DEEPラーニングにはトレーニングが大切だよ

すでにいろんなところで利用されていま

イメージを生成させるのに役たてよう
・イメージの光の角度から、立体テクスチャの作成

・アップコンバートの仕組み
 ダウンスケールしてからアップスケールすのテストを繰り返す
 8X8のピクセルでいろいろとテストを繰り返してきた
 画像のダウンスケールによる高速化
 ダウンスケールしても、同じ結果が得られるのか、これは高速化にむいている

⬛14:00ー15:00 The Future of Eye Tracking
VRにおいての問題を解決するひとつの方法として、アイトラッキングがあるので、その例をみにきました

VRはEyeトラッキングがはいってはじめてかわると思えるのできてみた

Eyeトラッキングの歴史、みんなが少しずつ関わってきてくれています

3Dスペースのおいて、選択をするのはEyeトラッキングが向いている
頭を動かしてやるのはめんどくさいですからね

相手の表情が伝えるコとが可能に

選択には非常によい

ターゲットをみる、そこになげる

RapidSelection

インターフェース

アイトラッキングでポーカーなどのゲームで顔色をうかがうゲームができるようになるのでは、ないでしょうか

30ふんくらいのカンファレンスになってしまった、のこり30は質問コーナー?

⬛15:30-16:30 Data Binding Architectures for Rapid UI Creation in Unity

古いアプローチだと
デザイナーがPhotoshopでデザインしてQAがデバッグする
みんなが不幸になるSYSTEMですね、これはかなしいのでなんとかしないといけないのです

ユニティーを使ってアートデザインをさせる
みんなはっぴー
MVCの考えをちゃんと入れ込んでください

最後ユーザアクションにつながっていく

MVCiOS SDKでサポートしている
MVVM?


メッセージバスで基本的にコントロールさせるSYSTEMなのね
Viewの部分をUniyにすることで中身を

じっさいにUnityでどのようにコントロールするのか?

パフォーマンスはきになるので
ちゃんとコストのことは考えように、

13039種類の端末テストはたまらないです
なのでAutomationTests

Validation?

MessageBus-Code
Comclusion
 Dev>Art can forcus
Mocking
Working together in Unity
Unit testing
UI testing

将来はね

CodeGeneration
 Reduce manual maintenance
Artist can auto generate class

Make it OpenSource?

⬛17:00-18:00 The Data Buiiilding Pipeline of DVERWATCH

SHA-1ってこのまえGoogleに破られてたようなきがしたのだが、いいかなー

ハッシュはやっぱ使うのね
検索効率あっぷするので、必要ですよね

ひたすら、PPをよみあげるカンファレンスなのでつらいなー
これならあとでドキュメントよめばOKな話になってしまいます

GDC2017その2

GDC2017ー2日目ー1
⬛10:00ー11:00 KHRONOS Grop event Reaching the Largest Gameing Platform of all:The Web.WebGL,WebVR and glTF
ValcanTシャツをゲット、けっこう、大盤振る舞いです

WebGL 2.0
OpenXRにしたいのかな WebVRの技術がOpenXRとWebGL

APIはいろんなぷらっとフォームに展開してくのですね

テクスチャもいろいろといけるのね
テクスチャに関してはいろいろと強化をしているようですね

GPUからのフィードバックのお話

Perfomant GPU-side
SimpleObjectの対応も、GLSL ES3、0にも
OpenGLES3.0相当になるのか

・Three.js
JavaScript3Dライブラリー
昔は、難しいとおもわれていたけど、そうじゃないよ
最近はいろいろと展開してきて、音との動機とかけっこういろいろとできるようになったのね

WebGL2でレンダリングするよ

AndroidだとGooglePixelのみの対応みたいでもっと端末をふやしてほしいです

three2.Oになるといろいろとできるようになるのですね

・WebVR
WebVRはWebGLとの関係が密なので、そのへんの注意がひつようですね
OpenXRの上で動かすことで互換性を吸収

・glTF
VulkanやDX12の上でうごくのね、

glTFはマルチぷらっとフォームでどこでも動く環境を検討、PCやMac、携帯でうごいていたものがWebのもそのまま動く、そんな世界に

⬛11:20-12:20 AI Sumit
AIの会話に関していろいろと調査

Agent-driven stories VS Story-driven agent
この2つに分類して考えてみよう

Agent-driven stories の例
Story-driven agentの例

キャラクターのパーソナリティー

どのような経路でくることで、そのキャラクターの未来の行動を予測するこころみ

なにをもたらすのか、エージェントSystem的な話ができるかもしれないですね

日本のゲームだ

自動で生成が可能ですね、
マップを自動生成するのかな

AIになにを理解させるのか、これはおもしろい

小さいにたようなMapを探しだし、それに当てはめる
たしかに、状況判断させるのであれば、これは友好的なほうほうなのかもしれないですね

計算速度もたいせつなので、そこでの割りきりをしているのはGoodですね

なるほど、どのようにMAPを生成させるのか、参考になりますね
ゲームデザインをAIにやらせる方法としてはおもしろいアプロ=チですね

Use Pseudo to your adva

SEEDはOSの時間をもちいる事が多いですが
状況をSeedに使用すれば、おもしろいですね

Seedはいろんなものがあるので、考えてみよう

⬛13:20-14:20 Vulkan gameDevelopement on Mobile
DX9 and OpenGL vs DX11
なんでDX12との比較ではないのかが不思議ですが

Androidはいろいろと問題だなー

どこに問題が発生するかで、いろいろと検討しましょう

バルカンのパートナーふえてる

OpenGLにくらべたしかにバルカンに関して、パフォーマンスをでているので、よくはなっているのか!しかし、つかいにくいんだろうな、どうささせるまでの、ステップは多いけど、なれの問題です

モリーテストに関して
たしかにフレームレートに影響をうける話になるのですが、ここまで厳密にやって、どこまでの複数のAndroid端末に対応できていくのかは不思議です

5。Memory PROPERTY FLAGS ON MOBILE
モリーの分割はおおきな問題なのか

6.PushConstanrs
結局細かい調整で少しずつパフォーマンスをあげる事になるのですね小さな事からコツコツと

結局タイルに分割することにはかわりないのでPowerVRの呪縛はそのままなのですね

Zバッファがたいせつなのはたしかにわかる、さきに計算しておきば、レンダリングの負荷はへらせるので、タイルの概念があるハードでZバッファをうまくつかうのはテーマになりますね

ここまで、わかっているなら、なんでヴァルカンはこまかく設定しないといけないのか、面だ臭いだけのようなきがしてきています
 
⬛14:10-14:40
AIに関する事 Microsoftの話なんです

Hacks to System

Beware The Goalie Playing Out

Common Reasins
なにが問題なのかを正確にしっておく必要があります
AIを使うにしても、

やっぱ、AIなのでバイアスは必要になるのですね
最終的には、調整ということが必要におなることはかわらないです


どのれいやーでも結局いっしょなのですね

Biasも失敗するので注意です


なにかあればここにです

⬛15:00-15:30
キャラクターのフランチャイズの話ですね、混んでいたのでなんだと思って入ってしまったのですが

⬛15:50-16:20 AI and Full Body Animation in DOOM
玉のあたる位置でアニメーションをかえているのは。臨場感がはんぱないです。

どのようなアプローチなのかな
たまをためているところでも、キャンセルして進むAIはなかなか

なぜAIでコントロールするのか!

より自然のアニメーションになっています
AIを使うことで細かいコントロールが可能になっているのですね

こっち見る、IKにより顔だけ独立して、ターゲットに向こことができる

IKなので、ぜったい、こっちを向けない場合もあるので、そのへんの制御を忘れないでsください
どこを向いているのかは大切な話ですね

⬛16:40ー17:10
AIのプログラムをやってるよー

ちゃんとAIで判断してカバーに入る、エージェントSystemなのね
実際は広い範囲でも、ある程度くぎって制御をしています。

プレイヤーや壁の判断をしています。

どのようにカバーにはいるのか
壁のうしろにいるので、その部分をどうやるのか

へやのなか、ビルの外なのか、そのへんの判断を

どのようなチャレンジをしたのか3Dの情報をどのようにあつかうのか高低差




GDC2017その1

GGC2017その1
■10:00-11:00 Google Developer Day KeyNote

ゲームに力をいれていくような話をしていますね
「Develop」「Grow」「Earn」のサイクルの説明

・PaulBankhead
2016年は300ミリオン増えて、課金ユーザも100ミリオン増えた
SneakPeek

・JamilMoledina
ポケモンGoをおすなー

・PhilKeslin
ポケモンの人登場、ないあんてっくの話
ポケモンカンパニーとどのように連携していたのかの話ですね
最初のポケモンのムービーを見ると大分ちがうなー

・JeddHowell
トランスフォーマよくできています

Transformers Forged to fight
・Donald Mustard ’EpicGame
BattkeBreajers
だいぶコンシューマらいくになってきています
2Dをうまくつかっているので良い感じです

・ErinPiepergerdes
DCコミックのキャラクター対戦;INJUSTICE2

・LoicGounon;UBISOFT
DayDreamのゲームなのかな

インディーも押します

コンテストをひらく、サンフランシスコ、ロンドンで
・DanielCook
SPRYFOX
BEARTOPIAというゲーム

■11:20-12:20 AI ARBORIST: PROPER CULTIVATION AND CARE FOR YOUR BEHAVIOR TREES

AIを使うに当たってDBへのアクセスは負荷がかかるので、その部分の設計はたいせつですね、メモリー効率など、
そこまで設計するのね

やはりデータベースの型は4Bitなのかたしかに、小さい方がはやいですね、

どうデバッグするの?AIをどうでばっぐするのかは、たしかに興味深い

どのようにTree化するのか、そしてInterrupptionするのかな?
SPLITTING TREE?
CHILD TREE Use-CASES
COORDINATOR

HowTransitionsOccur

BehaviorTreeはむずかしいなー
結局、AIの組み合わせににている、チューニングなになるのかな

Easy to build

MissするPointとは
The point isnt about the state machines

Treeを考える事でプログラムのアルゴリズムの流れを整理できるのかもしれないですね、
AIということもありますが、ものをつくる上でのプログラミング思考てきなはなしなのかもしれないです

まてよ、Botアルゴリズムをつかって、ゲームの敵のアルゴリズムをつくれないかな逆の発送でできないのか

まさに、Treeの概念を敵のアルゴリズムにお応用しているのですね、リアルタイムでどのように判断したのかんがでてくるので分かりやすいSYSTEMです、

■13:20-13:50 IT TAKES TWO TO TANGO: INTEGRATING UX RESEARCH AND PRODUCTION AT EA
UXの話です
UXのリサーチをどれっくらいやってますか若い人にたいして

結構な人数をリサーチにわりあてているのですね41人かー
UXReserchーThe Journey
 みんながきれいにおどれるよに、床を整理するようなものですね
NBAのアプローチ方法
UXのテストのときは会話も録音して、そのようすをフィードバックするようにしています

UX ProcessーGood Research Practice

UXに関してはなるべくTOOL化して、あとで変更が可能にしておく必要っがあります。
UXの変更につよい設計をしましょう

国によっていろいろとことなるので、その部分をどのように対応していこうかなとりあえず、数値化が大切なのです。

そうか、学生さんにプレイしてもらうのがいいのかもしれないですね

Topダウンなはなしなのかもしれないですが、オーケストラのようなものなのでハーモニー、調整が必要とおもえます、

■14:10-14:40 DARK PATTERNS: HOW GOOD UX CAN BE BAD UX
How GoodUX can be bad UX

GameTitle / Company Name
スマフォのUXデザインをしているのですね
もともとはアニメータで2DデザインからUXデザイナーに転向していたようです

GoodーUXというよりEffectvーUXなのかもしれないですね
効果的なUXを提供する事がよいことなのかもしれないです

BADーUXというよりEXPLOTIONーUXなのかもしれないですね

DarkPatternExample
これはよくないですね、ページ遷移をしおて

ダメな例がつずくなー、やっぱだめなのかも

やりがちなのできおつけないといけないですね
なるなる、いろいろとダメな例がありますね

これはいいようなきがしているのですが
とくに問題ないようにおもえるのですが、そんなによくないですかね?
だめな例です?

ゲームタイトルとしてのUX,企業としてのUXのちがい

岩田さん、あいされてるなー、よしよしです

■15:00-15:30 TEACHING BY DESIGN: TIPS FOR EFFECTIVE TUTORIALS FROM 'MUSHROOM 11'
ゲームにおいてのUXのテクニック

UXに関してはゲームデザインにも大きくかかわるので、大切ですね、効果的なUI
教えること、覚えたことをどのようにくみあわせる事にでUIをよくするのか、チュートリアルなので
どう、くみたてるのか、それが大切です。

どう、止めてユーザに考える時間をあてえるのかが必要

いろではなく絵てきなひもずけを記憶に残す方法を検討します

繰り返して教育していく方法
繰り返すことでより記憶に残す方法もひとつなのかもしれないです

どう教えるか、ゆうどうするポイント
ボスなどで、どう、応用させるのか、
ストレスをあたえる、チェックポイント

最後にテストをします。
test youre tutorial

ABテストかー怖いなー、最後にベータテストもわすれないでね

■15:50ー16:10 'ICE AGE ADVENTURES': UX DIAGNOSIS FOR A LIVE-OPS GAME (CASE STUDY)
ActionPlannerというやうわりはおもしろいですね
いかに、子羊の動きにちかずけるのか?

けっこうダイナミックな運動をしているので、それをどのように表現するのか?




ぽけもんじゃないのだよ
でもキャラクターの動きは大切なので

XMLベースで管理しようとしてるけど、それはちょっとふるいかな、できればJQUERY

ところどころSYSTEM的にふるいけど、それは、最新をださないのはしょうがないかな

■16:40-17:10 PLAYING YOUR CARDS RIGHT: THE HIERARCHICAL PORTFOLIO SEARCH AI OF 'PRISMATA'
カードゲームでAIが相手をしてくれるはなしですね

IFの分岐が多いAIなのはどうかなチェスなどはストラテジーゲームとはちがうのですよ

マウスの動きもみているので、最近のAIは怖いなー、
マウスの動きから、人の心を読むとでもいうのかn

Portfolios for Other Games

これをn回で最後まで思考テストしてから実行することになるのかな?

ModularDesgn AI Defficult


EasyBotとか、いろんなレベルのBotを用意することがいいのかも、それにより、キャラクターの性格もつくれるのかもしれないですね

どのようにAISystemをかんがえるのはいいのかもしれないですね

■17:30-18:30 BEHAVIOR IS BRITTLE: TESTING GAME AI
AIをどのようにテストしようかたのしみです。

Common Problems
・Identifying Problems {Is this broken or not?}
・Identifying Causes {Why is this broken?}
・Scope of Testing {Theres so much stuff to test!}

Best Practices Testing
・General Approach to testing AI?
・Yourself vs. Others?
・Scripted AI VS 生成したAI

BestPractices-Code
・What can we do as programmers to write code that is easier to test?
・What architectures lend themselves to easier testing and debugging?



Best Practices - Tools
・What tools can we provide ourselves as programmers?
・What tool can we provide designers/QA?

AIでエラーの検出、なにをもってエラーなのか
ストレステストをしたとき、画面で判断

Just one thing before we go

AndroidStudio 2.2 のcmakeで 楽々C++開発

2016年5月18日に開かれた「google I/O 2016」
https://events.google.com/io2016/

そこで「Android Studio 2.2 Preview 1」のC++強化の話が出てました
http://tools.android.com/recent/androidstudio22preview2available

なので、いままで苦しめられていた「gradle」から「cmake」に移行
GitHubの以下を参考に資料をまとめてみました。
https://github.com/googlesamples/android-ndk/tree/master-cmake

ただ、2.2はプレビュー版ですし、まだまだ、不便な部分もあるのですが
だいぶ、楽になったので今後期待したいです。
JAVAの訴訟もあるのでC++に行きたいのかな?)
■AndroidStudio2.2 をダウンロードして実行します。
AndroidStudio2.2プレビュー版は、インストールという手順がなく、ZIPを展開した物をそのまま使用します
(すでにAndroidStudio2.1.1などがインストールされている環境だと安心です)

■プロジェクト作成
「Start a new Android Studio project」を選択し、プロジェクトを作成します。

あとはいつものように


■これでプロジェクト完成

■とりあえず実行してみる

こんなエミュレータが実行、エミュレータの設定は、いろんな資料があるので、ここでは省きます(Hyper-V快適)

動作する事がわかったら、停止

■それではNDK環境へ
まずは「cpp」ディレクトリ作成と「main.cpp」「CMakeLists.txt」を直接作成してください。

[app]
+---[src]
|   +---[main]
|   |   +---[cpp] //ディレクトリ作成
|   |   |   +---main.cpp //ソースの追加
|   |   |   +---CMakeLists.txt //cmakeのmakefile追加


[main.cpp]

#ifdef __cplusplus
extern "C" {
#endif

#include <jni.h>

void Java_com_example_myapplication_MainActivity_initFromJNI(JNIEnv *env, jobject thiz)
{
    int a=10;
}

#ifdef __cplusplus
}
#endif

[CMakeLists.txt]

cmake_minimum_required(VERSION 3.4.1)

add_library( test-jni SHARED
            main.cpp
            )

# Include libraries needed for hello-jni lib
target_link_libraries( test-jni log android)

■ファイルを作成したら、AndroidStudioに認識させます。(この辺がまが不便です)
build.gradle (Module: app)を選択し

    externalNativeBuild {
        cmake {
            path "src/main/cpp/CMakeLists.txt"
        }
    }

を追加します。

そうすると上に「Sync Now」と出てきますので、それを押してください。
「cpp」ディレクトリに「main.cppが追加されるのと
「External Build Files」に「CMakeLists.txt」が追加されたのがわかります。

Javaから実行してみよう
「maiin.cpp」 の関数名に関しては NDK の資料を参考にしてください。(命名規則をまちがえるとハングアップします)
javaファイルの「MainActivity」を編集して、C++を呼び出します

■ブレークを設定してデバッグ実行
せっかくなので、C++のソースにブレークポイントを設定して

デバッグ実行

おお、ちゃんと止まりますね、楽々