4時間でハンドトラッキングの VR デモを作った話
Oculus Quest のハンドトラッキング SDK が公開された翌日、Unity クリスマスミートアップというイベントにハンドトラッキングのデモアプリを作っていきました。このレベルの短時間制作は初めてだったので、コツをまとめておきます。
30秒でわかるまとめ
- チャレンジ(新しく使う技術とか)の数を最小限にする
- 作業内容をリストに書いて、頭の中から追い出す
- コア体験(これだけ実現できればOK)を定める
コツは以上。以下は日記です。
下準備(12月20日夜)
仕事の会合を終え、社長に🦐ラーメンをおごってもらった後、家に帰った私ははやる気持ちを抑えられず、ハンドトラッキングに対応した新しい SDK をダウンロードした。そう、明日のイベントに何か作って持って行きたいと考えたのだ。SDK 公開後24時間なら物珍しさもあるし、なによりすぐそこに来ている未来を知ってほしかった。
🦐ラーメン美味しい…✨
— ゆーと#VRファイルマネージャー (@yutoVR) December 20, 2019
社長時間あります? ご飯いきましょうYOをしていました pic.twitter.com/pJVndmhX3e
Oculus Hand tracking API対応Oculus Integrationがきた!https://t.co/NA5LTK88rL pic.twitter.com/urWivCYGvo
— ザバイオーネ (@z_zabaglione) December 20, 2019
今回は時間が短いので、ハンドトラッキング以外の新要素は入れずに行こうと考えた。
ところが Unity を起動すると、欲が出た。Universal Render Pipeline で作りたい。Quest でも高速に動作するはずだし、その結果としてパフォーマンス調整に割く時間が減ったり、絵的な表現がしやすいはずだ。これは明らかに賭けだったが、ビルドを仕掛けて翌日起きると、無事にサンプルが完成していた。早速賭けに勝った。幸先が良い。
できれば Universal Render Pipeline でつくりたかったので。ちゃんと動いているな。 pic.twitter.com/TBEECzRIpz
— ゆーと#VRファイルマネージャー (@yutoVR) December 21, 2019
ここまでで、ハンドトラッキングのアプリを作る道筋を確認できた。下準備完了。
計画立案(以下、12月21日)
今は13時20分、イベントの開始は19時、家は18時に出ないと間に合わない。使える時間は5時間で、その間にシャワーを浴びたり洗濯をしたり、一通りの身だしなみをする時間も考えると…4時間しかない。ほんまかよ。仕事だったら「何言ってるんですか? 無理ですよ」と突っぱねるところだ。責任があるので。
冷え切った冬のベッドで震えながら、作るものはクリスマスの何かにしようと決めていたのだが、ここで少し時間を取って案を具体化する。クリスマスだからプレゼントを開ける体験が良いな。ただ開けるだけだとストーリーが不在になって没入を削ぐから、ドアを開けて(体験者から世界への関与が没入感を増す)、その先に箱があればいいんじゃないか。よしできた。もう完成したも同然。
次はやるべきことをリストに書く。脳に覚えさせようとすると、忘れたり迷ったりあらぬ方向に行ったりして時間がかかる。制作中に本質的ではないことを考えずに済むようにした。優先度もざっと決めて、太字で表した。
ドアを開けられる
- まずはピンチだけ取れればいい
- できればグーを判定する
- できればグーを押す(案内も必要になるかも)
- 箱を持てるように
- 箱が開くように
- 壁や天井を作る
- ProBuilder でやれば UV 良い感じにしてくれて楽かも
- できれば小物を置く
- BGM を入れる
- できれば外に出ると BGM 切り替え 効果音を入れる
- ドア開く音
- 雪のパーティクル
- 遠方の処理(ストレッチゴール)
- リセット機能(デモが楽になるので大事)
- 普通行われないジェスチャで
このくらい具体化しておくと、やっぱり考えることが減って楽。あとはこれらを実装していくだけ。
開発
新プロジェクトを作り、真っ先に Git リポジトリ化する。途中で破壊してしまうのはよくある事なので、いつでも時間を巻き戻せるようにしておくのは必須。Fork は良いぞ。
そして必要になりそうなアセット(ドア、🎁、そのほかクリスマスに関連しそうなもの)を Asset Store で物色する。モデル類はハイポリではななく、無料で、DL サイズが 100MB 超えていないもの(インポートにも時間かかるので)を片っ端から入れて、その中で作る。迷いは敵。この時点で14時20分。
ドアを置いたり、プレゼントを置いたりして、ドアを開ける機能も実装。雪だるま⛄は可愛かったので置きました。可愛いは正義。ここでビルドを待ちながらシャワーを浴びた。無事動作。やった! これでイベントに行ける。15時30分。
この見た目になった後、一度細かいアラを直す時間を取る。アラが見えると本当に見てほしいところを見てもらえないので意味がないのだ。AA を設定したり、外に雪を降らせたり、ドアの軋む音を入れたり、音楽がドアとともに広がるようにしたり etc。神は細部に宿ると僕の中のゴーストが囁いた。17時00分。
そして最後にガッと見た目を作る。壁と天井は ProBuilder で。ドア穴を開けたりするのも簡単で UV 調整も自動。最高か。18時00分。ここで時間切れ。Oculus Quest をひっつかんだ僕は、作りきれなかった悔しさを心のクリスマスソックスに仕舞い込み、浮かれる街の光点に紛れていった。
日記ここまで。
振り返り
- プレゼントボックスは結局開きませんでした。期待した人にはバーチャルプレゼントが出来なくて誠に申し訳ない。サンタクロースとしては0点です。これは、箱の中身のアイデアを出せなかったのが原因ですね。ゆっくり良い案を考えたい。
- エビラーメンは神。活力をくれた。
- ハンドジェスチャでリセットするアイデアは良かった。毎回コントローラーでアプリを起動しなおさなくて済み、スムーズな連続デモができた。
- 人差し指のピンチを取っているだけなんだけど、ぐっとドアノブを握る動きでそれと判定されるので AirTap の説明みたいな面倒は一切発生しなかった。具合が良い。
- リセンター用ジェスチャを実装しておけばよかった。Oculus Touch のボタンでしかリセンターされない。
- Oculus Quest は良いぞ
体験する皆さんの様子
ゆーと@yutoVR さんのアプリを体験する@shinoblogavi さん、リアクションがよいw
— あいかちゃんさん (@aicayamazaki) December 21, 2019
ハンドトラッキングもできたし、クリスマス🎄🎅なVRたのしかったー!
さすがゆーとさんですわ(このために3hくらいで作ったそうですよ!) pic.twitter.com/hsq0kdvo3z
ドアが開くやつ、ご体験いただいてます! #Unity忘年会 pic.twitter.com/kU9xSkacFR
— ゆーと#VRファイルマネージャー (@yutoVR) December 21, 2019
何気に日本最速ハンドトラッキングイベントデモだったかもしれない。
国内でQuestのハンドトラッキングデモが二つも展示されているの初めてではw #Unity忘年会 pic.twitter.com/AstccIxkIu
— Somelu (@Somelu01) December 21, 2019
🎄締めのあいさつ🎄
ご体験いただいた皆様、ありがとうございました。完成したら、クリスマスにアプリ配布します。メリークリスマス!🎅
2019年12月22日