안녕하세요
우선 저는 컨트롤릭에 대하여 충분한 이해도가 없습니다.
저는 이번에 몬스터들에 언리얼 3인칭 샘플형태의 Foot IK 컨트롤릭을 제작하여 적용할 예정입니다.
제대로 잘 동작하는 것을 확인하였습니다.
<br/>
하지만 문제는 문제는 Foot Ik를 적용해야 할 몬스터가 수십종 이라는 것입니다.
<br/>
가장 쉬운 방법은 몬스터 마다 컨트롤릭을 하나씩 만들어서 적용하면 되겠지만 이건 왠지 좋은방법 같지는 않습니다.
왜냐면 내부의 함수나 변수등을 계속 복사해야 하므로 추후 수정이 필요할 때 문제가 될 꺼 같기 때문입니다.
그래서 궁금한건 컨트롤릭을 상속받거나, 혹은 재사용하거나 또는 컨트롤릭의 내부 함수들을 재사용할 수 있는 방법이 있는지가 궁금합니다.
<br/>
아니면 무조건 하나의 몬스터에는 고유한 컨트롤릭을 구성해야 하는건지 궁금합니다.
몬스터들의 스켈레톤은 전부 다르며, 메시도 다릅니다.
<br/>
HominLee1
(HominLee)
2
안녕하세요.
질문해주신 내용을 보았을 때 같거나 비슷한 컨트롤리그 로직을 범용적으로 사용해야 할 때, 같은 로직을 계속 복사하여 사용하지 않고 어떻게 효율적으로 사용해야할 지에 대한 질문으로 보입니다.
예시를 들어주신 것처럼 FootIK 를 각 몬스터마다 적용하는 방법 중 가장 효과적인 방법은 컨트롤리그의 함수라이브러리를 사용하는 것으로 생각됩니다.
[[ControlRigFunctionLibrary]](언리얼 엔진의 컨트롤 릭 함수 라이브러리 | 언리얼 엔진 5.7 문서 | Epic Developer Community)
위 링크의 내용을 참고하셔서 ControlRig Function Library로 사용할 ControlRig를 만드신 후, FootIk 기능을 가지는 public 함수를 만드셔서 몬스터 별 ControlRig에서 FootIk 함수를 호출하시면 될 것 같습니다.
감사합니다.
답변 감사합니다.
저런 라이브러리가 있는지 몰랐는데 감사합니다. 다음번에는 참고 하겠습니다.
이것저것 공부하다 보니 FRigUnitMutable를 상속 받아서 노드를 만들 수 있어서 이렇게 만들었는데
이렇게 만들어도 문제 없는건지 궁금합니다.
MDRRigUnit_FootIK.zip(3.49 KB)
HominLee1
(HominLee)
4
안녕하세요.
보내주신 코드는 ThirdPersonTemplate에 있는 FootIK ControlRig에 Rotation기능을 더한 로직을 하나의 RigUnit으로 통합하신 것으로 보입니다.
상황이나 캐릭터에 따라 조건이나 예외케이스가 많지 않고, 여러 상황에 동일한 규칙으로 사용하신다면 하나의 RigUnit을 사용하는 것은 유지보수 등의 측면에서 좋은 선택일 될 수 있을 것 같습니다.
다만 추후 상황에 따라 추가적인 Bone이 필요하거나 특수한 Offset을 필요로 하는 등의 분기 및 특수한 로직이 생긴다면 ControlRig Function Library를 사용하는 것이 확장성 측면에서 더 유연할것으로 보입니다.
감사합니다.