HoloLens로 객체를 벽에 붙이기

소개



3월 초부터 인턴에서 주식회사 유메미( htps //w w. 유메미. 이. jp/그럼 ) 에서 HoloLens 의 연구 개발을 하고 있는 근대생의 요시입니다.
국내에서 지난 1월부터 제공을 개시한 MicroSoft제 MR 디바이스의 HoloLens에 대한 기사를 써 갑니다.

「HoloLens+타사제의 외부 입력」이나 「움직임을 3D 모델로 해 전달」등, 여러분들이 재미있는 시도를 많이 시험되고 있습니다만, HoloLens 개발의 기본적 부분의 기사가 그다지 없었기 때문에, 그것을 메인에 써 가려고 생각합니다.

하는 것



물체를 벽에 붙이기

Holographic academy Holograms230에서 나오는 Placement의 장소입니다.
물체를 만졌을 때 접착한 채로 움직이는 코드는 동영상으로 나왔습니다만, 생성시에 벽에 붙이는 곳의 설명은 없었기 때문에 해 갑니다.

전제 환경


  • HoloLens 개발 환경 설정
  • Unity에서 개발
  • HoloToolkit-Unity 사용
  • HoloLens 개발의 기본 용어
  • PlaySpaceManager(Holographic Academy 230에서 나온다)의 이용으로, 메쉬를 제거한 평면으로 변환이 되어 있다.

  • 구현 예



    adhereObjectOnTheWall.cs
    RaycastHit hitInfo;
    
    bool hit = Physics.Raycast(GazeManager.Instance.GazeOrigin,GazeManager.Instance.GazeNormal, out hitInfo, 20f, SpatialMappingManager.Instance.LayerMask);
    if (hit) {
        //ヒットした表面の取得
        GameObject surface = hitInfo.transform.gameObject;
    
        //表面からどれから浮かすかの値
        float hoverDistance = 0.15f;
        float offsetDistance = hoverDistance;
    
        //設定したhoverDistanceよりGazeと衝突判定の発生した平面との距離が少ない場合0fにする。
        if (hitInfo.distance <= hoverDistance) {
            offsetDistance = 0f;
        }
        //衝突判定のあったポイントを少し浮かせる
        Vector3 placementPosition = hitInfo.point + (offsetDistance * hitInfo.normal);
    
        // ぶつかった壁の方向を向かせる
        Quaternion rotation = Quaternion.LookRotation(surface.transform.forward, Vector3.up);
        Instantiate(SomePrefab,placementPosition,rotation);
    }
    

    세로로 펠라펠라의 경우



    Holograms230처럼 포스터이거나 세로로 흠뻑 빠진 객체는 위의 코드에서 문제가 되지 않을까 생각합니다. 그림에 걸리면 아래 그림과 같은 느낌.


    옆으로 긴 경우



    이것은이 상태에서 아래 그림과 같습니다.


    대응책



    Quaternion을 더해 봅시다. 위 그림과 같이 튀어 나오는 법은

    AddQuaternion.cs
    Quaternion rotation = Quaternion.LookRotation(surface.transform.forward, Vector3.up) * Quaternion.Euler(new Vector3(-90, 0, 0));
    

    라는 식으로 다시 써 보세요. (위를 향하는 경우)

    그러면 이렇게 될 것입니다.


    참고・관련



    Holographic academy Holograms230
    htps : //에서 ゔぇぺぺr. 미 c 로소 ft. 코 m / 엔 우 s / 우 엔도 ws / 호 g 등 p 히 c / 호 g 등 ms_230

    HoloLens에서 벽, 바닥, 책상, 천장 분류하기
    ぃ tp // 이 m/구타 r_짱 r/있어 ms/b06에 f68777에 10c6482c5

    좋은 웹페이지 즐겨찾기