[GREE Tech Talk #07] Unityカジュアルゲーム・ケーススタディ

gree_tech
gree_techgree_tech
Copyright © GREE, Inc. All Rights Reserved.
カジュアルゲーム・ケーススタディ
Unity
グリー株式会社  
稲森亮亮介
Copyright © GREE, Inc. All Rights Reserved.
⾃自⼰己紹介
PC向けソーシャル
ゲームのクライアン
トプログラマ
Copyright © GREE, Inc. All Rights Reserved.
グリーにおけるUnity
Copyright © GREE, Inc. All Rights Reserved.
“Garage”からリリースされたプロダクト
Copyright © GREE, Inc. All Rights Reserved.
Amy the Starry Archer
Copyright © GREE, Inc. All Rights Reserved.
Amy the Starry Archer
Demo
Copyright © GREE, Inc. All Rights Reserved.
Amy the Starry Archer
11⽉月
Director
Programer
12⽉月 1⽉月 2⽉月 3⽉月
Programer
(Junior)
Artist
Artist
(3D Designer)
(Effect Designer)
(Sound Designer)
Copyright © GREE, Inc. All Rights Reserved.
• iOS7以降/デバイスはiPhone5以降
• Android4.0以降/デバイスは2年以内に発売された機種
• ただしQA結果で対応コストの高いデバイスは切る
• タブレット端末も対応
対応デバイス
Target Frame Rate
Copyright © GREE, Inc. All Rights Reserved.
“you don't gain that much from 60 fps
and it doesn't look like the real thing.”
- Nicolas Guérin(Ubisoft)
http://www.techradar.com/news/gaming/viva-la-resoluci-n-assassin-s-creed-dev-thinks-industry-is-dropping-60-fps-standard-1268241
“基本75FPS以上”
※75Hzモードの場合
- CEDEC2014「Oculus Panel Discussion ∼Oculus Riftを用いたゲーム制作∼」
30 fps? 60 fps? or...?
Copyright © GREE, Inc. All Rights Reserved.
Target Frame Rate
• iPhone5s∼、Nexus5∼等は60fpsをターゲットに
• 最低ラインは30fps
• 見た目だけじゃなくて、操作感度・難易度にも影響する為やや
注力
• Application.targetFramerateを動的に変える
Copyright © GREE, Inc. All Rights Reserved.
Copyright © GREE, Inc. All Rights Reserved.
• Graphics
• static batchingを有効に
• dynamic batchingを有効にする為の諸条件を満たす
• ピクセルライティングを使わない
• そもそもリアルタイムライティングをなるべく減らす
• テクスチャ圧縮
• アルファテスト、アルファブレンディング最小化
• Scripts
• Object PoolingでInstantiate()を避ける
• new を減らしてGCを減らす
• Physics
• Colliderはなるべくプリミティブコライダを組み合わせる
• fixedDeltaTimeは可能な範囲で小さく
基本のおさらい
Clouds
Overdraw多過ぎ
• 雲を空間埋める近景オブジェクトとして使うとやっかい
• 基本半透明だし、ある程度細かくないと雲間を通り抜けるよう
な表現をした時不自然
Overdraw多すぎ
Overdrawを減らす
Overdrawを減らす
• 全体的に雲をカメラから遠くに置き、スプライトを⼤大きく  
• 中景⽤用、遠景⽤用の雲に分け、遠景の雲はより⼤大きくして画⾯面を埋める
before after
Overdrawを減らす
Copyright © GREE, Inc. All Rights Reserved.
Sprites/Default
• Sprite⽤用シェーダの不不要な処
理理を削ってみたりもしたもの
の、フラグメントシェーダは
削れなかったのでほぼ効果無
し  
• 検証環境:  SC-‐‑‒04E/Android4.4.2  
• フラグメントシェーダのColor
処理理も削りたかったが、雲出
現時にフェードインさせる必
要があった為削れず
Copyright © GREE, Inc. All Rights Reserved.
まとめ
• 雲のように、アルファブレンディングが発生するSprite(Particle
含む)で画面を埋める場合、Overdrawをいかに減らすか工夫す
る
• 絵がチープにならない範囲で1枚あたりのSpriteを大きくし、枚
数を減らす
Lighting
[GREE Tech Talk #07] Unityカジュアルゲーム・ケーススタディ
[GREE Tech Talk #07] Unityカジュアルゲーム・ケーススタディ
[GREE Tech Talk #07] Unityカジュアルゲーム・ケーススタディ
[GREE Tech Talk #07] Unityカジュアルゲーム・ケーススタディ
Copyright © GREE, Inc. All Rights Reserved.
ライトマップを直接編集
• Asset Storeの3D背景素材は、ライ
トマップに使われたLightが削除され
ている事がある
• 1からLightを配置し直すのはしんど
いので、ライトマップテクスチャ自体
を調整すると楽
Copyright © GREE, Inc. All Rights Reserved.
ライトマップを直接編集
• exrファイル(OpenEXR)は一部の画
像編集ソフトで編集可能
Copyright © GREE, Inc. All Rights Reserved.
ライトマップテクスチャ解像度度
1024px(700KB)
Copyright © GREE, Inc. All Rights Reserved.
ライトマップテクスチャ解像度度
512px(170KB)
Copyright © GREE, Inc. All Rights Reserved.
ライトマップテクスチャ解像度度
256px(43KB)
Copyright © GREE, Inc. All Rights Reserved.
ライトマップテクスチャ解像度度
512px(170KB)
1024px(700KB) 256px(43KB)
Copyright © GREE, Inc. All Rights Reserved.
動的にライトマップ解除
• lightmapIndexはLightmapSettings.lightmapsのインデックスだが、-‐‑‒1は
ライトマップが割り当てられていない事を表す初期値  
• どこかのバージョンで1バイトから2バイトに変更更された模様
Copyright © GREE, Inc. All Rights Reserved.
その他Lightingについて
• 敵キャラクターは頂点ライティングのみ
• 常に動きまわってて、しかも遠目なのでそこまで気にならない
• でもまっすぐDirectional Lightを当てるだけだと安っぽいので、
Point Lightを複数使う
• Light Probesは使わず
• ライトマップは256px(43KB) 10枚前後 シーン数
• あんまり背景の一箇所を見つめる機会の無いゲームなので
Scripting
Copyright © GREE, Inc. All Rights Reserved.
検証
Copyright © GREE, Inc. All Rights Reserved.
検証
• Galaxy S4(SC-04E)/Android4.4.2
• Unity4.6.2
• 10万回ループさせて計測
• if文のオーバヘッドは無視できる程度
Copyright © GREE, Inc. All Rights Reserved.
cachedTransform transform GetComponent(typeof(Transform))
0.0009226
0.0003179
0.0001484
0.0005000
0.0002500
0.0007500
0.0010000
sec  
(loop:100k)
Copyright © GREE, Inc. All Rights Reserved.
GetComponent(typeof(Transform)) Function Find Raycast
0.0005000
0.0002500
0.0007500
0.0010000
sec  
(loop:100k)
(無視できるレベル)
Copyright © GREE, Inc. All Rights Reserved.
Raycast()
• 弓はUnityの衝突判定を使わず、
毎フレームRaycast()で処理
• RaycastAll系は、衝突する順に返
してくれるわけではない点に注意
• 当ゲームでは仕様上、都度RaycastHit[]を
ソートで十分にワーク
Copyright © GREE, Inc. All Rights Reserved.
検証
• 重たいとされるFind()系の中でも、FindObjectsOfType()が段
違いに重かった(7 10ms/call)
• Raycast()はColliderの数、Find()系はヒエラルキーに影響され
るはずなので、実際に使うScene上で実測してみる
Enemy Move
Copyright © GREE, Inc. All Rights Reserved.
Enemy Move
• 敵の動きが静的な場合ってどんな実装がメジャーなんでしょう
ね?
• とりあえず手付けで制御点置いてくような作業はしたくなかっ
た
• でも難易度設計上、少し複雑な動きもさせたい
Copyright © GREE, Inc. All Rights Reserved.
Enemy Move
線分(-‐‑‒5,0,10)(5,0,10)
+
=
中⼼心(5,0,10)の円
Player(Camera) Player(Camera)
Player(Camera)
Copyright © GREE, Inc. All Rights Reserved.
Enemy Move
    中⼼心(0,0,50),  半径10の円  
+  
中⼼心(0,0,10),  半径1の円  
(θ:0→1080°)
=
Player(Camera)
Copyright © GREE, Inc. All Rights Reserved.
Enemy Move
さらに⼩小さな円運動を合成
Player(Camera)
Copyright © GREE, Inc. All Rights Reserved.
Enemy Move
Copyright © GREE, Inc. All Rights Reserved.
Enemy Move
少数のパラメータで様々な動きを実現
Copyright © GREE, Inc. All Rights Reserved.
Enemy Move
• フォーメーションを組んでるような動きは、同じ軌道の敵で出
現座標をずらせばOK
• 同じ軌道と同じ出現位置で、出現時間をずらせば、1つの軌道上
を連なって動く表現
• 補助機能を用意して生産性は上がったが、直感的に設定しづら
いので、慣れるのには時間がかかる
Copyright © GREE, Inc. All Rights Reserved.
Happy Tuning!
Copyright © GREE, Inc. All Rights Reserved.
インターネットを通じて、

世界をより良良くする。
Copyright © GREE, Inc. All Rights Reserved.
1 of 52

Recommended

ターン制コマンドバトルにおける強化学習効率化 by
ターン制コマンドバトルにおける強化学習効率化ターン制コマンドバトルにおける強化学習効率化
ターン制コマンドバトルにおける強化学習効率化gree_tech
5.3K views23 slides
Cocos2d-xを用いた "LINE タワーライジング" の開発事例 by
Cocos2d-xを用いた "LINE タワーライジング" の開発事例Cocos2d-xを用いた "LINE タワーライジング" の開発事例
Cocos2d-xを用いた "LINE タワーライジング" の開発事例gree_tech
8.3K views45 slides
OSS強化学習向けゲーム環境の動向 by
OSS強化学習向けゲーム環境の動向OSS強化学習向けゲーム環境の動向
OSS強化学習向けゲーム環境の動向gree_tech
2.7K views54 slides
RPKIやってみませんか? by
RPKIやってみませんか?RPKIやってみませんか?
RPKIやってみませんか?gree_tech
1.4K views28 slides
ネットワークエンジニアがWeb開発をやってみて思ったこと by
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことgree_tech
1.4K views29 slides
FINAL FANTASY Record Keeper の作り方 by
FINAL FANTASY Record Keeper の作り方FINAL FANTASY Record Keeper の作り方
FINAL FANTASY Record Keeper の作り方dena_study
154.3K views38 slides

More Related Content

What's hot

KubernetesでPHPを動かした話 by
KubernetesでPHPを動かした話KubernetesでPHPを動かした話
KubernetesでPHPを動かした話gree_tech
2.1K views25 slides
消滅都市 Cocos2d-xでの演出・UIあれこれ by
消滅都市 Cocos2d-xでの演出・UIあれこれ消滅都市 Cocos2d-xでの演出・UIあれこれ
消滅都市 Cocos2d-xでの演出・UIあれこれShun Noguchi
12K views29 slides
OSS強化学習フレームワークの比較 by
OSS強化学習フレームワークの比較OSS強化学習フレームワークの比較
OSS強化学習フレームワークの比較gree_tech
5.8K views40 slides
DataEngConf NYC’18 セッションサマリー #2 by
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2gree_tech
3.6K views43 slides
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減 by
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減gree_tech
743 views18 slides
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介 by
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介gree_tech
4.7K views72 slides

What's hot(20)

KubernetesでPHPを動かした話 by gree_tech
KubernetesでPHPを動かした話KubernetesでPHPを動かした話
KubernetesでPHPを動かした話
gree_tech2.1K views
消滅都市 Cocos2d-xでの演出・UIあれこれ by Shun Noguchi
消滅都市 Cocos2d-xでの演出・UIあれこれ消滅都市 Cocos2d-xでの演出・UIあれこれ
消滅都市 Cocos2d-xでの演出・UIあれこれ
Shun Noguchi12K views
OSS強化学習フレームワークの比較 by gree_tech
OSS強化学習フレームワークの比較OSS強化学習フレームワークの比較
OSS強化学習フレームワークの比較
gree_tech5.8K views
DataEngConf NYC’18 セッションサマリー #2 by gree_tech
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2
gree_tech3.6K views
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減 by gree_tech
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
gree_tech743 views
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介 by gree_tech
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
gree_tech4.7K views
TB / Day規模のゲーム向けデータパイプラインを開発運用する日々 by gree_tech
TB / Day規模のゲーム向けデータパイプラインを開発運用する日々TB / Day規模のゲーム向けデータパイプラインを開発運用する日々
TB / Day規模のゲーム向けデータパイプラインを開発運用する日々
gree_tech4.1K views
FINAL FANTASY
 Record Keeper 演出データについて by dena_study
FINAL FANTASY
 Record Keeper 演出データについてFINAL FANTASY
 Record Keeper 演出データについて
FINAL FANTASY
 Record Keeper 演出データについて
dena_study21.6K views
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps by Google Cloud Platform - Japan
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Appsグリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
大規模ライブ配信の苦労ポイント by gree_tech
大規模ライブ配信の苦労ポイント大規模ライブ配信の苦労ポイント
大規模ライブ配信の苦労ポイント
gree_tech1.5K views
ガールアックス:リアルタイム通信処理の効率的な実装 by dena_study
ガールアックス:リアルタイム通信処理の効率的な実装ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス:リアルタイム通信処理の効率的な実装
dena_study5.1K views
FFRKを支えるWebアプリケーションフレームワークの技術 by dena_study
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
dena_study12.2K views
制作を支えたツール達 (パズル戦隊デナレンジャー) by dena_study
制作を支えたツール達 (パズル戦隊デナレンジャー)制作を支えたツール達 (パズル戦隊デナレンジャー)
制作を支えたツール達 (パズル戦隊デナレンジャー)
dena_study6.2K views
ゲームバランス調整補助のための強化学習の効率化 by gree_tech
ゲームバランス調整補助のための強化学習の効率化ゲームバランス調整補助のための強化学習の効率化
ゲームバランス調整補助のための強化学習の効率化
gree_tech1.9K views
REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン by gree_tech
REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプラインREALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン
REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン
gree_tech2.8K views
Effective web performance tuning for smartphone by dena_study
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphone
dena_study64.8K views
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」 by Naoki Yokota
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」
第11回 cocos2d-x勉強会 「cocos2dxでLWFを利用する」
Naoki Yokota4.5K views
FINAL FANTASY
 Record Keeper アニメーション制作の濃ゆい話 by Toshiharu Shirai
FINAL FANTASY
 Record Keeper アニメーション制作の濃ゆい話FINAL FANTASY
 Record Keeper アニメーション制作の濃ゆい話
FINAL FANTASY
 Record Keeper アニメーション制作の濃ゆい話
Toshiharu Shirai4.4K views
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー) by dena_study
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
dena_study8.3K views
Unityで本格戦国シュミレーションRPG 開発 by dena_study
Unityで本格戦国シュミレーションRPG 開発Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発
dena_study14.4K views

Similar to [GREE Tech Talk #07] Unityカジュアルゲーム・ケーススタディ

新次元ゲーム開発セミナー キーノート (Oct-18, 2012) by
新次元ゲーム開発セミナー キーノート (Oct-18, 2012)新次元ゲーム開発セミナー キーノート (Oct-18, 2012)
新次元ゲーム開発セミナー キーノート (Oct-18, 2012)Daniel-Hiroyuki Haga
4.3K views53 slides
Gcm#3 vr project making of サラと毒蛇の王冠 by
Gcm#3 vr project making of サラと毒蛇の王冠Gcm#3 vr project making of サラと毒蛇の王冠
Gcm#3 vr project making of サラと毒蛇の王冠GREE/Art
7K views112 slides
モバイル×VRにおける3Dサウンド実践 by
モバイル×VRにおける3Dサウンド実践モバイル×VRにおける3Dサウンド実践
モバイル×VRにおける3Dサウンド実践GREE/Art
10.8K views59 slides
DeNAのゲーム開発を支える技術 (クライアントサイド編) by
DeNAのゲーム開発を支える技術 (クライアントサイド編)DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNAのゲーム開発を支える技術 (クライアントサイド編)denatech2016
3K views35 slides
DeNA流cocos2d xとの付き合い方 by
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方dena_study
18.1K views44 slides
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。 by
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。ひさし App
1.5K views46 slides

Similar to [GREE Tech Talk #07] Unityカジュアルゲーム・ケーススタディ(20)

新次元ゲーム開発セミナー キーノート (Oct-18, 2012) by Daniel-Hiroyuki Haga
新次元ゲーム開発セミナー キーノート (Oct-18, 2012)新次元ゲーム開発セミナー キーノート (Oct-18, 2012)
新次元ゲーム開発セミナー キーノート (Oct-18, 2012)
Gcm#3 vr project making of サラと毒蛇の王冠 by GREE/Art
Gcm#3 vr project making of サラと毒蛇の王冠Gcm#3 vr project making of サラと毒蛇の王冠
Gcm#3 vr project making of サラと毒蛇の王冠
GREE/Art7K views
モバイル×VRにおける3Dサウンド実践 by GREE/Art
モバイル×VRにおける3Dサウンド実践モバイル×VRにおける3Dサウンド実践
モバイル×VRにおける3Dサウンド実践
GREE/Art10.8K views
DeNAのゲーム開発を支える技術 (クライアントサイド編) by denatech2016
DeNAのゲーム開発を支える技術 (クライアントサイド編)DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNAのゲーム開発を支える技術 (クライアントサイド編)
denatech20163K views
DeNA流cocos2d xとの付き合い方 by dena_study
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
dena_study18.1K views
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。 by ひさし App
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
ひさし App1.5K views
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing by Keiji Kikuchi
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote MobbingRegional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing
Keiji Kikuchi33 views
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜 by Drecom Co., Ltd.
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
Drecom Co., Ltd.3.5K views
Gcm#3 グリーモバイルサウンドの歩み・変遷 by GREE/Art
Gcm#3 グリーモバイルサウンドの歩み・変遷Gcm#3 グリーモバイルサウンドの歩み・変遷
Gcm#3 グリーモバイルサウンドの歩み・変遷
GREE/Art5.7K views
Pull request時の画面差分取得の自動化 by Shunsuke Maeda
Pull request時の画面差分取得の自動化Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化
Shunsuke Maeda6.3K views
「AROW」お披露目(実用編) by Drecom Co., Ltd.
「AROW」お披露目(実用編)「AROW」お披露目(実用編)
「AROW」お披露目(実用編)
Drecom Co., Ltd.2.3K views
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク... by Web Technology Corp.
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
CEDEC2017 VR180 3D live streaming camera at "SHOWROOM" case by Takeyuki Ogura
CEDEC2017 VR180 3D live streaming camera at "SHOWROOM" caseCEDEC2017 VR180 3D live streaming camera at "SHOWROOM" case
CEDEC2017 VR180 3D live streaming camera at "SHOWROOM" case
Takeyuki Ogura1.1K views
GREE Creators' Meetup #2 session B Manryo by Shiho Manryo
GREE Creators' Meetup #2 session B ManryoGREE Creators' Meetup #2 session B Manryo
GREE Creators' Meetup #2 session B Manryo
Shiho Manryo1.4K views
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」 by Web Technology Corp.
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕) by Developers Summit
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
Developers Summit24.9K views

More from gree_tech

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜gree_tech
729 views36 slides
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介gree_tech
229 views13 slides
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表gree_tech
1K views18 slides
アプリ起動時間高速化 ~推測するな、計測せよ~ by
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~gree_tech
1.9K views84 slides
長寿なゲーム事業におけるアプリビルドの効率化 by
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化gree_tech
347 views116 slides
Cloud Spanner をより便利にする運用支援ツールの紹介 by
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介gree_tech
689 views31 slides

More from gree_tech(20)

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech729 views
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech229 views
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech1K views
アプリ起動時間高速化 ~推測するな、計測せよ~ by gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech1.9K views
長寿なゲーム事業におけるアプリビルドの効率化 by gree_tech
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech347 views
Cloud Spanner をより便利にする運用支援ツールの紹介 by gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech689 views
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介 by gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech601 views
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について by gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech626 views
海外展開と負荷試験 by gree_tech
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験
gree_tech593 views
翻訳QAでのテスト自動化の取り組み by gree_tech
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
gree_tech305 views
組み込み開発のテストとゲーム開発のテストの違い by gree_tech
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
gree_tech577 views
サーバーフレームワークに潜んでる脆弱性検知ツール紹介 by gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech209 views
データエンジニアとアナリストチーム兼務になった件について by gree_tech
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
gree_tech308 views
シェアドサービスとしてのデータテクノロジー by gree_tech
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
gree_tech433 views
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて- by gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech1K views
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話 by gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech1.1K views
比較サイトの検索改善(SPA から SSR に変換) by gree_tech
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
gree_tech699 views
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行 by gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech2.9K views
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜 by gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech399 views
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮) by gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech753 views

Recently uploaded

パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
13 views22 slides
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PC Cluster Consortium
68 views12 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
154 views64 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
110 views26 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PC Cluster Consortium
29 views36 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
30 views17 slides

Recently uploaded(7)

PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga30 views

[GREE Tech Talk #07] Unityカジュアルゲーム・ケーススタディ

  • 1. Copyright © GREE, Inc. All Rights Reserved. カジュアルゲーム・ケーススタディ Unity グリー株式会社   稲森亮亮介
  • 2. Copyright © GREE, Inc. All Rights Reserved. ⾃自⼰己紹介 PC向けソーシャル ゲームのクライアン トプログラマ
  • 3. Copyright © GREE, Inc. All Rights Reserved. グリーにおけるUnity
  • 4. Copyright © GREE, Inc. All Rights Reserved. “Garage”からリリースされたプロダクト
  • 5. Copyright © GREE, Inc. All Rights Reserved. Amy the Starry Archer
  • 6. Copyright © GREE, Inc. All Rights Reserved. Amy the Starry Archer Demo
  • 7. Copyright © GREE, Inc. All Rights Reserved. Amy the Starry Archer 11⽉月 Director Programer 12⽉月 1⽉月 2⽉月 3⽉月 Programer (Junior) Artist Artist (3D Designer) (Effect Designer) (Sound Designer)
  • 8. Copyright © GREE, Inc. All Rights Reserved. • iOS7以降/デバイスはiPhone5以降 • Android4.0以降/デバイスは2年以内に発売された機種 • ただしQA結果で対応コストの高いデバイスは切る • タブレット端末も対応 対応デバイス
  • 10. Copyright © GREE, Inc. All Rights Reserved. “you don't gain that much from 60 fps and it doesn't look like the real thing.” - Nicolas Guérin(Ubisoft) http://www.techradar.com/news/gaming/viva-la-resoluci-n-assassin-s-creed-dev-thinks-industry-is-dropping-60-fps-standard-1268241 “基本75FPS以上” ※75Hzモードの場合 - CEDEC2014「Oculus Panel Discussion ∼Oculus Riftを用いたゲーム制作∼」 30 fps? 60 fps? or...?
  • 11. Copyright © GREE, Inc. All Rights Reserved. Target Frame Rate • iPhone5s∼、Nexus5∼等は60fpsをターゲットに • 最低ラインは30fps • 見た目だけじゃなくて、操作感度・難易度にも影響する為やや 注力 • Application.targetFramerateを動的に変える
  • 12. Copyright © GREE, Inc. All Rights Reserved.
  • 13. Copyright © GREE, Inc. All Rights Reserved. • Graphics • static batchingを有効に • dynamic batchingを有効にする為の諸条件を満たす • ピクセルライティングを使わない • そもそもリアルタイムライティングをなるべく減らす • テクスチャ圧縮 • アルファテスト、アルファブレンディング最小化 • Scripts • Object PoolingでInstantiate()を避ける • new を減らしてGCを減らす • Physics • Colliderはなるべくプリミティブコライダを組み合わせる • fixedDeltaTimeは可能な範囲で小さく 基本のおさらい
  • 19. • 全体的に雲をカメラから遠くに置き、スプライトを⼤大きく   • 中景⽤用、遠景⽤用の雲に分け、遠景の雲はより⼤大きくして画⾯面を埋める before after Overdrawを減らす
  • 20. Copyright © GREE, Inc. All Rights Reserved. Sprites/Default • Sprite⽤用シェーダの不不要な処 理理を削ってみたりもしたもの の、フラグメントシェーダは 削れなかったのでほぼ効果無 し   • 検証環境:  SC-‐‑‒04E/Android4.4.2   • フラグメントシェーダのColor 処理理も削りたかったが、雲出 現時にフェードインさせる必 要があった為削れず
  • 21. Copyright © GREE, Inc. All Rights Reserved. まとめ • 雲のように、アルファブレンディングが発生するSprite(Particle 含む)で画面を埋める場合、Overdrawをいかに減らすか工夫す る • 絵がチープにならない範囲で1枚あたりのSpriteを大きくし、枚 数を減らす
  • 27. Copyright © GREE, Inc. All Rights Reserved. ライトマップを直接編集 • Asset Storeの3D背景素材は、ライ トマップに使われたLightが削除され ている事がある • 1からLightを配置し直すのはしんど いので、ライトマップテクスチャ自体 を調整すると楽
  • 28. Copyright © GREE, Inc. All Rights Reserved. ライトマップを直接編集 • exrファイル(OpenEXR)は一部の画 像編集ソフトで編集可能
  • 29. Copyright © GREE, Inc. All Rights Reserved. ライトマップテクスチャ解像度度 1024px(700KB)
  • 30. Copyright © GREE, Inc. All Rights Reserved. ライトマップテクスチャ解像度度 512px(170KB)
  • 31. Copyright © GREE, Inc. All Rights Reserved. ライトマップテクスチャ解像度度 256px(43KB)
  • 32. Copyright © GREE, Inc. All Rights Reserved. ライトマップテクスチャ解像度度 512px(170KB) 1024px(700KB) 256px(43KB)
  • 33. Copyright © GREE, Inc. All Rights Reserved. 動的にライトマップ解除 • lightmapIndexはLightmapSettings.lightmapsのインデックスだが、-‐‑‒1は ライトマップが割り当てられていない事を表す初期値   • どこかのバージョンで1バイトから2バイトに変更更された模様
  • 34. Copyright © GREE, Inc. All Rights Reserved. その他Lightingについて • 敵キャラクターは頂点ライティングのみ • 常に動きまわってて、しかも遠目なのでそこまで気にならない • でもまっすぐDirectional Lightを当てるだけだと安っぽいので、 Point Lightを複数使う • Light Probesは使わず • ライトマップは256px(43KB) 10枚前後 シーン数 • あんまり背景の一箇所を見つめる機会の無いゲームなので
  • 36. Copyright © GREE, Inc. All Rights Reserved. 検証
  • 37. Copyright © GREE, Inc. All Rights Reserved. 検証 • Galaxy S4(SC-04E)/Android4.4.2 • Unity4.6.2 • 10万回ループさせて計測 • if文のオーバヘッドは無視できる程度
  • 38. Copyright © GREE, Inc. All Rights Reserved. cachedTransform transform GetComponent(typeof(Transform)) 0.0009226 0.0003179 0.0001484 0.0005000 0.0002500 0.0007500 0.0010000 sec   (loop:100k)
  • 39. Copyright © GREE, Inc. All Rights Reserved. GetComponent(typeof(Transform)) Function Find Raycast 0.0005000 0.0002500 0.0007500 0.0010000 sec   (loop:100k) (無視できるレベル)
  • 40. Copyright © GREE, Inc. All Rights Reserved. Raycast() • 弓はUnityの衝突判定を使わず、 毎フレームRaycast()で処理 • RaycastAll系は、衝突する順に返 してくれるわけではない点に注意 • 当ゲームでは仕様上、都度RaycastHit[]を ソートで十分にワーク
  • 41. Copyright © GREE, Inc. All Rights Reserved. 検証 • 重たいとされるFind()系の中でも、FindObjectsOfType()が段 違いに重かった(7 10ms/call) • Raycast()はColliderの数、Find()系はヒエラルキーに影響され るはずなので、実際に使うScene上で実測してみる
  • 43. Copyright © GREE, Inc. All Rights Reserved. Enemy Move • 敵の動きが静的な場合ってどんな実装がメジャーなんでしょう ね? • とりあえず手付けで制御点置いてくような作業はしたくなかっ た • でも難易度設計上、少し複雑な動きもさせたい
  • 44. Copyright © GREE, Inc. All Rights Reserved. Enemy Move 線分(-‐‑‒5,0,10)(5,0,10) + = 中⼼心(5,0,10)の円 Player(Camera) Player(Camera) Player(Camera)
  • 45. Copyright © GREE, Inc. All Rights Reserved. Enemy Move    中⼼心(0,0,50),  半径10の円   +   中⼼心(0,0,10),  半径1の円   (θ:0→1080°) = Player(Camera)
  • 46. Copyright © GREE, Inc. All Rights Reserved. Enemy Move さらに⼩小さな円運動を合成 Player(Camera)
  • 47. Copyright © GREE, Inc. All Rights Reserved. Enemy Move
  • 48. Copyright © GREE, Inc. All Rights Reserved. Enemy Move 少数のパラメータで様々な動きを実現
  • 49. Copyright © GREE, Inc. All Rights Reserved. Enemy Move • フォーメーションを組んでるような動きは、同じ軌道の敵で出 現座標をずらせばOK • 同じ軌道と同じ出現位置で、出現時間をずらせば、1つの軌道上 を連なって動く表現 • 補助機能を用意して生産性は上がったが、直感的に設定しづら いので、慣れるのには時間がかかる
  • 50. Copyright © GREE, Inc. All Rights Reserved. Happy Tuning!
  • 51. Copyright © GREE, Inc. All Rights Reserved. インターネットを通じて、
 世界をより良良くする。
  • 52. Copyright © GREE, Inc. All Rights Reserved.