얼굴을 자주 찍는 카메라(상대적인 위치를 유지하고 싶지만 하위 대상이 되고 싶지 않을 때)

4657 단어 Unity
(12/28 추기: 현재 알고 있습니다이런 편리한 물건 표준적으로 준비한 것이므로 앞으로 이곳으로 옮길 것입니다👍)

개요


카메라를 머리뼈에 고정시키면 표정 편집이 쉬워집니다 pic.twitter.com/tI7TQ5Xxjw - 닥터 천무👼(@bucchigiri)December 15, 2019

이와 같은'비명 지르는 기계를 탄 연예인의 표정을 찍는 카메라'를 만들고 싶은데, 간단하게 하면'카메라를 머리 뼈로 만든 아이'만 있으면 되지만, 때로는 히라르키의 모형 조립에 이물질을 넣고 싶지 않은 심층p>
따라서 우리는 카메라를 모델과 무관한 상단에 놓고'지정된 대상과 상대적인 위치를 계속 유지하기'라는 스크립트를 붙이기로 결정했다p>

스크립트



IsolatedChild.cs

// Parent に指定したオブジェクトの子であるかのように相対座標を維持します
// (ヒエラルキー内のどこに配置してもそのように振る舞います)。
// 直接の子オブジェクトとして配置できない際に有用です。
// MIT License

using UnityEngine;

public class IsolatedChild : MonoBehaviour
{
    public Transform parent;
    private Transform chaser;

    void Start()
    {
        GameObject obj = new GameObject("IsolatedChild");
        chaser = obj.transform;
        chaser.parent = transform.parent;
        chaser.position = parent.position;
        chaser.forward = parent.forward;
        transform.parent = chaser;
    }

    void LateUpdate()
    {
        chaser.position = parent.position;
        chaser.rotation = parent.rotation;
    }
}


사용 방법


  1. 카메라를 힐러키네가 좋아하는 곳에 놓고 초기 상태의 모델에 비해 위치와 방향을 맞춘다


  2. 상기 스크립트Isolated Child를 카메라에 추가하여 주목하고 싶은 뼈Parent



작업 원리


스크립트Start는 빈 대상chaser을 자신(= 카메라)과 아버지 대상 사이에 끼워 빈 대상의 하위 대상이 된다.이 빈 객체는 처리LateUpdate 시 항상 Parent 와 같은 좌표와 방향을 유지하기 때문에 카메라는 Parent 의 하위 객체처럼 아날로그적으로 실행됩니다.p>

Tips


비명 기계를 탄 연예인의 얼굴은 기본적으로 카메라가 너무 가까워서 이상한 얼굴에 비치기 쉬우므로 귀엽게 찍으려면 카메라Field of View를 작게 하는 것이 좋다(동시에 거리를 두는 것)p>

좋은 웹페이지 즐겨찾기