Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
No content
Slide 2
Slide 2 text
なかじ 略歴 → メルカリ → 現在 書籍 技術評論社『 エンジニア養成読本』共著 作品 『 』『至近距離ガール 』 日本バーチャルリアリティ学会認定 上級 技術者 専門学校の先生( エンジニア専攻) エンジニア系勉強会のオーガナイザー 『 』のパーソナリティ ~0:30
Slide 3
Slide 3 text
● ○ 想定時間20時間のVRゲーム ○ Oculus Quest/Rift/他 ○ ADV + インタラクション ● 開発中のCIの仕組みを紹介 ○ 自動ビルドと自動プレイ ● (Unityの話はあまりないかも…) ~1:00
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
● GitHubにpushするとJenkinsのジョブ(処理の単位)が動く ○ ジョブが動くと自動的にビルドとテストが実行 ■ プラットフォーム毎 ■ 設定毎(debud/ staging / release) ● ビルド失敗→ ビルドログをSlackに通知 ● ビルド成功→ NASと各プラットフォームにアップロード ➡ Pushした数分後にVRHMD実機で動作確認が可能に! ~1:30
Slide 6
Slide 6 text
社内の物理マシン ~2:00
Slide 7
Slide 7 text
● Jenkinsを採用 ○ Pros ■ 物理マシンなのでトラブル調査がしやすい ■ バッチ書きやすい (ADXのOBB化 / エラーログ転送 / アップロードツール) ■ NASへのアクセスが容易 ○ Cons ■ Slackからコマンド叩くなどが面倒 ~3:00
Slide 8
Slide 8 text
● 定期的にPollingして実行 ● CLIでUnityのメソッドを呼べる ○ ビルドとテストを実行 ○ ● 結果に応じて後続ジョブが実行 ● Slackに通知する(右図) ~4:00
Slide 9
Slide 9 text
● ジョブ毎のビルド設定機能 ○ ScriptableObjectで実現 ○ Platform / Symbols/ Build Options, etc ● エディタ上でも設定の切り替え等が可能 ~5:00
Slide 10
Slide 10 text
● 後続ジョブを実行してバッチ処理を叩く ○ Parameterized Triggerプラグインで引数を渡す ● Oculusだとコマンドラインツールが提供されている ~5:30
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
● バッチでNAS上にある最新ビルドを定期的に自動起動 ○ 3倍速で自動進行してクリアまで進めてくれる ● プレイログ/クリアログをSlackに通知 ● プレイの様子をOBSでストリーミング配信 ○ 配信サービスの規約的にOKであるか確証がないので念のため伏せる ○ Slackで「配信くれ」というとURL教えてくれる ~6:30 ➡ 常に進行不能等の不具合が、自動的に早期に検知できる
Slide 13
Slide 13 text
● バッチでNAS上にある最新ビルドを定期的に自動起動 ○ 3倍速で自動進行してクリアまで進めてくれる ● プレイログ/クリアログをSlackに通知 ● プレイの様子をOBSでストリーミング配信 ○ 配信サービスの規約的にOKであるか確証がないので念のため伏せる ○ Slackで「配信くれ」というとURL教えてくれる ~6:30 ➡ 常に進行不能等の不具合が、自動的に早期に検知できる Oculus Rift 自動プレイの様子
Slide 14
Slide 14 text
● バッチをループ ● 一定時間毎に プロセス起動と終了 ビルドジョブの完了を トリガーにしたかったが 権限的にexeの実行が うまくいかなかった ~7:30
Slide 15
Slide 15 text
~0:30
Slide 16
Slide 16 text
● インタラクションの種類毎にDEFINE切って スクリプト経由で腕を動かす力技 ● オークマネコ氏が書いてくれた ~0:30
Slide 17
Slide 17 text
● Oculus Riftは 動かさずに放置すると スリープしてしまう →スマホのアラームで 時々振動させて防ぐ ~0:30
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
● ○ 修正→確認のサイクルが頻繁なテスト期間は特に有益 ● ○ コミット -> エラー通知がくる -> 配信で情報を確認 ○ 最後までプレイできる状態が担保されて精神的に良い ~0:30
Slide 20
Slide 20 text
エンジニアなかじ ~0:30
Slide 21
Slide 21 text
ご清澄いただき ありがとうございました