Layer에서 addtive시 가중치

해결됨
josuny jostar 프로필

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

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

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

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

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

이제민 프로필
이제민 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 메서드를 사용할 수도 있습니다.