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
ARDKハンズオン1のメインスライド
Search
ppengotsu
June 17, 2022
Technology
0
660
ARDKハンズオン1のメインスライド
ppengotsu
June 17, 2022
Tweet
Share
More Decks by ppengotsu
See All by ppengotsu
ARDKハンズオン1用に準備して欲しいこと
ppengotsu
0
460
Other Decks in Technology
See All in Technology
Building Dashboards as a Hobby
egmc
0
180
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
120
【NW X Security JAWS#3】L3-4:AWS環境のIPv6移行に向けて知っておきたいこと
shotashiratori
0
140
反実仮想機械学習とは何か
usaito
PRO
11
4.6k
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
0
190
Hands-on Gemini, the Google DeepMind LLM
meteatamel
1
110
複雑な構成要素を持つUIとの向き合い方 〜新・支出グラフでの実例〜 / B43 TECH TALK
nakamuuu
0
140
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
4
390
現代CSSフレームワークの内部実装とその仕組み
poteboy
7
3.6k
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
120
MapLibreとAmazon Location Service
dayjournal
1
150
レガシーをぶっ壊せ。AEONで始めるDevRelの話 / Qiita Night 2024-2-22
aeonpeople
3
1.3k
Featured
See All Featured
Producing Creativity
orderedlist
PRO
337
39k
The MySQL Ecosystem @ GitHub 2015
samlambert
243
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Building Flexible Design Systems
yeseniaperezcruz
319
37k
Clear Off the Table
cherdarchuk
84
310k
Designing for humans not robots
tammielis
248
25k
It's Worth the Effort
3n
180
27k
Bash Introduction
62gerente
604
210k
How GitHub (no longer) Works
holman
304
140k
Typedesign – Prime Four
hannesfritz
36
2.1k
Debugging Ruby Performance
tmm1
70
11k
Transcript
#ARDKUG Zoomで質問受付中 Niantic Lightship ARDK online Hands-on workshop #1 佐久間捷矢
/ デザイニウム 1
#ARDKUG Zoomで質問受付中 登壇者 2 Designium @ppengotsu 佐久間 Niantic 白石 Designium
@marikocco マリコ Niantic Joe
#ARDKUG Zoomで質問受付中 ハンズオンの質疑など 3 エラーで詰まった場合などは、Discordの”〇〇” Zoomのチャットで質問くださ い。 zoomは、いいね!👍などリアクションもお願いします 人数が人数ですので、もし自分のところでは、そのエラーなおったよー!みたい な方いたら、返信お願いします。
Twitterで制作物などをつぶやくときは、#ARDK #ARDKUG をつけてツイートし てもらえるとたすかります。
#ARDKUG Zoomで質問受付中 本日の流れ 4
#ARDKUG Zoomで質問受付中 ARDKの説明の前に、、 5
#ARDKUG Zoomで質問受付中 Unityで新規プロジェクトを作成 6 Unity2021.3.3f1で、新規3D(URP)プロジェクトを作成してください。 作成後、プラットフォームをiOSに変更してください。
#ARDKUG Zoomで質問受付中 ARDKの簡単な説明 7
#ARDKUG Zoomで質問受付中 ARDKとは? 8 NianticのLightshipに属するAR SDKとなります Niantic Lightship ARDK VPS
#ARDKUG Zoomで質問受付中 ARDKを使った例 9 https://youtu.be/bQ8lUzU52Pc
#ARDKUG Zoomで質問受付中 ARDKの特徴 10 特徴は、4つあります。 • メッシュ • セマンティックセグメンテーション •
マルチプレイヤー • VPS ←New!!
#ARDKUG Zoomで質問受付中 ARDKの特徴 - メッシュ機能 11 • iPhone8以上 • 2018年以降発売のハイエンド
Android であれば、周りの環境に合わせて、 メッシュを生成できます。 https://youtu.be/4m_rdpFxJao この後、一緒に作ります。
#ARDKUG Zoomで質問受付中 ARDKの特徴 - セマンティックセグメンテーション機能 12 後半、この機能のサンプル で遊びます。 https://www.youtube.com/watch?v=fpKNd2LKAuk &t=3s
#ARDKUG Zoomで質問受付中 ARDKの特徴 - マルチプレイヤー機能 13 iOS、Androidを相互に繋ぎ、 複数端末を同期したARを作成できます。 サーバは、Nianticが稼働させている ものを使います
後半、この機能のサンプル で遊びます。 https://youtu.be/bQ8lUzU52Pc
#ARDKUG Zoomで質問受付中 ARDKの特徴 - VPS機能 14 現実の位置に合わせて、3Dモデルを 設置できるようになる機能です。 詳細 https://lightship.dev/docs/ardk/vp
s/concepts_and_terminology.html https://www.youtube.com/watch?v=wwFiZ7CU9LE &t=24s
#ARDKUG Zoomで質問受付中 ARDKの特徴 15 特徴は、4つあります。 • メッシュ • セマンティックセグメンテーション •
マルチプレイヤー • VPS ←New!!
#ARDKUG Zoomで質問受付中 ARDKの簡単な説明は終わり 16
#ARDKUG Zoomで質問受付中 初級編2の実践 17
#ARDKUG Zoomで質問受付中 目標 18
#ARDKUG Zoomで質問受付中 情報 19 参考元ブログ https://note.com/thedesignium/n/nbfba2a831469 ブログは、少し古いARDKかつ、旧式レンダーラインで環境構築したものです。
#ARDKUG Zoomで質問受付中 ステップ一覧 20 1. PlayerSettingsの変更 2. ARDK本体のインポート 3. ARDKライセンスキー発行
4. ARDKライセンスキーの設定 5. URP特有の設定 6. シーン作成 7. メッシュ生成機能の設定 8. ボールを飛ばす設定 9. ビルド
#ARDKUG Zoomで質問受付中 PlayerSettingsの変更 21 Bundle Identifier 各自(xcodeで設定し てもよい) Camera
Usage Desciption “ForAR”などいれてく ださい Location Usage Desciption “ForAR”などいれてく ださい
#ARDKUG Zoomで質問受付中 ARDK本体のインポート 22 事前準備でダウンロード済みのARDK本体を Unityにインポートしてください ARDK本体のダウンロード先 https://lightship.dev/account/downloads 途中表示される アラートはYESでよいです。
#ARDKUG Zoomで質問受付中 ARDKライセンスキー発行 -1 23 https://lightship.dev/account/projects
#ARDKUG Zoomで質問受付中 ARDKライセンスキー発行 -2 24 https://lightship.dev/account/projects わかりやすいものにしておくとよい わかりやすいものにしておくとよい ライセンス発行するボタン
#ARDKUG Zoomで質問受付中 ARDKライセンスキー発行 -3 25 https://lightship.dev/account/projects ここのボタンで、ライセンスキーをコピーします
#ARDKUG Zoomで質問受付中 ARDKライセンスキーの設定 26 Unityプロジェクトへ戻ります。 1. /Assets/Resources/ARDK フォルダを作成 2. 作成したフォルダで右クリックして
ArdkAuthConfigを作成 3. Api keyに、さきほどコピーしたキーを設定
#ARDKUG Zoomで質問受付中 URP特有の設定 27 /Assets/Settings/URP-Balanc ed-Rendererの設定を変更しま す。 ・ARSessionFeature ・DepthMeshRenderFeature の2つを追加してください。
詳細: https://lightship.dev/docs/ardk/rendering/urp.html#doxid-urp
#ARDKUG Zoomで質問受付中 シーン作成 28 1. シーンを新規作成し、シーン名を”Main”にしてください 2. MainCameraを削除 3. /Assets/ARDK/Extensions/Prefabs/ARSceneManagerをシーンに追加
#ARDKUG Zoomで質問受付中 メッシュ生成機能の設定 - 1 29 /Assets/ARDK/Extensions/Meshing/ARMesh をシーンに追加してください
#ARDKUG Zoomで質問受付中 メッシュ生成機能の設定 - 2 30 新しいマテリアルを作ってください 透過設定にし、 透過率を90前後に調整してみてください。
#ARDKUG Zoomで質問受付中 メッシュ生成機能の設定 - 3 31 シーン上のARMeshの設定を変更します。 ・MeshPrefabを /Assets/ARDK/Extensions/Meshing/ARMesh ColliderChunkに変更
・UseInvisibleMaterialをオンに変更 ・InvisibleManterialに新規作成したMaterialに 変更
#ARDKUG Zoomで質問受付中 ボールを飛ばす設定 - 1 32 https://github.com/TheDesignium/public_ardkhandson1/blob/main/ActionM anager.cs 上記、スクリプトをダウンロードして、Unityへインポートしてください
#ARDKUG Zoomで質問受付中 ボールを飛ばす設定 - 2 33 シーンで、球体(Sphere)を作成し、”Ball”と名前を変 えてください。 作成後、 ・Scaleを0.1に変更
・Rigidbody追加 ・RigidbodyのMassを0.01に変更 上記3つの変更をしてください。
#ARDKUG Zoomで質問受付中 ボールを飛ばす設定 - 3 34 シーンで、空のオブジェクトを作成し、”Manager”に名前を変更し てください。 ”Manager”オブジェクトに、ActionManager.csを追加してくださ い。
次、ActionManager.csの紐づけ作業をします ・”BallPrefab”には、さきほど作成したBallおぶえジェクト ・”Main Camera”には、シーン上のARSceneManagerの小オブジェク トであるARSceneCameraオブジェクト のそれぞれを紐づけるようにしてください。
#ARDKUG Zoomで質問受付中 ビルド 35 作成した”Main”シーンをビルド対象に追加し、 いつもどおりBuild&Runして、実機で動作させてみてください。 何か詰まった!や質問などがあったら教えてください。
#ARDKUG Zoomで質問受付中 おまけ 36 時間が余った方向け • VPSの解説 ◦ https://note.com/thedesignium/n/n10cbe153a7c7 •
Mesh1のシェーダをいろいろ変えてみると おもしろいかとおもいます。
#ARDKUG Zoomで質問受付中 休憩 〜??:?? 37
#ARDKUG Zoomで質問受付中 後半 38
#ARDKUG Zoomで質問受付中 ARDK公式サンプルを試す 39
#ARDKUG Zoomで質問受付中 流れ 40 • ARDK公式サンプルインポートと設定 • ビルド • セマンティックセグメンテーション
• マルチプレイヤー
#ARDKUG Zoomで質問受付中 ARDK公式サンプルインポート-1 41 さきほどボールを出せるようになったUnityプロジェクトに、 事前にダウンロードしていた”ardk-examples-2.0.0.unitypackage”をインポート してください。 https://lightship.dev/account/downloads
#ARDKUG Zoomで質問受付中 ARDK公式サンプルインポート-2 42 URPマテリアルに変更が必要です。 まず、ARDKExamplesフォルダに含 まれるマテリアルをURPに対応させ ます。 5番目で表示されたマテリアルを すべて選択してください
1 3 4 2 5
#ARDKUG Zoomで質問受付中 ARDK公式サンプルインポート-3 43 マテリアルを選んだ状態で、 Editメニューの Rendering>Maerials>Convert Selected Build~~~URPを選んで ください。
表示された警告はYesを選んでく ださい
#ARDKUG Zoomで質問受付中 ARDK公式サンプルインポート-4 44 ダブったARDKライセンスキーファイルを削除 します ARDKExamples>Resources>ARDK>ArdkAuthC onfig を削除します
#ARDKUG Zoomで質問受付中 ARDK公式サンプルインポート-5 45 ビルド対象シーンにサンプルシーン全て追加し ます。 Materialと同様に、ARDKExsampleフォルダの Sceneを全て選びます 1 3
2 4
#ARDKUG Zoomで質問受付中 ARDK公式サンプルインポート-6 46 さきほど選んだシーンを、ビルド対象に追加し てください。 そして、SceneSelectorシーンを一番上にして ください。
#ARDKUG Zoomで質問受付中 ビルド 47 ビルドしてください。たぶん時間かかるかと思います。。。
#ARDKUG Zoomで質問受付中 セマンティックセグメンテーション - 1 48 SemanticSegmentationシーンを開いてみてください 右上の”Change Feature Channel”で対象物を変えてみてください
#ARDKUG Zoomで質問受付中 セマンティックセグメンテーション - 2 49 SemanticSegmentationExampleManagerでは、 Update文で、セグメンテーションのテクスチャを使って マスクの設定をしています。
#ARDKUG Zoomで質問受付中 マルチプレイヤー 50 ARNetworkingExampleManagerシーンを みてみましょう。
#ARDKUG Zoomで質問受付中 マルチプレイヤー 51 1. 端末Aで矢印1のボタンを押し、ルームIDを作ります 2. 端末1の矢印2に表示されたルームIDを、端末Bの矢 印2に入力してください 3.
端末Aで矢印3のボタンをおす 4. 端末Bで矢印3のボタンをおす 5. まわりをしばらく見渡すとローカライズできて、 お互いの端末位置に立方体が表示されます 1 2 3
#ARDKUG Zoomで質問受付中 マルチプレイヤー 52 ARNetworkingExampleManagerには、バイト形式でデータ送受信している例があ ります 送信 受信
#ARDKUG Zoomで質問受付中 マルチプレイヤー 53 エラーコード https://lightship.dev/docs/ardk/multiplayer/low_level_networking_errors.h tml
#ARDKUG Zoomで質問受付中 残り時間、各シーン試してみてください 54
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 55 ボールを飛ばすトリガーを送受信するようにしてみます 時間がある場合
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 56 Assets/ARDKExamples/ARNetworking/ARNetworkingシーンを複製し、 ”ARNetworkingWithBall”という名前にしてください その後、作成したシーンを開いてください
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 57 /Assets/ARDK/Extensions/Meshing/ARMesh をシーンに追加してください
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 58 シーン上のARMeshの設定を変更します。 ・MeshPrefabを /Assets/ARDK/Extensions/Meshing/ARMesh ColliderChunkに変更 に変更
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 59 シーンで、球体(Sphere)を作成し、”Ball”と名前を変 えてください。 作成後、 ・Scaleを0.1に変更 ・Rigidbody追加 ・RigidbodyのMassを0.01に変更
上記3つの変更をしてください。
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 60 https://github.com/TheDesignium/public_ardkhandson1/blob/main/ActionNe tworkManager.cs をダウンロードし、Unityプロジェクトへ追加してください。
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 61 シーンで、空のオブジェクトを作成し、”Manager”に名前を変更し てください。 ”Manager”オブジェクトに、ActionNetworkManager.csを追加して ください。 次、ActionNetworkManager.csの紐づけ作業をします ・”BallPrefab”には、さきほど作成したBallおぶえジェクト
・”Main Camera”には、シーン上のARSceneManagerの小オブジェク トであるARSceneCameraオブジェクト のそれぞれを紐づけるようにしてください。
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 62 ビルドします ビルド対象に、”ARNetworkingWithBall”シーンを追加し、 シーンリストの先頭にし、ビルドしてください
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 63 送信部分 ボールを発生させたい位置と飛ばしたい方向を送信してます。
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 64 受信部分 受信した位置、方向に向かって ボールを発射する処理をしている
#ARDKUG Zoomで質問受付中 ボール発射するサンプルのネットワーク版 65 今回のサンプルは、発射トリガーだけを送受信してます。 そのため、飛ばした後のボールの位置は同期されません。 今回のような低レイヤーの実装なら、常に位置情報を送受信する修正を行う必要があります。 高レイヤーの場合は、位置同期便利クラスを使うとよいかもれしれないです https://lightship.dev/docs/ardk/multiplayer/HLAPI/network_spawning.html#doxid-hlapi-network- spawning
#ARDKUG Zoomで質問受付中 サンプル補足 66 • 深度取得しているサンプルやVPSのサンプルもあります • 公式のテンプレートもあります ◦ 公式テンプレートは、新しいシーン
を作ってから、各テンプレを選ぶと よさそうです。
#ARDKUG Zoomで質問受付中 Q&A 67
#ARDKUG Zoomで質問受付中 Nianticからの話 68
#ARDKUG Zoomで質問受付中 おわり 69