LookAtConstraint

 

 

Unity의 LookAt은 사용하긴 편하지만 아쉬운 점이 있었는데요.

축 설정을 임의대로 할 수 없는 점 입니다.

보는 방향은 Z축으로 고정 Up은 Y축으로 고정..

 

그러다 보니 상위 노드를 생성해서 LookAt을 하고 하위 노드를 돌리는 경우가 생겼는데요.

이렇게도 구현 할 수 있으나..

Up축의 설정도 같이 변경하려면 상당히 복잡한 구조가 나오게 됩니다.

또한 트리 구조를 건들이지 못하는 상황에서 문제가 발생 합니다.

 

단순하지 않고, 구조에 손상을 가해야 하기에 데이터 수정 또한 쉽지 않습니다.

그렇다면 축을 마음대로 설정 할 수 있게 해주면 되겠지요.

 

 

주 사용처는 이펙트쪽이 되겠네요.

다양한 빌보드 효과를 만들 수 있습니다.

축에 대한 이해만 하고 있다면 창의적인 효과들을 간단하게 표현 할 수 있을 겁니다.

(Max의 LookAt처럼 다양한 설정을 할 수 있는 옵션을 제공)

 

 

사용 설명

 

LookAtConstraint를 드래그엔드랍으로 인스펙터창에 넣습니다.

 

Look At Target : 오브젝트가 보는 대상을 누구로 할 것인가, 카메라면 카메라를 볼 것이고,

노드라고 선택하면 Node List에 있는 노드를 보게 됩니다.

(노드가 복수개 있다면 노드들의 중간을 보게 된답니다.)

Look At Node List : 룩엣으로 볼 대상을 넣으세요.

Look At Axis : 바라볼 축을 선택 하세요. X축을 선택하면 로컬 X축 방향으로 대상을 바라 봅니다.

Look At Filp : 보는 방향을 180도 뒤집어 주는 기능

 

Up Target : 룩엣의 Up축을 설정 합니다. World로 설정하면 World좌표기준이 되고, 노드로 설정하면 노드의 축을 기준으로 합니다.

Up Node : Up Target이 Node로 되어 있다면 여기에 등록된 오브젝트의 축을 기준으로 Up축이 설정 됩니다.

Up Control : Up 축을 바라 보는 방법을 나타냅니다.

 - LookAt : 대상의 위치를 바라보게 합니다.

 - AxisAlignment :  대상의 설정된 벡터를 기준으로 합니다.

Source Axis : Up축으로 어떤 축을 설정 할지 정합니다.

Source Filp : Up축을 뒤집는 거죠.

Aligned to Upnode Axis : Up축의 대상 오브젝트의 참고할 축의 방향을 정합니다.

 

 

사용 예)

주전자가 X축 반대 방향으로 구를 보고 있습니다.

그리고 Up축으로 선택된 Z축이 또 다른 구의 Z축을 참고하는 모습입니다.

 

타겟 오브젝트가 2개이상인 경우 대상 오브젝트의 중심을 바라 봅니다.

 

 

 

Ps. 이를 활용하면 캐릭터의 트위스트 셋팅을 실시간으로 처리 할 수도 있습니다.

 

 

LookAtConstraint.cs

Posted by 황군 Hwanggoon