![見出し画像](https://assets.st-note.com/production/uploads/images/68239086/rectangle_large_type_2_e84c5d2b3640cd65d63d6e48b811ce38.png?width=1200)
2021年のAR100Daysチャレンジを振り返る
この記事はエンジニアと人生コミュニティのAdvent Calender2021 #2 の22日目の記事です。前日はwqwqさんの2021年の振り返りを書いていくよです。アウトプット量凄いですね。
私は部署異動や登壇など色々あった一年でした。ARが本業となり来年に向けて新たに性能高めのWindowsPCやM1 Max MacbookProも購入。面白い成果を見据え頑張っています。
AR 100 Daysを振り返る
2020年に実施したシェーダー100日チャレンジに続き、2021年はAR表現実装100日チャレンジを開始しました。年末ということもあり振り返りながらいくつかピックアップしてコメントを付けていきます。
100日続けてAR表現を実装してアップする挑戦。
— SATOSHI (@shmdevelop) January 1, 2021
リポジトリ作成した!
ARKitの機能使い倒しスタジオや映像作成現場で使われる物にしたい。
LiDAR、仮想カメラ、NDI、WebRTC、Shader、Touch Designer、Unity、UE4などなど連携させたい。#hundred_days_ar_challenge
そもそものところ、ARのiOSネイティブ実装に関して掘り下げたいなと思っていました。しかし忙しさに流されて実装候補リストが消化できないままでいて募る焦燥感。これをなんとかしたいと思い、100days宣言をすることで少しずつやっつけていく日々が始まります。
大変なのは明らかだったので「これに関してストレスを溜めないこと」と決めました。100daysは癒し。習慣化の仕組み。
100日間 AR表現を作るチャレンジ Day4
— SATOSHI (@shmdevelop) January 4, 2021
「LiDARのMetal描画」
LiDARのスキャン結果をMetalで描画。
地味だが有用。
RealityKit依存ではないため表現の幅が拡がります!
100日のうちに色々なエフェクトと組み合わせていきたい。#hundred_days_ar_challenge pic.twitter.com/wIN4K3DGtg
LiDARとMetal連動など、まさにやろうとしてやれてなかったこと。これが動かせて安心した。4日目。実はこの時点で開始した元が取れた、と思った。
100日間 AR表現を作るチャレンジ Day9
— SATOSHI (@shmdevelop) January 9, 2021
「Noise wall and human model」
カメラ移動、ライティング、シェーダー的表現、3Dモデル配置、シャドウ付けを実践。
TouchDesigner使用。
作る過程で成長した日。
NDI In 使えばスマホやPC画面など表示できると考えている!#hundred_days_ar_challenge pic.twitter.com/35pkZ0WRtg
業務では使わないTouch Designerに触れる機会が増え、自分の引き出しが増えた。今年の後半に仕事でも利用。やはりこういう学習は有用。サンプルを流用しつつ理解を積み重ねよう。
100日間 AR表現を作るチャレンジ Day11
— SATOSHI (@shmdevelop) January 11, 2021
「Human and specific color」
赤い色と人間だけ色が付く世界。
Swift + Metal。
特定の色だけ色が付くカメラと
人間だけ色が付くカメラを合成。
どちらかでもできますし
赤ではない色でも出来ます。#hundred_days_ar_challenge pic.twitter.com/oDxE8XVtdj
赤い色 = ポスト、という安直な発想のサンプル動画。緑だったらピーマンを選んだだろう。青だとモンスターエナジーノンカロリー。ロケ地は自室であることが多い。出演者も自分になりがち。
100日間 AR表現を作るチャレンジ Day16
— SATOSHI (@shmdevelop) January 17, 2021
「Unity: 3D model」
AR FoundationでLiDARでスキャン生成した3Dモデル表示。
想像以上にテクスチャとモデルの質感が高い。
VFX Graphで動かそうとしたが上手くいかずここまで。#hundred_days_ar_challenge pic.twitter.com/XAblipjbry
LiDARおよびフォトグラメトリは今後より活用していきたい。ここ数年で、一般人が使える機材での生成物が質感やクオリティの壁を一つ超えた。部屋を上から見るのとかエモいですよね。これで推理や謎解きしたい。
100日間 AR表現を作るチャレンジ Day20
— SATOSHI (@shmdevelop) January 23, 2021
「Space Voxels」
指でなぞった箇所に現実空間の色を反映したVoxelを並べる実装。
空間認識しているので配置も面白い。
今後も別箇所で応用できそう。
ソース整理したらGitHubにアップします。#hundred_days_ar_challenge pic.twitter.com/Rpr8gua4kx
空間からの情報取得とインタラクションはまだ追求しがいがある。指とカメラと現実の連動。物理空間は入力値。カメラやアプリを通して情報が加工され世界のどこかで見ている人の眼に数秒で届く。太古から人類が夢想していたことが現実になっている。良い時代だ。蛇足だけどオンラインで格ゲーできているのもマジで凄い。
100日間 AR表現を作るチャレンジ Day21
— SATOSHI (@shmdevelop) January 24, 2021
「LiDAR Radar(LiDAR)」
空間スキャンのオーバーレイ点描画と
ダブルタップで真上から見たレーダー表示への移行
部屋のスキャンが可視化できとても良い感じ
RealityKit + Metalでの実装です
ソースはGitHubにアップ済み#hundred_days_ar_challenge pic.twitter.com/PuRY6r5Abg
このレーダー風表示と現実箇所の切り替えは別の形で応用していきたい。シンプルに格好良い。
100日間 AR表現を作るチャレンジ Day34
— SATOSHI (@shmdevelop) February 9, 2021
"BlotterMedia like"
ライン表現をBlotterMedia風にブラッシュアップ。
良い感じだ。
ここから線のアニメーションまでいけるだろうか。
ノイズで手書き感付加などはできそう。#hundred_days_ar_challenge pic.twitter.com/eM25WRugqC
自分の体調をオーラで表現すると伝わりやすいだろうか。伝わり過ぎだろうか。弱々しい紫色のオーラでオンライン会議に出たらオーラハラスメントだろうか。
100日間 AR表現を作るチャレンジ Day35
— SATOSHI (@shmdevelop) February 11, 2021
"Fogged line world"
数メートル先から線になる世界を表現!
ゲームや探索で使えそう。
LiDAR使用。
Depthがリアルタイムで精度高く取れシェーダーのパラメータに使えるので他にも色々できる。#hundred_days_ar_challenge pic.twitter.com/TG1rYQEwgS
数メートルから先が線画になる世界。自分がこんな実装していたのを振り返って思い出した。悪くないと思う。話は変わるけれど表現系のものはリアルタイムでパラメータ調整できないととても大変。とは言えパラメータ毎にスライダーのUIを足すのも億劫。そういう土台や仕組み作りからやる方が近道だな、と今更ながら思う。
100日間 AR表現を作るチャレンジ Day39
— SATOSHI (@shmdevelop) February 16, 2021
"Real world Splatoon!"
ついにできました!
現実スプラトゥーン!
カラーボール発射してLiDARでリアルタイムスキャンした箇所をその形に沿って塗ることができました。
うおー!
これ楽しそうじゃないですか!#hundred_days_ar_challenge pic.twitter.com/OglLPurlL6
不具合ありながらもなんとか実装したかったものに到達した日。100daysやっていなかったらこれも無かっただろう。積み重ねや執着が大事だなと感慨に耽ったりした。動かして人に見せると新たな反応がありやる気も出る。予想外の展開にもつながることもある。キレイに動くようにし、世界中の人に触ってもらいたいと改めて思った。
100日間 AR表現を作るチャレンジ Day43
— SATOSHI (@shmdevelop) February 27, 2021
"Only facemap"
顔のみの映像取り出し
顔部分映像をMetalで再構成している
背景をグリーンにしたらこれのみでも応用できそうだ
ここから2D展開した形にできれば別の顔に貼り付けられるかも、と妄想していてそこまでやりたいな#hundred_days_ar_challenge pic.twitter.com/uLndu7a2ZQ
機材が進化するとこういった切り出しがリアルタイムで可能となる。顔データの保存はある程度深掘ったけど途中でエネルギーが尽きて中途半端になってしまった。再トライする。
100 days AR Challenge Day57
— SATOSHI (@shmdevelop) October 25, 2021
"Free-D (only attitude WIP)"
SwiftでのFree-D protocol送信の一部実装
カメラの回転系情報を30fpsで送信!
今回Touch Designerで受信
iPhoneの回転をBoxに反映
想定通りではない挙動あり直してゆくhttps://t.co/vTlgnJgIB8#hundred_days_ar_challenge pic.twitter.com/aIteXdq3UZ
FreeD送信をできるようにし、ARKitとセンサーの情報からバーチャルプロダクションに応用できるようにしている。まだ調整中だけれど2022年には出せると思います。これも100Daysの成果と言えそう。
100 days AR Challenge Day59
— SATOSHI (@shmdevelop) October 29, 2021
"Nearby Interaction, auto set planes"
ARKitとNearby Interactionを使っての自動配置!
1m毎に距離をプロットしています
iPhone 13 ProのオートフォーカスはARKitでのカメラ映像にも掛かっているhttps://t.co/vTlgnJgIB8#hundred_days_ar_challenge pic.twitter.com/clLIZtSkre
U1チップの検証。iPhone背中合わせだと高精度。そうではないと使えるけれど精度は低下。iPhoneは人か。目と目を合わせる2人なのか。
100 days AR Challenge Day62
— SATOSHI (@shmdevelop) November 6, 2021
"Image Board"
空間に浮かぶイメージボード
なかなか格好良くできました!
タップで ランダム配置→整列
チラつき防止の工夫もしてます
こちらを応用しAR対応https://t.co/dzdyV497Wg
岸川さんに大感謝です!
GitHubソースアップ済#hundred_days_ar_challenge pic.twitter.com/ykm1GcUpeq
Swiftネイティブでの実装。シンプルだけど階層感があったり動きがあると「おっ」となる。表現力ではゲームエンジンが勝つけれど、派手さを求めない要件ではネイティブの良いところが出そう。
100 days AR Challenge Day71
— SATOSHI (@shmdevelop) November 27, 2021
"Osmo Mobile 3 as PTZ"
スマートフォン用ジンバルのDJI Osmo Mobile 3をSDKを使い制御
これでiPhoneをPTZカメラ化する可能性が拓けた
わくわくする展開https://t.co/Q10LIWPCSL#hundred_days_ar_challenge pic.twitter.com/bpZplESHuh
DJIのジンバル余らせている人もいるのではないだろうか。まだ活躍の場はありますよ。DJIに限らずSDKがある機材はテンションが上がる。連動させることができるので夢が広がる。しかしOSバージョンのサポート範囲が狭いとテンションが下がる。シンプルだけど応用して色々実現でき長生きするSDKって作るの難しいだろうな。
最後に
実はまだ100daysは継続中。良い感じの着地を考えています。実装を通じてもう少しやり切れば大きな価値につながりそうなものも出てきているのでそれらを詰めていきたいと思っています。Twitterで最新情報流しているので良かったらフォローしてください。
この記事が気に入ったらサポートをしてみませんか?