UDN
Search public documentation:

InteractiveFoliageActorKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 스태틱 메시 > 인터랙티브 포울리지 액터

인터랙티브 포울리지 액터


문서 변경내역: Daniel Wright 작성.

개요


InteractiveFoliageActor(인터랙티브 포울리지 액터)는 QA_APPROVED_BUILD_DEC_2009에서 처음 선보이는 액터 유형입니다. 사실상 이 액터는, 밀거나 발사하는 힘을 받으면 그 힘을 스프링 시스템에 적용시키는 스태틱 메시입니다. 그 결과는 FoliageNormalizedRotationAxisAndAngle 노드에 반영됩니다. 이 노드를 WorldPositionOffsetKR에 연계시키면 최소한의 성능 부담으로 메시를 애니메이트할 수 있습니다.

간단한 설정


  • Content 브라우저에서 스태틱 메시를 선택합니다. 콜리전은 스태틱 메시 상에서는 필요치 않습니다.
  • 에디터 뷰포트에서 오른쪽 클릭하여, [Add Actor](액터 추가) -> [Add InteractiveFoliageActor](InteractiveFoliageActor 추가)를 선택합니다.
  • WorldPositionOffsetKR에 영향을 미치는FoliageNormalizedRotationAxisAndAngle 를 사용하기 위해 머티리얼 설정을 적용합니다.

간단한 머티리얼 설정


아래 그림에서 알 수 있듯이, 실행시키는 데 필요한 것은 WorldPositionOffsetKR에 영향을 미치는 FoliageNormalizedRotationAxisAndAngle 뿐입니다. 이 축에 대해 객체를 회전시키려면 RotationAboutAxis 노드를 사용하십시오.

SimpleSetup.jpg

Object World Position에서 subtract로의 연결은 세계 공간에서 아래로 회전하는 포인트를 이동시키기 위한 것입니다. 이렇게 설정하면 나무덤불을 길 밖으로 밀어낼 수 있게 되며, 힘을 가하는 것을 멈추면 나무덤불은 다시 제자리로 돌아옵니다.

NotPushingCropped.jpg PushingCropped.jpg

물론 스크린샷으로는 애니메이션이 제대로 전달되지 않으므로 다음 동영상에서 결과를 더 잘 볼 수 있습니다.
WalkingThroughFields.mp4
Explosions.mp4

고급 머티리얼 설정


RotateAboutAxis에 반영되는 Angle(각도)을 수정하면 스태틱 메시의 각 부분을 다르게 회전시킬 수 있습니다. 한 예로, 강성도(stiffness)를 제어하는 정점 색상에 가중치를 저장하여 이를 각도 감쇠에 사용할 수 있습니다. 또한 FoliageImpulseDirection 노드도 있으며, 이는 스프링 중심에서부터 시뮬레이트된 스프링 위치까지의 벡터로 raw 스프링 오프셋을 제공합니다. 이 노드는 애니메이션을 회전시키지 않을 경우에 유용합니다.

여기 제시된 예는 메시의 각 부분에 대한 회전축을 변경하기 위해 정점 색상에서 오프셋을 사용하는 머티리얼입니다.

AdvancedSetup.jpg

위의 머티리얼에서 Custom 노드:

AdvancedSetup2.jpg

여기, 작동되는 머티리얼에 대한 동영상이 있습니다. 메시의 각 부분을 터치하면 각기 다른 방향으로 어떻게 회전하는지 눈여겨보십시오.

AdvancedAnimation.mp4

최상의 결과를 위해 주변 바람(ambient wind)과 함께 사용하도록 하십시오. WindDirectionAndSpeed 노드는 객체 사이에 바람 애니메이션을 가미하는데 유용합니다.

스프링 물리 설정


InteractiveFoliageActor에는 스프링의 움직임을 조절할 수 있게 하는 여러 설정이 있습니다. 예를 들어, 여러분의 캐릭터가 스프링을 터치할 때 스프링이 충분히 움직이지 않는 경우에는 FoliageTouchImpulseScale 값을 늘리면 됩니다.

SpringSettings.jpg

  • FoliageDamageImpulseScale - 데미지 이벤트에서 적용되는 힘을 조절합니다.
  • FoliageDamping - 스프링이 진동하면서 손실되는 에너지의 양을 정합니다. 이 힘은 공기마찰과 유사합니다.
  • FoliageStiffness - 스프링 중심부를 향해 미는 힘의 강도를 정합니다.
  • FoliageStiffnessQuadratic - FoliageStiffness 와 동일하지만, 이 힘의 강도는 스프링 중심부로부터의 거리의 제곱만큼 증가합니다. 이 힘은, 터치나 데미지 힘으로 인해 스프링이 특정 포인트를 지나 확산되지 않게 하는데 사용됩니다.
  • FoliageTouchImpulseScale - 터치 이벤트에서 적용되는 힘을 조절합니다.
  • MaxDamageImpulse - 적용되는 각 데미지 힘의 크기를 제한합니다.
  • MaxForce - 각 업데이트 시 적용되는 결합된 힘의 크기를 제한합니다.
  • MaxTouchImpulse - 적용되는 각 터치 힘의 크기를 제한합니다.
에디터에서 스프링의 작동상태를 미리 볼 수 있는 방법이 없으므로, 반복처리를 위한 가장 좋은 방법은 소규모의 테스트 레벨을 만드는 것입니다. 그런 다음 PIE에서 InteractiveFoliageActor 와의 상호작용을 테스트하면 됩니다.

제한 사항


  • 아직 PassThroughDamage에 대응하지 못하므로, 현재 InteractiveFoliageActor에서는 발사 무기를 차단합니다.
  • WorldPositionOffsetKR 가 애니메이션에 사용되므로, 그에 따른 모든 제한사항이 적용됩니다. WorldPositionOffsetKR는 비주얼 전용(visual-only) 효과를 제공합니다.

퍼포먼스 영향


InteractiveFoliageActor는 성능 오버헤드가 거의 없습니다. 사실상 이 액터는 조명이 전처리된 스태틱 메시며, 스태틱 메시는 렌더링 속도가 가장 빠른 유형의 메시입니다. 단 한 가지 주요 차이는 InteractiveFoliageActor는 Touch 이벤트 및 TakeDamage 이벤트를 받기 위해 충돌 옥트리(collision octree) 내에 충돌 실린더를 갖는다는 점입니다. InteractiveFoliageActor는 이전에 폴리지(foliage: 잎이 달린 나뭇가지)용 스태틱 메시를 배치하던 곳이면 어느 곳에서나 사용할 수 있도록 설계된 액터입니다.

문제 해결


액터에 적용되는 힘을 계산하는 데 사용되는 InteractiveFoliageActor 충돌 실린더를 보려면 게임에서 [show collision](충돌 보이기)를 사용하거나 PIE를 사용하십시오.

터치 시 방향이 바뀌는지에 대해 디버그하기 위해서, Emissive에 FoliageImpulseDirection 를 대입시키기 위한 머티리얼은 단순화시켜도 됩니다.

액터가 폭발의 영향을 받지 않는다면 액터 위치를 바닥보다 높게 하십시오. 폭발은, 데미지를 적용하기 전에 각 액터의 위치를 라인 체크(line check)합니다. 에디터에서 액터 선택 시 표시되는 이동 위젯(movement widget)의 위치를 통해 액터의 위치를 알 수 있습니다. 액터에 PrePivot을 적용하면(Display카테고리 내) 메시 상에서 액터의 위치를 높일 수 있습니다. 그런 다음, 보정을 위해 메시를 다시 옮기면 됩니다.