概要
この記事は「マイスター・ギルド:暑中見舞!夏のアドベントカレンダー2020」2日目の記事です
とある日
(๑و•̀ω•́)و |Twitter|
(๑و•̀ω•́)و < て、てのりカナヅチくーん
(๑و•̀ω•́)و < ボクも!ボクも!
手乗りカナヅチと書いてあったので作ってみた
自社案件開発時のテストでスクショした時のやつです!
— まじかる | マイスター・ギルド (@magicalyaya) July 14, 2020
なんだか警察みたいですね
まじかる刑事ですね
これが名刺だと未来感ありますね!
文字のツヤツヤ感が美味しそうですね!特にEが美味しそう☺️#マイスター・ギルド#AR#自社開発 pic.twitter.com/754nv6PmSV
開発環境
項目 | バージョン | 備考 |
---|---|---|
Unity | 2019.2.21f1 | |
MRTK | 2.4 |
目標
右手にカナヅチくんを呼び出す
- コードから右手のTransformを取得(Palm)
- カナヅチくんを配置する
手順
- スクリプトを作成
HandJoint.cs
using Microsoft.MixedReality.Toolkit.Input;
using Microsoft.MixedReality.Toolkit.Utilities;
using UnityEngine;
public class Sample : MonoBehaviour
{
[SerializeField] GameObject _penguinObject = null;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (HandJointUtils.TryGetJointPose(TrackedHandJoint.Palm, Handedness.Right, out MixedRealityPose pose))
{
_penguinObject.transform.position = pose.Position + -pose.Up * 0.022f;
_penguinObject.transform.rotation = pose.Rotation * Quaternion.Euler(new Vector3(-180, 0, 0));
var currentVec = pose.Position + -pose.Up;
var baseVec = pose.Position + Vector3.up;
var dot = Vector3.Dot(currentVec, baseVec);
_penguinObject.SetActive(dot > 0.60f);
}
else
{
_penguinObject.SetActive(false);
}
}
}
完成
弊社のマスコットペンギン
— 服部は静かに暮らしたい|マイスター・ギルド (@bitesthedust_mg) July 17, 2020
「カナヅチくん」が手乗りに‼️
写真だけだと2割ほどしか伝わらないですが、実際に体験すると「うおおおおおおおおおおお」ってなります。スマホなどを介して見るARより、実在してる感がめちゃめちゃ半端ないので正直、鳥肌たちます。#MR#MixedReality #HoloLens2 pic.twitter.com/Y5CPnkPnpX
次回
マイスター・ギルド次回アドカレ! SkyWayによるビデオ・音声通話の技術概要 ロイックさんです。