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

ご清澄いただき ありがとうございました