ボクもやりたい☆てのりカナヅチくん！！

## 概要
この記事は「[マイスター・ギルド：暑中見舞！夏のアドベントカレンダー2020](https://note.com/meisterguild/n/n09826f484617)」2日目の記事です

## とある日
(๑و•̀ω•́)و　|Twitter|
(๑و•̀ω•́)و ＜ て、てのりカナヅチくーん
(๑و•̀ω•́)و ＜ ボクも！ボクも！

## 手乗りカナヅチと書いてあったので作ってみた
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">自社案件開発時のテストでスクショした時のやつです！<br>なんだか警察みたいですね<br>まじかる刑事ですね<br>これが名刺だと未来感ありますね！<br>文字のツヤツヤ感が美味しそうですね！特にEが美味しそう☺️<a href="https://twitter.com/hashtag/%E3%83%9E%E3%82%A4%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%BB%E3%82%AE%E3%83%AB%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#マイスター・ギルド</a><a href="https://twitter.com/hashtag/AR?src=hash&amp;ref_src=twsrc%5Etfw">#AR</a><a href="https://twitter.com/hashtag/%E8%87%AA%E7%A4%BE%E9%96%8B%E7%99%BA?src=hash&amp;ref_src=twsrc%5Etfw">#自社開発</a> <a href="https://t.co/754nv6PmSV">pic.twitter.com/754nv6PmSV</a></p>&mdash; まじかる | マイスター・ギルド (@magicalyaya) <a href="https://twitter.com/magicalyaya/status/1282830203039838208?ref_src=twsrc%5Etfw">July 14, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## 開発環境
| 項目 | バージョン | 備考 |
| --- | --- | --- |
| Unity | 2019.2.21f1 |  |
| MRTK | 2.4 |  |

## 目標
右手にカナヅチくんを呼び出す
1. コードから右手のTransformを取得(Palm)
2. カナヅチくんを配置する

## 手順
* スクリプトを作成

```C#: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);
        }
    }
}
```

* 任意のゲームオブジェクト作成
![コメント 2020-07-30 165158.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673767/23359238-4d03-c70c-f5e8-542051fc7291.png)

* 上記スクリプトを貼り付けます
![コメント 2020-07-30 165120.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673767/2ba1e156-e745-209c-5a84-0363e71a0ecf.png)

* インスペクタから表示したいオブジェクトを設定
![コメント 2020-07-30 165224.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673767/f3e087a6-7894-d068-0533-d45ff08d1f81.png)

## 完成
![f1e7389e-161e-4fb9-b245-487a67e0d435-960x898r.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673767/95cc100c-a37c-ec6c-0731-6cf95b52e6fc.png)

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">弊社のマスコットペンギン<br>「カナヅチくん」が手乗りに‼️ <br><br>写真だけだと2割ほどしか伝わらないですが、実際に体験すると「うおおおおおおおおおおお」ってなります。スマホなどを介して見るARより、実在してる感がめちゃめちゃ半端ないので正直、鳥肌たちます。<a href="https://twitter.com/hashtag/MR?src=hash&amp;ref_src=twsrc%5Etfw">#MR</a><a href="https://twitter.com/hashtag/MixedReality?src=hash&amp;ref_src=twsrc%5Etfw">#MixedReality</a> <a href="https://twitter.com/hashtag/HoloLens2?src=hash&amp;ref_src=twsrc%5Etfw">#HoloLens2</a> <a href="https://t.co/Y5CPnkPnpX">pic.twitter.com/Y5CPnkPnpX</a></p>&mdash; 服部は静かに暮らしたい｜マイスター・ギルド (@bitesthedust_mg) <a href="https://twitter.com/bitesthedust_mg/status/1284042384376868864?ref_src=twsrc%5Etfw">July 17, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


## 次回
マイスター・ギルド次回アドカレ！　SkyWayによるビデオ・音声通話の技術概要　ロイックさんです。