unreal engine 4에서
아래와 같이 skeletal mesh compoennt를 설정했음.
abc.h:
(중략)
static UAnimSequence* g_FireAni;
TSubobjectPtr
void Fire();
(중략)
abc.cpp:
(중략)
UAnimSequence* ATowerBase::g_FireAni = NULL;
ConstructorHelpers::FObjectFinder
m_canonMesh = PCIP.CreateDefaultSubobject
m_canonMesh->AttachTo(Mesh, TEXT("CanonPoint"));
m_canonMesh->SetSkeletalMesh(lCanonMesh2.Object);
(중략)
그리고, 아래와 같은 함수로 총을 쏘는 동작을 재생하려고 함.
void ATowerBase::Fire()
{
m_canonMesh->PlayAnimation( g_FireAni, FALSE );
}
Fire() 호출 할 때마다, 총을 쏘는 동작을 보고 싶은데,
(반복 animation이 아니라 1회성 animation)
Fire()를 한번 호출 하고나면, 그 다음부터는 animaiton 적용이 안됨.-_-;;;;
이 문제를 어떻게 해결해야 하는가?
-------------------------------------------------------------
Answer>
1회성 animation을 재생한 뒤에
시간이 animation의 마지막 부분으로 설정이 되어서,
다음 번의 재생을 방해를 하고 있습니다.^^;;;;;;
따라서,
위 함수에 아래와 같이 추가 부분을 넣으시기 바랍니다.
void ATowerBase::Fire()
{
//추가 부분-s
m_canonMesh->S e t P o s i t i o n( 0.0f );
//추가 부분-e
m_canonMesh->PlayAnimation( g_FireAni, FALSE );
}
S e t P o s i t i o n()으로
animation의 시작 시간을 0.0f로 설정해 주시면, 간단히 해결됩니다.^^
Tag:
안기훈, Kee Hoon Ahn, Unreal, UDK, iPhone, iPad, app, 앱, iOS