머티리얼 모핑 활성화
MMD 모델은 머티리얼 모핑을 지원하며, 이는 애니메이션을 통해 머티리얼 매개변수를 제어할 수 있는 기능입니다.
이 기능은 일반적으로 애니메이션을 통해 MMD 모델의 특정 부분을 켜거나 끄는 데 사용됩니다.
이 기능은 일반적으로 애니메이션을 통해 MMD 모델의 특정 부분을 켜거나 끄는 데 사용됩니다.
개별 전체 모듈 경로를 사용할 때 이 기능은 기본적으로 비활성화되어 있지만, MmdModel 객체를 생성할 때 머티리얼 프록시 구현을 전달하여 활성화할 수 있습니다.
const mmdModel = mmdRuntime.createMmdModel(mmdMesh, {
materialProxyConstructor: MmdStandardMaterialProxy
});
babylon-mmd 패키지 루트는 RegisterMmdRuntimeSharedDefaultMaterialProxy()를 자동으로 호출합니다. 이 함수는 MmdStandardMaterialProxy를 전역 기본값으로 설정하여 호환되는 모델의 머티리얼 모핑을 활성화합니다.
개별 전체 모듈 경로를 사용하면서 같은 전역 기본값을 사용하려면 다음과 같이 명시적으로 호출합니다:
import { RegisterMmdRuntimeSharedDefaultMaterialProxy } from "babylon-mmd/esm/Runtime/mmdRuntimeShared.pure";
RegisterMmdRuntimeSharedDefaultMaterialProxy();
모델별 동작을 명확히 하려면 위와 같이 머티리얼 프록시를 전달하는 방식을 계속 권장합니다.
머티리얼 프록시
머티리얼 매개변수를 조작할 때 MMD 런타임은 머티리얼에 직접 접근하지 않고 머티리얼 프록시를 통해 접근합니다.
이 접근 방식을 통해 모든 유형의 머티리얼을 사용하는 MMD 모델에서 머티리얼 모핑을 지원할 수 있습니다.
babylon-mmd는 두 가지 머티리얼 프록시를 제공하며, IMmdMaterialProxy 인터페이스를 구현하는 클래스를 생성하여 직접 구현할 수도 있습니다.
MmdStandardMaterialProxy:MmdStandardMaterial을 사용하는 MMD 모델용 머티리얼 프록시StandardMaterialProxy:StandardMaterial을 사용하는 MMD 모델용 머티리얼 프록시
MMD 모델에서 사용하는 머티리얼과 호환되지 않는 머티리얼 프록시를 전달하면 런타임 오류가 발생할 수 있습니다.