狠狠撸

狠狠撸Share a Scribd company logo
ARコンテンツ作成勉強会
HoloLens2とQuestではじめるWebXR
もろもろのダウンロード
http://arfukuoka.lolipop.jp/
WebXR2021/Sample.zip
自己紹介
氏名:吉永崇(Takashi Yoshinaga)
専門:ARを用いた医療支援や運動計測
Volumetric Video (3Dビデオ)
コミュニティ:ARコンテンツ作成勉強会 主催
Twitter:
@Taka_Yoshinaga
ARコンテンツ作成勉強会の紹介
? 2013年5月に勉強会をスタート。
? ARコンテンツの作り方をハンズオン形式で学ぶ
? 人数は5~10名程度の少人数で実施
? 参加条件はAR/VRに興味がある人(知識不要)
? 各地で開催 (福岡、熊本、宮崎、長崎、大分、 鹿児島、山口、広島、札幌、関東)
Twitterと勉強会ページで情報を発信しています
@AR_Fukuoka Googleで「AR勉強会」で検索
福岡会場 (エンジニアフェ & Zoom)
DoMCN
Hokkaido MotionControl Network
さって?さん
@s_haya_0820
北海道サテライト (現地 & Zoom)
じゅんさん
@jun_mh4g
OSC2021 Fukuoka (YouTube)
#AR_Fukuoka
#DoMCN
#osc21fk
#WebXR
ハッシュタグ
本题に入ります
本日のゴール
HoloLens2やOculus Questを使ったハンドトラッキングをWebXRでやってみよう
https://youtu.be/y4WD2wgzKYQ
開発ツール:A-Frameの概要
? Webブラウザ上でVRなどの3D表現を簡単に実現するフレームワーク
? HTMLのタグを書くだけで3Dオブジェクトを配置できる
? Firefox、Chrome、Edgeなど主要なブラウザがWebVR対応を表明
? HoloLens 2やQuest 1&2、HTC Viveなどの各種HMDに対応
? Webベースなのでコンテンツの公開?共有が容易 -> URLを共有!
必要なもの
? Webブラウザ → コンテンツの体験や动作确认
? テキストエディタ → HTMLやjavascriptの記述
? Webサーバー → コンテンツの公開
サーバーに関して今回は???
? Glitchを利用 https://glitch.com/
? FacebookかGitHubのアカウントがあればOK
? サーバーとエディタの両方を無料で提供
この資料ではGlitch使用を前提に説明します
テンプレートコードの複製
https://glitch.com/~webxr-hand-template
GET STARTED
テンプレートコードの複製
下にスクロール
テンプレートコードの複製
Remix Your Own
テンプレートの確認
index.htmlをクリックし、コードが表示されることを確認
index.html
テンプレートの確認
index.htmlをクリックし、コードが表示されることを確認
エディタ プレビュー
コンテンツ名(URL)の変更
画面左上の文字列(コンテンツ名)をクリック
ここをクリック
コンテンツ名(URL)の変更
文字列を各自、分かりやすい名称(半角英数)に変更
シンプルで分かり易く変更
URLの確認
プレビュー画面の上方にある[Change URL]からURLを確認
Change URL
これがURL
※実機での动作确认に使用
実機で动作确认
WebブラウザのアドレスバーにコンテンツのURLを入力後、AR/VRボタンをクリック
URLを入力
ARボタン
URLを入力
VRボタン
HoloLens2 Quest
動作の様子 (HoloLens2)
今回はこれを編集しながらハンドトラッキングを用いたコンテンツを作っていきます
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
テンプレートの確認
Lesson01
テンプレートの確認
A-Frameの読み込み
3D空間に描画する内容を記述
テンプレートの確認
<a-scene background="color: #ECECEC">
<a-box position="0 1.5 -2" scale="0.5 0.5 0.5" rotation="0 45 0"
color="#4CC3D9" shadow></a-box>
</a-scene>
a-box
position
0 1.5 -2
位置 大きさ 色
向き
テンプレートの確認
手の
挙動について
記述(予定)
テンプレートの確認
<script>
window.onload = function() {
initRightHand(); //右手の初期化
initLeftHand(); //左手の初期化
};
//右手の初期化を行う関数
function initRightHand(){
};
//左手の初期化を行う関数
function initLeftHand(){
};
</script>
読み込みが終わったら
自動的に実行される
右手の挙動を記述
するために用意した関数
左手の挙動を記述
するために用意した関数
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
手のオブジェクトを表示
ここを編集
手のオブジェクトを表示
<a-scene background="color: #ECECEC">
<a-box position="0 1.5 -2" scale="0.5 0.5 0.5" rotation="0 45 0"
color="#4CC3D9" shadow></a-box>
<!--左手の描画-->
<a-entity id="leftHand"
hand-tracking-controls="hand: left; modelStyle: dots;"></a-entity>
<!--右手の描画-->
<a-entity id="rightHand"
hand-tracking-controls="hand: right; modelStyle: dots;"></a-entity>
</a-scene>
【hand-tracking-controlsの詳細]】
hand: left または right
modelStyle: mesh または dots
(meshはうまく働かず)
modelColor: 手のモデルの色
(今回はデフォルト色) Lesson02
実機で动作确认
必ず再読み込みボタンをクリック
再読み込み
再読み込み
动作确认
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
javascriptで手の情報を使用する準備
ここを編集
javascriptで手の情報を使用する準備
<script>
window.onload = function() {
initRightHand(); //右手の初期化
initLeftHand(); //左手の初期化
};
//右手の初期化を行う関数
function initRightHand(){
};
//左手の初期化を行う関数
function initLeftHand(){
};
</script>
ここに変数を追加
javascriptで手の情報を使用する準備
var scene; //描画する3D空間
var rightHand; //右手の情報を保持する変数
var leftHand; //左手の情報を保持する変数
window.onload = function() {
initRightHand(); //右手の初期化
initLeftHand(); //左手の初期化
};
//右手の初期化を行う関数
function initRightHand(){
};
//左手の初期化を行う関数
function initLeftHand(){
}; Lesson03
javascriptで3D空間を操作する準備
var scene; //描画する3D空間
var rightHand; //右手
var leftHand; //左手
window.onload = function() {
//3D空間を変数として保持
scene = document.querySelector('a-scene');
initRightHand(); //右手の初期化
initLeftHand(); //左手の初期化
};
//右手の初期化を行う関数
function initRightHand(){
};
//左手の初期化を行う関数
function initLeftHand(){ }; Lesson04
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
右手の操作で空間にオブジェクトを生成
var scene; //描画する3D空間
var rightHand; //右手
var leftHand; //左手
window.onload = function() {
//3D空間を変数として保持
scene = document.querySelector('a-scene');
initRightHand(); //右手の初期化
initLeftHand(); //左手の初期化
};
//右手の初期化を行う関数
function initRightHand(){
};
//左手の初期化を行う関数
function initLeftHand(){ };
ここを編集
右手の操作で空間にオブジェクトを生成
function initRightHand(){
//右手のオブジェクト(id=rightHand)を取得
rightHand = document.getElementById("rightHand");
//ピンチ開始
rightHand.addEventListener('pinchstarted', function (e) {
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
});
//ピンチしながら手を移動
rightHand.addEventListener('pinchmoved', function (e) {
});
}; Lesson05
ピンチ開始の取得
function initRightHand(){
//右手のオブジェクト(id=rightHand)を取得
rightHand = document.getElementById("rightHand");
//ピンチ開始
rightHand.addEventListener('pinchstarted', function (e) {
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
});
//ピンチしながら手を移動
rightHand.addEventListener('pinchmoved', function (e) {
});
};
ここを編集
これから実現したいこと
つまんだ瞬間にその位置にオブジェクトを生成
ピンチ開始の取得
function initRightHand(){
//右手のオブジェクト(id=rightHand)を取得
rightHand = document.getElementById("rightHand");
//ピンチ開始
rightHand.addEventListener('pinchstarted', function (e) {
var position = e.detail.position;
//BOX生成関数を呼び出す (次のページ以降で解説)
addBox(position);
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
});
//ピンチしながら手を移動
rightHand.addEventListener('pinchmoved', function (e) {
});
}; Lesson06
Boxの生成
ここに関数を追加
Boxの生成
//左手の初期化を行う関数
function initLeftHand(){
};
function addBox(position){
//a-boxという要素を作る
var box = document.createElement('a-box');
//位置や大きさ、色を設定
box.setAttribute('position', position);
box.setAttribute('scale', '0.02 0.02 0.02');
box.setAttribute('color', '#0062C6');
//あとで一括削除しやすいようにクラス名設定
box.setAttribute('class', 'box');
//3次元空間にboxを追加
scene.appendChild(box);
}
</script>
Lesson07
动作确认
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
手の移動に追従
function initRightHand(){
//右手のオブジェクト(id=rightHand)を取得
rightHand = document.getElementById("rightHand");
//ピンチ開始
rightHand.addEventListener('pinchstarted', function (e) {
/*中略*/
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
});
//ピンチしながら手を移動
rightHand.addEventListener('pinchmoved', function (e) {
});
};
ここを編集
手の移動に追従
//右手のオブジェクト(id=rightHand)を取得
rightHand = document.getElementById("rightHand");
//ピンチ開始
rightHand.addEventListener(‘pinchstarted’, function (e) {
/*中略*/
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
});
//ピンチしながら手を移動
rightHand.addEventListener('pinchmoved', function (e) {
var position = e.detail.position;
//BOXを生成
addBox(position);
}); Lesson08
动作确认
問題点
あまり密にboxを生成するとすぐにメモリを消費して動きが遅くなる
描画するBoxを間引く(1/6)
<script>
var scene; //描画する3D空間
var rightHand; //右手
var leftHand; //左手
var prev;//最後にBox置いた位置を記憶する変数
window.onload = function() {
//3D空間を変数として保持
scene = document.querySelector('a-scene');
initRightHand(); //右手の初期化
initLeftHand(); //左手の初期化
};
//右手の初期化を行う関数
function initRightHand(){
/*以下省略*/
Lesson09
描画するBoxを間引く(2/6)
var prev;//最後にBox置いた位置を記憶
window.onload = function() {
/*省略*/
};
//右手の初期化を行う関数
function initRightHand(){
/*省略*/
};
//左手の初期化を行う関数
function initLeftHand(){
};
//Boxの追加を行う関数
function addBox(position){
}
ここを編集
描画するBoxを間引く(3/6)
function addBox(position){
//a-boxという要素を作る
var box = document.createElement('a-box');
//位置や大きさ、色を設定
box.setAttribute('position', position);
box.setAttribute('scale', '0.02 0.02 0.02');
box.setAttribute('color', '#0062C6');
//あとで一括削除するためにクラス名設定
box.setAttribute('class', 'box');
//3次元空間にboxを追加
scene.appendChild(box);
//最後にBox置いた位置を記憶
prev=box.object3D.position;
}
Lesson09
描画するBoxを間引く(4/6)
var prev;//最後にBox置いた位置を記憶
window.onload = function() {
/*省略*/
};
//右手の初期化を行う関数
function initRightHand(){
/*省略*/
};
//左手の初期化を行う関数
function initLeftHand(){
};
//Boxの追加を行う関数
function addBox(position){
}
ここを編集
描画するBoxを間引く(5/6)
function initRightHand(){
//右手のオブジェクト(id=rightHand)を取得
rightHand = document.getElementById("rightHand");
//ピンチ開始
rightHand.addEventListener('pinchstarted', function (e) {
/*中略*/
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
});
//ピンチしながら手を移動
rightHand.addEventListener('pinchmoved', function (e) {
});
};
ここを編集
描画するBoxを間引く(6/6)
rightHand.addEventListener('pinchmoved', function (e) {
var position = e.detail.position;
//最後にboxを置いた位置と現在の手の位置との距離
var length= prev.distanceTo(position);
//一定距離以上ならboxを置く
if(length>=0.02){
//BOXを生成
addBox(position);
}
});
Lesson10
prev
position
一定距離以上
动作确认
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
このあと実現したいこと
ピンチ毎にboxの色を変化させる
色を切り替える
var scene; //描画する3D空間
var rightHand; //右手
var leftHand; //左手
var prev;//最後にBox置いた位置を記憶
//Cubeに割り当てる色の配列
var colors = ['#0062C6', '#00AB00', '#FFCF00', '#7F00FF',
'#FFFFFF', '#FF2000', '#F52394', '#593110'];
//利用する色の番号
var index=0;
window.onload = function() {
//3D空間を変数として保持
scene = document.querySelector('a-scene');
initRightHand(); //右手の初期化
initLeftHand(); //左手の初期化
}; Lesson11
色を切り替える
function initRightHand(){
//右手のオブジェクト(id=rightHand)を取得
rightHand = document.getElementById("rightHand");
//ピンチ開始
rightHand.addEventListener('pinchstarted', function (e) {
/*中略*/
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
});
//ピンチしながら手を移動
rightHand.addEventListener('pinchmoved', function (e) {
/*中略*/
});
};
ここを編集
色を切り替える
function initRightHand(){
//右手のオブジェクト(id=rightHand)を取得
rightHand = document.getElementById("rightHand");
//ピンチ開始
rightHand.addEventListener('pinchstarted', function (e) {
var position = e.detail.position;
//BOX生成関数を呼び出す
addBox(position);
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
//色の番号を加算して、あとでboxの色に反映
index++;
index%=colors.length;
}); Lesson12
色を切り替える
window.onload = function() {
/*省略*/
};
//右手の初期化を行う関数
function initRightHand(){
/*省略*/
};
//左手の初期化を行う関数
function initLeftHand(){
};
//Boxの追加を行う関数
function addBox(position){
}
ここを編集
色を切り替える
function addBox(position){
//a-boxという要素を作る
var box = document.createElement('a-box');
//位置や大きさ、色を設定
box.setAttribute('position', position);
box.setAttribute('scale', '0.02 0.02 0.02’);
box.setAttribute('color', '#0062C6');
box.setAttribute('color', colors[index]);
//あとで一括削除するためにクラス名設定
box.setAttribute('class', 'box');
//3次元空間にboxを追加
scene.appendChild(box);
//最後にBox置いた位置を記憶
prev=box.object3D.position;
} Lesson13
box.setAttribute('color', '#0062C6');
动作确认
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
描画したBoxを削除
var prev;//最後にBox置いた位置を記憶
window.onload = function() {
/*省略*/
};
//右手の初期化を行う関数
function initRightHand(){
/*省略*/
};
//左手の初期化を行う関数
function initLeftHand(){
};
//Boxの追加を行う関数
function addBox(position){
/*省略*/
}
ここを編集
描画したBoxを削除
function initLeftHand(){
//左手のオブジェクトを取得
leftHand = document.getElementById("leftHand");
//ピンチ開始時の挙動
leftHand.addEventListener('pinchstarted', function (e) {
//boxクラスが割り当てられているオブジェクトを全て取得
var els = document.querySelectorAll('.box’);
//一つ一つ削除していく
for (var i = 0; i < els.length; i++) {
els[i].parentNode.removeChild(els[i]);
}
});
};
Lesson14
动作确认
完成
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
ハンズオンの手順
1.サンプルの概要を解説
2.ハンドトラッキング機能を追加 (手の表示)
3.javascriptでハンドトラッキングと連携する準備
4.右手のアクションを記述
a) ピンチ(つまみ操作)開始時のオブジェクト追加
b) ピンチしながらの移動に追従してオブジェクト追加
c) ピンチ終了時に次回追加するオブジェクトの色を設定
5.左手のアクションを記述
a) ピンチ開始時に全てのオブジェクトを削除
6.おまけ
a) 常に人差し指の位置を追跡
指の先の位置を取得する方法
a-sceneを編集
指の先の位置を取得する方法
<a-scene background="color: #ECECEC">
<a-box position="0 1.5 -2" scale="0.5 0.5 0.5"
rotation="0 45 0" color="#4CC3D9" shadow></a-box>
<a-entity id="leftHand" hand-tracking-controls="hand: left;
modelStyle: dots;"></a-entity>
<a-entity id="rightHand" hand-tracking-controls="hand: right;
modelStyle: dots;"></a-entity>
<!--指先に表示する球-->
<a-sphere id="tip" position="0 0 0" radius="0.015"
color="#0062C6"></a-sphere>
</a-scene>
Lesson15
テンプレートの確認
Javascript
の記述に戻る
指の先の位置を取得する方法
//Cubeに割り当てる色の配列
var colors = ['#0062C6', '#00AB00', '#FFCF00', '#7F00FF',
'#FFFFFF', '#FF2000', '#F52394', '#593110'];
//利用する色の番号
var index=0;
//指の先端を表す球
var tip;
window.onload = function() {
//3D空間を変数として保持
scene = document.querySelector('a-scene');
//指先の位置を表す球を取得
tip = document.getElementById("tip");
initRightHand(); //右手の初期化
initLeftHand(); //左手の初期化
};
Lesson16
指の先の位置を取得する方法
var prev;//最後にBox置いた位置を記憶
window.onload = function() {
/*省略*/
};
//右手の初期化を行う関数
function initRightHand(){
/*省略*/
};
//左手の初期化を行う関数
function initLeftHand(){
/*省略*/
};
//Boxの追加を行う関数
function addBox(position){
/*省略*/
}
ここを編集
指の先の位置を取得する方法
function initRightHand(){
//右手のオブジェクト(id=rightHand)を取得
rightHand = document.getElementById("rightHand");
//リアルタイムに指の先端を追跡(この後記述)
tipTracking(rightHand.components['hand-tracking-controls']);
//ピンチ開始
rightHand.addEventListener('pinchstarted', function (e) {
/*省略*/
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
/*省略*/
});
Lesson17
指の先の位置を取得する方法
window.onload = function() {
/*省略*/
};
function initRightHand(){
/*省略(右手の初期化を行う関数)*/
};
function initLeftHand(){
/*省略(左手の初期化を行う関数)*/
};
function addBox(position){
/*省略(Boxの追加を行う関数)*/
}
ここに指の位置追跡の
関数を追加
指の先の位置を取得する方法
function initLeftHand(){
/*省略(左手の初期化を行う関数)*/
};
function addBox(position){
/*省略(Boxの追加を行う関数)*/
}
function tipTracking(ctrl){
//指の先端の位置
var position = ctrl.indexTipPosition;
//指の位置を球に反映
tip.setAttribute('position', position);
//30ms後にtipTrackingを再度呼ぶ
setTimeout(function(){tipTracking(ctrl);}, 30);
}; Lesson18
次のBoxの色を指先の球に反映
function initRightHand(){
//右手のオブジェクト(id=rightHand)を取得
rightHand = document.getElementById("rightHand");
//ピンチ開始
rightHand.addEventListener('pinchstarted', function (e) {
/*中略*/
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
});
//ピンチしながら手を移動
rightHand.addEventListener('pinchmoved', function (e) {
/*中略*/
});
};
ここを編集
次のBoxの色を指先の球に反映
//ピンチ開始
rightHand.addEventListener('pinchstarted', function (e) {
var position = e.detail.position;
//BOX生成関数を呼び出す
addBox(position);
});
//ピンチ終了
rightHand.addEventListener('pinchended', function (e) {
//色の番号を加算してboxの色に反映
index++;
index%=colors.length;
//指の先端の球にも色を反映
tip.setAttribute('color', colors[index]);
});
Lesson19

More Related Content

What's hot (20)

鲍苍颈迟测と痴耻蹿辞谤颈补で始める础搁开発
鲍苍颈迟测と痴耻蹿辞谤颈补で始める础搁开発鲍苍颈迟测と痴耻蹿辞谤颈补で始める础搁开発
鲍苍颈迟测と痴耻蹿辞谤颈补で始める础搁开発
Takashi Yoshinaga
?
【Unity道場 建築スペシャル2】点群ビジュアライゼーション
【Unity道場 建築スペシャル2】点群ビジュアライゼーション【Unity道場 建築スペシャル2】点群ビジュアライゼーション
【Unity道場 建築スペシャル2】点群ビジュアライゼーション
UnityTechnologiesJapan002
?
Nreal Lightハンズオン
Nreal LightハンズオンNreal Lightハンズオン
Nreal Lightハンズオン
Takashi Yoshinaga
?
[Glitch版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
[Glitch版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ[Glitch版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
[Glitch版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
Takashi Yoshinaga
?
Immersal を活用した AR クラウドなシステム開発とハンズオン!
Immersal を活用した AR クラウドなシステム開発とハンズオン!Immersal を活用した AR クラウドなシステム開発とハンズオン!
Immersal を活用した AR クラウドなシステム開発とハンズオン!
NishoMatsusita
?
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
Takashi Yoshinaga
?
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみようAI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
Takashi Yoshinaga
?
A-Frameで始めるOculus Quest対応WebVR
A-Frameで始めるOculus Quest対応WebVRA-Frameで始めるOculus Quest対応WebVR
A-Frameで始めるOculus Quest対応WebVR
Takashi Yoshinaga
?
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
Unity Technologies Japan K.K.
?
xR Developerなら知っておきたいカメラの基礎知識
xR Developerなら知っておきたいカメラの基礎知識xR Developerなら知っておきたいカメラの基礎知識
xR Developerなら知っておきたいカメラの基礎知識
Satoshi Maemoto
?
AR-Frame x AR.js入門
AR-Frame x AR.js入門AR-Frame x AR.js入門
AR-Frame x AR.js入門
Takashi Yoshinaga
?
シェーダだけで世界を创る!迟丑谤别别.箩蝉によるレイマーチング
シェーダだけで世界を创る!迟丑谤别别.箩蝉によるレイマーチングシェーダだけで世界を创る!迟丑谤别别.箩蝉によるレイマーチング
シェーダだけで世界を创る!迟丑谤别别.箩蝉によるレイマーチング
Sho Hosoda
?
摆鲍贰4闭自动テストでもっと楽したい!
摆鲍贰4闭自动テストでもっと楽したい!摆鲍贰4闭自动テストでもっと楽したい!
摆鲍贰4闭自动テストでもっと楽したい!
com044
?
はじめよう础搁颁辞谤别:自己位置推定?平面検出?贵补肠别罢谤补肠办颈苍驳
はじめよう础搁颁辞谤别:自己位置推定?平面検出?贵补肠别罢谤补肠办颈苍驳はじめよう础搁颁辞谤别:自己位置推定?平面検出?贵补肠别罢谤补肠办颈苍驳
はじめよう础搁颁辞谤别:自己位置推定?平面検出?贵补肠别罢谤补肠办颈苍驳
Takashi Yoshinaga
?
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
エピック?ゲームズ?ジャパン Epic Games Japan
?
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
UnityTechnologiesJapan002
?
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
Drecom Co., Ltd.
?
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...
KLab Inc. / Tech
?
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VRHTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
Takashi Yoshinaga
?
わからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なことわからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なこと
rarihoma
?
鲍苍颈迟测と痴耻蹿辞谤颈补で始める础搁开発
鲍苍颈迟测と痴耻蹿辞谤颈补で始める础搁开発鲍苍颈迟测と痴耻蹿辞谤颈补で始める础搁开発
鲍苍颈迟测と痴耻蹿辞谤颈补で始める础搁开発
Takashi Yoshinaga
?
【Unity道場 建築スペシャル2】点群ビジュアライゼーション
【Unity道場 建築スペシャル2】点群ビジュアライゼーション【Unity道場 建築スペシャル2】点群ビジュアライゼーション
【Unity道場 建築スペシャル2】点群ビジュアライゼーション
UnityTechnologiesJapan002
?
[Glitch版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
[Glitch版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ[Glitch版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
[Glitch版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
Takashi Yoshinaga
?
Immersal を活用した AR クラウドなシステム開発とハンズオン!
Immersal を活用した AR クラウドなシステム開発とハンズオン!Immersal を活用した AR クラウドなシステム開発とハンズオン!
Immersal を活用した AR クラウドなシステム開発とハンズオン!
NishoMatsusita
?
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
Takashi Yoshinaga
?
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみようAI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
Takashi Yoshinaga
?
A-Frameで始めるOculus Quest対応WebVR
A-Frameで始めるOculus Quest対応WebVRA-Frameで始めるOculus Quest対応WebVR
A-Frameで始めるOculus Quest対応WebVR
Takashi Yoshinaga
?
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
Unity Technologies Japan K.K.
?
xR Developerなら知っておきたいカメラの基礎知識
xR Developerなら知っておきたいカメラの基礎知識xR Developerなら知っておきたいカメラの基礎知識
xR Developerなら知っておきたいカメラの基礎知識
Satoshi Maemoto
?
シェーダだけで世界を创る!迟丑谤别别.箩蝉によるレイマーチング
シェーダだけで世界を创る!迟丑谤别别.箩蝉によるレイマーチングシェーダだけで世界を创る!迟丑谤别别.箩蝉によるレイマーチング
シェーダだけで世界を创る!迟丑谤别别.箩蝉によるレイマーチング
Sho Hosoda
?
摆鲍贰4闭自动テストでもっと楽したい!
摆鲍贰4闭自动テストでもっと楽したい!摆鲍贰4闭自动テストでもっと楽したい!
摆鲍贰4闭自动テストでもっと楽したい!
com044
?
はじめよう础搁颁辞谤别:自己位置推定?平面検出?贵补肠别罢谤补肠办颈苍驳
はじめよう础搁颁辞谤别:自己位置推定?平面検出?贵补肠别罢谤补肠办颈苍驳はじめよう础搁颁辞谤别:自己位置推定?平面検出?贵补肠别罢谤补肠办颈苍驳
はじめよう础搁颁辞谤别:自己位置推定?平面検出?贵补肠别罢谤补肠办颈苍驳
Takashi Yoshinaga
?
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
UnityTechnologiesJapan002
?
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
Drecom Co., Ltd.
?
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...
KLab Inc. / Tech
?
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VRHTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
Takashi Yoshinaga
?
わからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なことわからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なこと
rarihoma
?

Similar to HoloLens2とMeta QuestではじめるWebXR (8)

はじめようARCore: Motion Tracking & Image Tracking編
はじめようARCore: Motion Tracking & Image Tracking編はじめようARCore: Motion Tracking & Image Tracking編
はじめようARCore: Motion Tracking & Image Tracking編
Takashi Yoshinaga
?
はじめようARCore in 札幌
はじめようARCore in 札幌はじめようARCore in 札幌
はじめようARCore in 札幌
Takashi Yoshinaga
?
HoloLensハンズオン@ももち浜TECHカフェ vol.2
HoloLensハンズオン@ももち浜TECHカフェ vol.2HoloLensハンズオン@ももち浜TECHカフェ vol.2
HoloLensハンズオン@ももち浜TECHカフェ vol.2
Takashi Yoshinaga
?
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
Takashi Yoshinaga
?
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
ARコンテンツ作成勉強会 in 宮崎: はじめようARCoreARコンテンツ作成勉強会 in 宮崎: はじめようARCore
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
Takashi Yoshinaga
?
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
WheetTweet
?
鲍苍颈迟测と叠濒别苍诲别谤ハンズオン第4章
鲍苍颈迟测と叠濒别苍诲别谤ハンズオン第4章鲍苍颈迟测と叠濒别苍诲别谤ハンズオン第4章
鲍苍颈迟测と叠濒别苍诲别谤ハンズオン第4章
yaju88
?
エンジニアカフェ1周年イベント:奥别产础搁/痴搁开発入门
エンジニアカフェ1周年イベント:奥别产础搁/痴搁开発入门エンジニアカフェ1周年イベント:奥别产础搁/痴搁开発入门
エンジニアカフェ1周年イベント:奥别产础搁/痴搁开発入门
Takashi Yoshinaga
?
はじめようARCore: Motion Tracking & Image Tracking編
はじめようARCore: Motion Tracking & Image Tracking編はじめようARCore: Motion Tracking & Image Tracking編
はじめようARCore: Motion Tracking & Image Tracking編
Takashi Yoshinaga
?
はじめようARCore in 札幌
はじめようARCore in 札幌はじめようARCore in 札幌
はじめようARCore in 札幌
Takashi Yoshinaga
?
HoloLensハンズオン@ももち浜TECHカフェ vol.2
HoloLensハンズオン@ももち浜TECHカフェ vol.2HoloLensハンズオン@ももち浜TECHカフェ vol.2
HoloLensハンズオン@ももち浜TECHカフェ vol.2
Takashi Yoshinaga
?
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
Takashi Yoshinaga
?
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
ARコンテンツ作成勉強会 in 宮崎: はじめようARCoreARコンテンツ作成勉強会 in 宮崎: はじめようARCore
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
Takashi Yoshinaga
?
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
WheetTweet
?
鲍苍颈迟测と叠濒别苍诲别谤ハンズオン第4章
鲍苍颈迟测と叠濒别苍诲别谤ハンズオン第4章鲍苍颈迟测と叠濒别苍诲别谤ハンズオン第4章
鲍苍颈迟测と叠濒别苍诲别谤ハンズオン第4章
yaju88
?
エンジニアカフェ1周年イベント:奥别产础搁/痴搁开発入门
エンジニアカフェ1周年イベント:奥别产础搁/痴搁开発入门エンジニアカフェ1周年イベント:奥别产础搁/痴搁开発入门
エンジニアカフェ1周年イベント:奥别产础搁/痴搁开発入门
Takashi Yoshinaga
?

More from Takashi Yoshinaga (19)

ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
ARコンテンツ作成勉強会( #AR_Fukuoka )紹介ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
Takashi Yoshinaga
?
iPad LiDARで エンジニアカフェを3Dスキャン
iPad LiDARでエンジニアカフェを3DスキャンiPad LiDARでエンジニアカフェを3Dスキャン
iPad LiDARで エンジニアカフェを3Dスキャン
Takashi Yoshinaga
?
奥别产技术ではじめよう础搁/痴搁アプリ开発
奥别产技术ではじめよう础搁/痴搁アプリ开発奥别产技术ではじめよう础搁/痴搁アプリ开発
奥别产技术ではじめよう础搁/痴搁アプリ开発
Takashi Yoshinaga
?
贬辞濒辞-厂顿碍ハンズオン:はじめようヘッドトラッキングを用いた3顿表现
贬辞濒辞-厂顿碍ハンズオン:はじめようヘッドトラッキングを用いた3顿表现贬辞濒辞-厂顿碍ハンズオン:はじめようヘッドトラッキングを用いた3顿表现
贬辞濒辞-厂顿碍ハンズオン:はじめようヘッドトラッキングを用いた3顿表现
Takashi Yoshinaga
?
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
Takashi Yoshinaga
?
Voxon Photonics VX1 で遊んでみた
Voxon Photonics VX1で遊んでみたVoxon Photonics VX1で遊んでみた
Voxon Photonics VX1 で遊んでみた
Takashi Yoshinaga
?
コロナ祸中のコミュニティ活动
コロナ祸中のコミュニティ活动コロナ祸中のコミュニティ活动
コロナ祸中のコミュニティ活动
Takashi Yoshinaga
?
Project HoloBox
Project HoloBoxProject HoloBox
Project HoloBox
Takashi Yoshinaga
?
AR Fukuoka紹介2020
AR Fukuoka紹介2020AR Fukuoka紹介2020
AR Fukuoka紹介2020
Takashi Yoshinaga
?
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
Takashi Yoshinaga
?
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)
Takashi Yoshinaga
?
OSC2020 Fukuoka: インストールいらず、WebAR入門
OSC2020 Fukuoka: インストールいらず、WebAR入門OSC2020 Fukuoka: インストールいらず、WebAR入門
OSC2020 Fukuoka: インストールいらず、WebAR入門
Takashi Yoshinaga
?
Oculus Quest 1&2 開発のはじめの一歩 with A-Frame WebVR
Oculus Quest 1&2 開発のはじめの一歩 with A-Frame WebVROculus Quest 1&2 開発のはじめの一歩 with A-Frame WebVR
Oculus Quest 1&2 開発のはじめの一歩 with A-Frame WebVR
Takashi Yoshinaga
?
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボAI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
Takashi Yoshinaga
?
Spatial Copy & Paste @HoloLensゆるっとLT会
Spatial Copy & Paste @HoloLensゆるっとLT会Spatial Copy & Paste @HoloLensゆるっとLT会
Spatial Copy & Paste @HoloLensゆるっとLT会
Takashi Yoshinaga
?
AI x WebAR! MediaPipeの顔認識を使ってみよう!
AI x WebAR! MediaPipeの顔認識を使ってみよう!AI x WebAR! MediaPipeの顔認識を使ってみよう!
AI x WebAR! MediaPipeの顔認識を使ってみよう!
Takashi Yoshinaga
?
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
Takashi Yoshinaga
?
[Netlify版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
[Netlify版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ[Netlify版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
[Netlify版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
Takashi Yoshinaga
?
0から始めよう奥别产础搁/痴搁入门ハンズオン
0から始めよう奥别产础搁/痴搁入门ハンズオン0から始めよう奥别产础搁/痴搁入门ハンズオン
0から始めよう奥别产础搁/痴搁入门ハンズオン
Takashi Yoshinaga
?
ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
ARコンテンツ作成勉強会( #AR_Fukuoka )紹介ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
Takashi Yoshinaga
?
iPad LiDARで エンジニアカフェを3Dスキャン
iPad LiDARでエンジニアカフェを3DスキャンiPad LiDARでエンジニアカフェを3Dスキャン
iPad LiDARで エンジニアカフェを3Dスキャン
Takashi Yoshinaga
?
奥别产技术ではじめよう础搁/痴搁アプリ开発
奥别产技术ではじめよう础搁/痴搁アプリ开発奥别产技术ではじめよう础搁/痴搁アプリ开発
奥别产技术ではじめよう础搁/痴搁アプリ开発
Takashi Yoshinaga
?
贬辞濒辞-厂顿碍ハンズオン:はじめようヘッドトラッキングを用いた3顿表现
贬辞濒辞-厂顿碍ハンズオン:はじめようヘッドトラッキングを用いた3顿表现贬辞濒辞-厂顿碍ハンズオン:はじめようヘッドトラッキングを用いた3顿表现
贬辞濒辞-厂顿碍ハンズオン:はじめようヘッドトラッキングを用いた3顿表现
Takashi Yoshinaga
?
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
Takashi Yoshinaga
?
Voxon Photonics VX1 で遊んでみた
Voxon Photonics VX1で遊んでみたVoxon Photonics VX1で遊んでみた
Voxon Photonics VX1 で遊んでみた
Takashi Yoshinaga
?
コロナ祸中のコミュニティ活动
コロナ祸中のコミュニティ活动コロナ祸中のコミュニティ活动
コロナ祸中のコミュニティ活动
Takashi Yoshinaga
?
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
Takashi Yoshinaga
?
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)
Takashi Yoshinaga
?
OSC2020 Fukuoka: インストールいらず、WebAR入門
OSC2020 Fukuoka: インストールいらず、WebAR入門OSC2020 Fukuoka: インストールいらず、WebAR入門
OSC2020 Fukuoka: インストールいらず、WebAR入門
Takashi Yoshinaga
?
Oculus Quest 1&2 開発のはじめの一歩 with A-Frame WebVR
Oculus Quest 1&2 開発のはじめの一歩 with A-Frame WebVROculus Quest 1&2 開発のはじめの一歩 with A-Frame WebVR
Oculus Quest 1&2 開発のはじめの一歩 with A-Frame WebVR
Takashi Yoshinaga
?
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボAI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
Takashi Yoshinaga
?
Spatial Copy & Paste @HoloLensゆるっとLT会
Spatial Copy & Paste @HoloLensゆるっとLT会Spatial Copy & Paste @HoloLensゆるっとLT会
Spatial Copy & Paste @HoloLensゆるっとLT会
Takashi Yoshinaga
?
AI x WebAR! MediaPipeの顔認識を使ってみよう!
AI x WebAR! MediaPipeの顔認識を使ってみよう!AI x WebAR! MediaPipeの顔認識を使ってみよう!
AI x WebAR! MediaPipeの顔認識を使ってみよう!
Takashi Yoshinaga
?
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
ノンプログラミングで始めるAR (HoloLens 2 / ARCore / ARKit) 開発 with MRTK
Takashi Yoshinaga
?
[Netlify版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
[Netlify版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ[Netlify版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
[Netlify版] 0から始めよう奥别产础搁/痴搁入门ハンズオン with 織りなすラボ
Takashi Yoshinaga
?
0から始めよう奥别产础搁/痴搁入门ハンズオン
0から始めよう奥别产础搁/痴搁入门ハンズオン0から始めよう奥别产础搁/痴搁入门ハンズオン
0から始めよう奥别产础搁/痴搁入门ハンズオン
Takashi Yoshinaga
?

Recently uploaded (15)

田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
Matsushita Laboratory
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
Matsushita Laboratory
?
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
CRI Japan, Inc.
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
shomayama0221
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
Matsushita Laboratory
?
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
Matsushita Laboratory
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
Matsushita Laboratory
?
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
CRI Japan, Inc.
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
shomayama0221
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
Matsushita Laboratory
?

HoloLens2とMeta QuestではじめるWebXR