Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
VRoidモバイルの裏側
Search
Hare
April 25, 2020
Programming
0
220
VRoidモバイルの裏側
PlayFabを利用したサービス開発
Hare
April 25, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
CSC307 Lecture 04
javiergs
PRO
0
660
Oxlint JS plugins
kazupon
1
970
Grafana:建立系統全知視角的捷徑
blueswen
0
330
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
並行開発のためのコードレビュー
miyukiw
0
280
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
100
CSC307 Lecture 03
javiergs
PRO
1
490
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
740
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
83
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
We Are The Robots
honzajavorek
0
160
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
4 Signs Your Business is Dying
shpigford
187
22k
The Curious Case for Waylosing
cassininazir
0
240
Tell your own story through comics
letsgokoyo
1
810
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Transcript
モバイルの裏側 PlayFabを利用したサービス開発 pixiv Inc. 2020.4.25
2 • 晴佐久 哲士 • ピクシブ株式会社 (2018/8~) • フルスタックエンジニア ◦
サーバサイド (Rails / PlayFab) ◦ フロントエンド (React/Redux, Typescript) ◦ 環境構築 (AWS, Vagrant, Docker) ◦ Unity (C#, C++) • 趣味 ◦ プログラミング ◦ お絵かき ◦ CG制作 エンジニア
3 • VRoidモバイルとは • なぜPlayFab? • PlayFabをどう使っている? • 開発・運用のハマりどころ •
まとめ
4 モバイルとは アバターフォトア プリ • こだわりの3Dアバターを作成可能 • 服を着せ替えてファッションを楽しむ • AR・バーチャル空間で映えるアバター
フォトを撮影できる • VRoidモバイル
5 PlayFabの採用事例として掲載されました PlayFab and pixiv get creative with new app
6 • 開発期間の短縮 • 実績のあるサービスで信頼性がある • 開発に必要な機能の豊富さ なぜ
7 PlayFabをどう使ってる?
8 と連携したユーザ管理 VRoidHubのアカウントと紐づい たcustom idを発行 custom idは保 存しておく LoginWithCustomIdでログイン custom
id
• Catalog/Inventoryを使用 ◦ トップス・靴など ▪ Items ◦ 全身セット・顔セット ▪ Bundle
◦ VRoidコイン ▪ VirtualCurrency ◦ 購入品 ▪ PlayerのInventory 9 アイテム・ コインの管理
• APNsやFCMからトークンをPlayFabに登 録 • 登録者だけをPlayer Segmentで切り、 Schedule TasksでSegmentに一括送信 • 一括処理は秒間10プレイヤーだけに制限
されるため遅い 10 通知 トークン受 け取り トークン登 録 Token登録者 セグメント Schedule Tasks
11 • 様々なScriptを実行している ◦ キャンペーンの開始・終了を制御 ◦ キャンペーン中にログインした人にアイテムを付与するスクリプト ◦ アイテムの二重購入を検知するスクリプト (後述)
◦ カタログを更新するスクリプト ◦ Slack通知
12 • TypeScriptで記述し、gitでバージョン管 理 • webpackでビルドした最終成果物をデ プロイして運用 • GitHub連携がPlayFabはできるが Organizationには非対応
管理 バージョン管理 Push / Pull ビルド デプロイ
13 データ分析 PIXIVのサービスをBigQueryに集約 s3にイベントストリームの ログ転送 EmbulkでBigQueryに PlayFabのデータを入 れる Lookerで 分析
14 開発・運用のハマりどころ
15 • 資金決済法の要件上、利用者保護の側 面から必要だった • PlayFabにはユーザのコイン使用履歴を 取得するAPIはない • Server APIやAdmin
APIでも取得はでき ないので自前で実装した コイン使用履歴
16 コイン使用履歴 ログ保管 定期的に 収集 APIで取得 アイテム購入
17 • VRoidモバイルは衣装を一度購入したら、その商品は持っているため複数所持すること はない • アイテムを2重に購入することはできなくしたかった • Catalogにはその設定がない ◦ Stackable
/ Tradable / Limited Edition くらい • 2重にアイテムを購入した時に検知する仕組みが必要だった アイテムの 重購入検知
18 アイテムの 重購入検知 Inventory PlayStream Rule 2重購入 チェック Slack通知 Inventoryに
アイテム付与 player_inventor y_item_added イベントを検知 2重購入チェックの スクリプト実行 2重購入検知のカスタム イベント書き込み 通知スクリプト実行 アイテムの剥奪、払い戻しなど 適宜対応 通知を確認
19 • VRoidモバイルでは開発期間の短縮・安定したサービスのローンチのために PlayFabを選 定した • その中の各種機能を活用してサーバとしての機能を運用している ◦ ユーザやアイテムの管理、Push通知など ◦
足りない部分はCloudScriptで補う • 機能的に要件を満たしきれない部分があるので創意工夫をして対応している まとめ