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
VRゲーム開発を支えた自動ビルドと自動プレイ
Search
Nakaji Kohki
January 13, 2021
Technology
2
1.9k
VRゲーム開発を支えた自動ビルドと自動プレイ
Nakaji Kohki
January 13, 2021
Tweet
Share
More Decks by Nakaji Kohki
See All by Nakaji Kohki
アバター配信アプリ『Vフレット』 でVRM 1.0対応をしてみる
nkjzm
1
210
VRMアバターでギターの弾き語りがしたい!! 『Vフレット』の開発で考えたこと
nkjzm
0
460
『ALTDEUS: Beyond Chronos』で物語に没入できる操作感を実現するマルチプラットフォーム対応の道のり / The path to multi-platform support for immersive storytelling in ALTDEUS: Beyond Chronos
nkjzm
0
340
『ALTDEUS: Beyond Chronos』におけるマルチプラットフォーム向けコントローラーの対応 / Support for multi-platform controllers in "ALTDEUS: Beyond Chronos
nkjzm
0
410
Unityで使える汎用的な ハンバーガーメニューの実装 / UniHamburger
nkjzm
3
1.3k
20時間超の物語をVRで!『ALTDEUS: Beyond Chronos』の制作を支えた”Uranus”の制作過程と機能紹介 [CEDEC2021] / Introduction of ALTDEUS' VR ADV tool "Uranus", CEDEC2021
nkjzm
1
2.4k
withコロナに見るXR業界のイマ! [CEDEC2021] / XR NOW CEDEC2021
nkjzm
3
1.8k
VRプロダクト開発ラウンドテーブル2021
nkjzm
0
1.4k
Unityでチャットに使えるモバイルキーボードの実現
nkjzm
2
5.4k
Other Decks in Technology
See All in Technology
SmartNewsにおける 1000+ノード規模 K8s基盤 でのコスト最適化 – Spot・Gravitonの大規模導入への挑戦
vsanna2
0
130
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
170
AI時代の開発生産性を加速させるアーキテクチャ設計
plaidtech
PRO
3
160
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
7
5.2k
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.7k
ビギナーであり続ける/beginning
ikuodanaka
3
750
LLM時代の検索
shibuiwilliam
1
120
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
27k
american airlines®️ USA Contact Numbers: Complete 2025 Support Guide
supportflight
1
110
United airlines®️ USA Contact Numbers: Complete 2025 Support Guide
unitedflyhelp
0
310
SaaS型なのに自由度の高い本格CMSでサイト構築と運用のコスパ&タイパUP! MovableType.net の便利機能とユーザー事例のご紹介
masakah
0
110
品質と速度の両立:生成AI時代の品質保証アプローチ
odasho
1
340
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Building an army of robots
kneath
306
45k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
820
Designing Experiences People Love
moore
142
24k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
950
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Transcript
None
なかじ 略歴 → メルカリ → 現在 書籍 技術評論社『 エンジニア養成読本』共著 作品
『 』『至近距離ガール 』 日本バーチャルリアリティ学会認定 上級 技術者 専門学校の先生( エンジニア専攻) エンジニア系勉強会のオーガナイザー 『 』のパーソナリティ ~0:30
• ◦ 想定時間20時間のVRゲーム ◦ Oculus Quest/Rift/他 ◦ ADV + インタラクション
• 開発中のCIの仕組みを紹介 ◦ 自動ビルドと自動プレイ • (Unityの話はあまりないかも…) ~1:00
None
• GitHubにpushするとJenkinsのジョブ(処理の単位)が動く ◦ ジョブが動くと自動的にビルドとテストが実行 ▪ プラットフォーム毎 ▪ 設定毎(debud/ staging /
release) • ビルド失敗→ ビルドログをSlackに通知 • ビルド成功→ NASと各プラットフォームにアップロード ➡ Pushした数分後にVRHMD実機で動作確認が可能に! ~1:30
社内の物理マシン ~2:00
• Jenkinsを採用 ◦ Pros ▪ 物理マシンなのでトラブル調査がしやすい ▪ バッチ書きやすい (ADXのOBB化 /
エラーログ転送 / アップロードツール) ▪ NASへのアクセスが容易 ◦ Cons ▪ Slackからコマンド叩くなどが面倒 ~3:00
• 定期的にPollingして実行 • CLIでUnityのメソッドを呼べる ◦ ビルドとテストを実行 ◦ • 結果に応じて後続ジョブが実行 •
Slackに通知する(右図) ~4:00
• ジョブ毎のビルド設定機能 ◦ ScriptableObjectで実現 ◦ Platform / Symbols/ Build Options,
etc • エディタ上でも設定の切り替え等が可能 ~5:00
• 後続ジョブを実行してバッチ処理を叩く ◦ Parameterized Triggerプラグインで引数を渡す • Oculusだとコマンドラインツールが提供されている ~5:30
None
• バッチでNAS上にある最新ビルドを定期的に自動起動 ◦ 3倍速で自動進行してクリアまで進めてくれる • プレイログ/クリアログをSlackに通知 • プレイの様子をOBSでストリーミング配信 ◦ 配信サービスの規約的にOKであるか確証がないので念のため伏せる
◦ Slackで「配信くれ」というとURL教えてくれる ~6:30 ➡ 常に進行不能等の不具合が、自動的に早期に検知できる
• バッチでNAS上にある最新ビルドを定期的に自動起動 ◦ 3倍速で自動進行してクリアまで進めてくれる • プレイログ/クリアログをSlackに通知 • プレイの様子をOBSでストリーミング配信 ◦ 配信サービスの規約的にOKであるか確証がないので念のため伏せる
◦ Slackで「配信くれ」というとURL教えてくれる ~6:30 ➡ 常に進行不能等の不具合が、自動的に早期に検知できる Oculus Rift 自動プレイの様子
• バッチをループ • 一定時間毎に プロセス起動と終了 ビルドジョブの完了を トリガーにしたかったが 権限的にexeの実行が うまくいかなかった ~7:30
~0:30
• インタラクションの種類毎にDEFINE切って スクリプト経由で腕を動かす力技 • オークマネコ氏が書いてくれた ~0:30
• Oculus Riftは 動かさずに放置すると スリープしてしまう →スマホのアラームで 時々振動させて防ぐ ~0:30
None
• ◦ 修正→確認のサイクルが頻繁なテスト期間は特に有益 • ◦ コミット -> エラー通知がくる -> 配信で情報を確認
◦ 最後までプレイできる状態が担保されて精神的に良い ~0:30
エンジニアなかじ ~0:30
ご清澄いただき ありがとうございました