• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

Layer에서 addtive시 가중치

19.08.14 11:48 작성 조회수 104

0

1번 레이어에서 가중치가 1이고 2번 레이어 addtive에서 가중치가 1이면 블렌딩이 어떻게 되는건가요?

같은 상황에 가중치가 서로 0.5 0.5면 반반씩 섞인다는게예상이되는데 혹시 평균치로 블렌딩하나요?

레이어 2개에 각 레이어 가중치가 1인 상황에서

해당 레이어 가중치 / 레이어 수 이런식으로

(1번 레이어 가중치 : 1/2 2번 레이어 가중치 : 1/2)

답변 1

답변을 작성해보세요.

1

말씀하신 내용이 어떤 의미인지 알겠습니다. 단순한 방식의 Addictive는 평균이 아닌 덧셈 방식으로 동작합니다.

하지만 그렇게 되면 "한쪽 방향으로 애니메이션 관절의 위치가 너무 치우치는" 문제가 생길 수 있습니다.

따라서 단순하게 모든 값을 더하는 방식도 있지만, 애니메이터가 정한 기준이 될 참조 포즈(Reference pose)에서 +,- 방향으로 얼마나 멀어지냐(=차이 or 델타값)를 기준으로 덧셈을 사용할 수 있습니다.

 

그러니까 예를 들어 레이어 1번과 2번의 애니메이션이 각각 모델의 관절 위치A를 건드린다고 가정하겠습니다.

 

- Addictive 방식 1 : 기준값을 사용하지 않고 그냥 전부 더함 (기준값이 0이라고 보면됨)

1번 레이어 : A를 0.5로 수정

2번 레이어 ; A를 0.9로 수정

출력 : A가 1.4 (0.5 + 0.9)로 수정됨

- Addictive 방식 2 : A의 값을 0.5로 쓰고 있는 어떤 애니메이션 클립이 참조 포즈로 설정되어 있음

1번 레이어 : A를 0.5로 수정 (기준값에서 + 0)

2번 레이어 : A를 0.9로 수정 (기준값에서 + 0.4)

출력 : A가 기준값 (0.5) + 상대적으로 덧셈된 값 (0 + 0.4) = 0.9로 출력됨

 

비디오에서는 다루지 않았지만, 이러한 Addictive 동작 방식은 아티스트가 만들어 제공한 애니메이션 클립과 본 구조에 의해 결정됩니다. 또는  AnimationUtility.SetAdditiveReferencePose 메서드를 사용할 수도 있습니다.