SlideShare a Scribd company logo
1 of 29
スマホ版ログレスに
ポストエフェクトを
組み込んだ話
株式会社Aiming
藤井 章暢
アジェンダ
• 自己紹介
• スマホ版ログレスとは?
• なぜ組み込むことになったのか
• そもそもポストエフェクトとは?
• 組み込み方法
• 問題点
• まとめ
アジェンダ
• 自己紹介
• スマホ版ログレスとは?
• なぜ組み込むことになったのか
• そもそもポストエフェクトとは?
• 組み込み方法
• 問題点
• まとめ
自己紹介
• 名前:藤井 章暢(ふじい あきのぶ)
• 2016年1月、株式会社Aimingに入社
• 役職:エンジニア
– 主にクライアントエンジニア
– 時々CIエンジニア
• 所属タイトル:スマホ版ログレス
株式会社Aimingとは?
オンラインゲーム開発会社です
開発~運営まで一通り行っています
アジェンダ
• 自己紹介
• スマホ版ログレスとは?
• なぜ組み込むことになったのか
• そもそもポストエフェクトとは?
• 組み込み方法
• 問題点
• まとめ
スマホ版ログレスとは?
©Marvelous Inc. Aiming Inc.
アジェンダ
• 自己紹介
• スマホ版ログレスとは?
• なぜ組み込むことになったのか
• そもそもポストエフェクトとは?
• 組み込み方法
• 問題点
• まとめ
なぜ組み込むことになったのか
• エンジニア、デザイナーから
「演出をリッチにしたい」という
要望が前々から挙がっていた
ポストエフェクトを
組み込むことになった経緯
• 入社2週間目の月曜日
前職でポストエフェクトの
シェーダー書いてたよね?
システムから全部作って!! マジっすか(;・∀・)
上司 藤井(私)
開発環境+当時のスキル
• 当時の開発環境
– Cocos2d-x 3.2+α(独自カスタマイズあり)
シェーダーは
ある程度触ってるけど・・・
Cocos2d-x触るの
初めて・・・
システムを1から
作るの初めて・・・
アジェンダ
• 自己紹介
• スマホ版ログレスとは?
• なぜ組み込むことになったのか
• そもそもポストエフェクトとは?
• 組み込み方法
• 問題点
• まとめ
そもそもポストエフェクトとは?
• すごく平たく言うと
「描画結果に任意の画像処理を行う」
こと
アジェンダ
• 自己紹介
• スマホ版ログレスとは?
• なぜ組み込むことになったのか
• そもそもポストエフェクトとは?
• 組み込み方法
• 問題点
• まとめ
Cocos2d-xで具体的に使ったもの
• GLProgramクラス
– シェーダプログラムラッパークラス
• RenderTextureクラス
– いわゆるレンダーターゲットラッパークラス
作ったシステム
• 基礎となるシステムを作ったものは
少ない
– PostEffectRendererクラス
– PostEffectShaderBaseクラス
• はい、これだけです
各システムの概要
• PostEffectRendererクラス
– Nodeを継承している
• PostEffectRendererにaddChildされたものが
ポストエフェクトレンダリング対象にする
• PostEffectShaderBaseクラス
– ポストエフェクトシェーダの基底クラス
– このクラスを継承してシェーダパラメータの
反映や値チェックなどの処理を行う
– 1派生クラス=1ポストエフェクトシェーダ
いろいろありました
• 絶賛作成中だったある日
前任者がいなくなったから
戦闘とフィールドのシステム
引き継いでくれる? マジっすか(;・∀・)
上司 藤井(私)
いろいろありました
• システムが概ね完成して組み込み途中のある日
これ、使いにくい・・・
もっとCocos2d-xに
合わせた作りにして
すみません・・・(´・ω・`)
(レビュー前々から出してたのに・・・)
上司 藤井(私)
初版を作ってリリースするまで
• 諸々含めて5ヶ月(6月7日にリリース)
– Cocos2d-xの勉強、検証、
各シェーダの作成に約1ヶ月
– システム作ってOKもらうまでに約1ヶ月
– その間に戦闘とフィールド周りを
引き継いだのでその対応や拡張で
約1ヶ月と2週間
– 戦闘に組み込んでデータ連携させるのに
約1ヶ月
– 運用やテストに約2週間
適応結果
アジェンダ
• 自己紹介
• スマホ版ログレスとは?
• なぜ組み込むことになったのか
• そもそもポストエフェクトとは?
• 組み込み方法
• 問題点
• まとめ
問題点(改善済み)
• 電池消耗のことを考えられていなかった
– シェーダが使用していないときの描画フロー
描画命令発行 画面に描画
描画命令発行 テクスチャに描画
テクスチャを画面
に描画
Before
After
問題点(改善済み)
• 電池消耗のことを考えられていなかった
– シェーダが使用していないときの描画フロー
描画命令発行 画面に描画
描画命令発行 テクスチャに描画
テクスチャを画面
に描画
Before
After
GPU処理負荷
約1.5倍!!
問題点(改善済み)
• 電池消耗のことを考えられていなかった
– シェーダが使用していないときの描画フロー
描画命令発行 画面に描画
描画命令発行 テクスチャに描画
テクスチャを画面
に描画
Before
After
GPU処理負荷
約1.5倍!!
何も適応していない時は
こっちのフローへ変更
問題点(引き続き対応中)
• ポストエフェクトシェーダ追加に
クライアントのアップデートが
必要になる
– この辺はデータや、スクリプトで対処したい
• まだバトルにしか組み込めていない
• ポストエフェクトの種類が少ない
– 頑張る!!!
アジェンダ
• 自己紹介
• スマホ版ログレスとは?
• なぜ組み込むことになったのか
• そもそもポストエフェクトとは?
• 組み込み方法
• 問題点
• まとめ
まとめ
• 著名なフレームワークということだけ
あって欲しいものは揃っていた
– ネイティブで書くよりも
うまくラッピングされてて使いやすい
• フレームワークに沿った設計は大事
– 手戻りの発生を抑止
– 使いやすさに直結する
まだまだ話し足りないですが
続きは懇親会で!
ご静聴ありがとうございました!

More Related Content

What's hot

What's hot (20)

ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
 
Unity 5.3 の In-App Purchase を試してみた
Unity 5.3 の In-App Purchase を試してみたUnity 5.3 の In-App Purchase を試してみた
Unity 5.3 の In-App Purchase を試してみた
 
Aiming のクラウド採用基準
Aiming のクラウド採用基準Aiming のクラウド採用基準
Aiming のクラウド採用基準
 
Azure周りの振り返り
Azure周りの振り返りAzure周りの振り返り
Azure周りの振り返り
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
 
裏クラウドデザインパターン
裏クラウドデザインパターン裏クラウドデザインパターン
裏クラウドデザインパターン
 
モバイルオンラインゲームについて
モバイルオンラインゲームについてモバイルオンラインゲームについて
モバイルオンラインゲームについて
 
A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。
 
モバイルオンラインゲーム運用のための開発
モバイルオンラインゲーム運用のための開発モバイルオンラインゲーム運用のための開発
モバイルオンラインゲーム運用のための開発
 
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
 
Unityネイティブプラグインの勧め
Unityネイティブプラグインの勧めUnityネイティブプラグインの勧め
Unityネイティブプラグインの勧め
 
AimingでGoogle Cloud Platformの利用について
AimingでGoogle Cloud Platformの利用についてAimingでGoogle Cloud Platformの利用について
AimingでGoogle Cloud Platformの利用について
 
Webデザイナーの私がMicrosoft Azureを使うようになったワケ
Webデザイナーの私がMicrosoft Azureを使うようになったワケWebデザイナーの私がMicrosoft Azureを使うようになったワケ
Webデザイナーの私がMicrosoft Azureを使うようになったワケ
 
運営型モバイルゲームの運用について
運営型モバイルゲームの運用について運営型モバイルゲームの運用について
運営型モバイルゲームの運用について
 
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
 
Unityでソーシャルログイン機能を実装してみた
Unityでソーシャルログイン機能を実装してみたUnityでソーシャルログイン機能を実装してみた
Unityでソーシャルログイン機能を実装してみた
 
ポコロンダンジョンズとリアルタイム通信 -サーバサイド編-
ポコロンダンジョンズとリアルタイム通信 -サーバサイド編-ポコロンダンジョンズとリアルタイム通信 -サーバサイド編-
ポコロンダンジョンズとリアルタイム通信 -サーバサイド編-
 
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
 
ブランディングエンジニア資料
ブランディングエンジニア資料ブランディングエンジニア資料
ブランディングエンジニア資料
 

Viewers also liked

Viewers also liked (7)

Cephを用いたwordpressの構築[LT版]
Cephを用いたwordpressの構築[LT版] Cephを用いたwordpressの構築[LT版]
Cephを用いたwordpressの構築[LT版]
 
Prometheus触ってみた
Prometheus触ってみたPrometheus触ってみた
Prometheus触ってみた
 
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixConfiguration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
 
DevOps Practices: Configuration as Code
DevOps Practices:Configuration as CodeDevOps Practices:Configuration as Code
DevOps Practices: Configuration as Code
 
エフェクト用 Shader 機能紹介
エフェクト用 Shader 機能紹介エフェクト用 Shader 機能紹介
エフェクト用 Shader 機能紹介
 
エンジニアがデザインやってみた @ Aimning MeetUp 2017/10
エンジニアがデザインやってみた @ Aimning MeetUp 2017/10エンジニアがデザインやってみた @ Aimning MeetUp 2017/10
エンジニアがデザインやってみた @ Aimning MeetUp 2017/10
 
エフェクトにしっかり色を付ける方法
エフェクトにしっかり色を付ける方法エフェクトにしっかり色を付ける方法
エフェクトにしっかり色を付ける方法
 

Similar to スマホ版ログレスにポストエフェクトシステムを導入した話

なれる!フリーランス
なれる!フリーランスなれる!フリーランス
なれる!フリーランス
leverages_event
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
Yoichiro Sakurai
 
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
Satoru Yamaguchi
 
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる
Yusuke Yamamoto
 
アジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたことアジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたこと
Arata Fujimura
 
Abc2013 autumn fujiwara
Abc2013 autumn fujiwaraAbc2013 autumn fujiwara
Abc2013 autumn fujiwara
cyberagent
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
Yoichiro Sakurai
 
150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告
Naoya Shiraishi
 

Similar to スマホ版ログレスにポストエフェクトシステムを導入した話 (20)

SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
 
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
あなたも出来る!webエンジニアがSwiftでリリースするためにやったことあなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
 
Redmineプラグイン導入・開発入門
Redmineプラグイン導入・開発入門Redmineプラグイン導入・開発入門
Redmineプラグイン導入・開発入門
 
自動化について
自動化について自動化について
自動化について
 
なれる!フリーランス
なれる!フリーランスなれる!フリーランス
なれる!フリーランス
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
 
au Webポータル デプロイ・ジャーニー
au Webポータル デプロイ・ジャーニーau Webポータル デプロイ・ジャーニー
au Webポータル デプロイ・ジャーニー
 
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
 
はじめようプロトタイピング 〜もう⼿戻りなんて⾔わせない!〜
はじめようプロトタイピング 〜もう⼿戻りなんて⾔わせない!〜はじめようプロトタイピング 〜もう⼿戻りなんて⾔わせない!〜
はじめようプロトタイピング 〜もう⼿戻りなんて⾔わせない!〜
 
第38回載せられないapp
第38回載せられないapp第38回載せられないapp
第38回載せられないapp
 
2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる2013年3月20日 Tech Compass #tecomp #きのこる
2013年3月20日 Tech Compass #tecomp #きのこる
 
僕らの履歴書
僕らの履歴書僕らの履歴書
僕らの履歴書
 
20130921 技術ひろばの勉強会
20130921 技術ひろばの勉強会20130921 技術ひろばの勉強会
20130921 技術ひろばの勉強会
 
アジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたことアジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたこと
 
Abc2013 autumn fujiwara
Abc2013 autumn fujiwaraAbc2013 autumn fujiwara
Abc2013 autumn fujiwara
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告
 
スケールしない広告サーバの作り方
スケールしない広告サーバの作り方スケールしない広告サーバの作り方
スケールしない広告サーバの作り方
 
アウトプットのすすめ
アウトプットのすすめアウトプットのすすめ
アウトプットのすすめ
 

スマホ版ログレスにポストエフェクトシステムを導入した話