UDN
Search public documentation:

UsingInterpActorsKR
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 홈 > 키즈멧 비주얼 스크립팅 > InterpActor 사용하기
UE3 홈 > 마티네와 시네마틱 > InterpActor 사용하기
UE3 홈 > 시네마틱 아티스트 > InterpActors 사용하기

InterpActor 사용하기


문서 변경내역: David Green 작성.

개요


InterpActor(인터프 액터)는 스태틱 메시 액터의 특수한 다이내믹 버전입니다. 다양한 물리 유형을 지원하고, 동적 조명을 사용하고, Unreal Kismet 및 Matinee를 사용하여 다양한 방법으로 조정될 수 있고, 특정한 액터 상태에 대한 다양한 사운드를 재생할 수 있습니다.
이전 버전의 Unreal Engines에 친숙한 분에게 InterpActor는 Unreal Engine 3의 Mover 에 해당합니다.

모든 표준 StaticMesh는 InterpActor로 사용될 수 있습니다. 맵에 삽입되면 InterpActor는 직교 뷰포트에서의 자홍색 와이어프레임 색상만을 제외하고 표준 StaticMesh와 동일하게 렌더합니다. 또한 편집기에서 StaticMesh 액터와 동일한 방법으로 이동, 크기 변환, 회전됩니다.

아래 그림은 다양한 InterpActors를 보여줍니다.

UE3InterpActors.gif

InterpActor 삽입 하기

InterpActor는 StaticMeshes와 유사한 방법으로 맵에 삽입됩니다.

- Drag Grid(드래그 그리드)가 현재 활성화 되어있는지 확인하고 Drag Grid의 크기가 4에서 32 사이에 설정되어 있는지 확인하십시오.
- 일반 브라우저 대화 상자에서 원하는 StaticMesh를 선택합니다.
- 뷰포트 중 한개를 마우스 오른쪽 버튼으로 클릭하여 팝업 메뉴를 표시합니다.
- "Add Actor" 메뉴 항목을 선택하여 플라이-아웃 메뉴를 표시합니다.
- "Add InterpActor: StaticMesh <selected static mesh name>" 메뉴 항목을 클릭하여 InterpActor를 삽입합니다.

InterpActor는 와이어프레임의 색이 청록색 대신 자홍색이라는 점을 제외하고는 삽입된 StaticMesh 버전과 동일하게 보입니다.

UE3IAInsert.gif

InterpActor 원점 및 선회

InterpActors의 기점과 회전의 선회축 중심은 StaticMesh의 원점 또는 선회축 점을 기반으로 하므로 InterpActors로 사용되는 모든 메쉬 모델을 제작할때 선회축이 메쉬의 적절한 기점과 선회축 중심에 있도록 하는 것이 매우 중요합니다. 예를 들면 대부분의 문의 경우 선회축이 문의 경첩이 위치한 한쪽 코너에 있고, 리프트 플랫폼의 경우 선회축은 기반 중심에 있고, 배기 팬의 경우 선회축이 팬 날의 중앙 허브에 위치합니다.

다음 StaticMesh 와이어 프레임 이미지는 각 InterpActor 유형의 일반적인 선회축 점을 보여줍니다.

UE3IAOrigin.gif

StaticMesh의 선회축이 InterpActor로 사용되는 경우 선회축이 잘못된 위치에 디자인 되었다면 Display.PrePivot 속성을 변경하여 객체의 현재 삽입된 인스턴스의 선회축 위치를 수정할 수 있습니다. 선회축 오프셍이 이미 알려진 경우 X,Y,Z 값을 속성에 입력하기만 하면 됩니다. 만약 오프셋을 알 수 없다면 편집기의 측정 도구(Ctrl + 마우스의 중간 버튼)을 사용하여 오프셋 양을 확인하거나 InterpActor 메쉬가 선회축이 적절하게 정렬될때까지 값을 입력합니다.

UE3PrePivot.gif

일단 InterpActor가 입력되면 액터가 원하는대로 이동할 수 있게 특정 속성과 Kismet 및 Matinee이 설정되야 합니다. 아래의 주제에서 다양한 일반적인 InterpActor 유형에 대한 특성을 참조해 주십시오.

InterpActors 조명 빛추기


InterpActors는 본질적으로 동적 StaticMeshes이므로 동적 조명을 필요로 합니다. 구어진 표준의 정적 조명은 InterpActors가 Perspective 뷰포트 및 게임내에서 검정으로 렌더되는 결과를 초래합니다. InterpActors를 조명하는 방법은 여러가지가 있으며 특정 맵 디자인에 따라 선택되어지는 방법이 달라질 수 있습니다.

동적 조명의 사용은 성능적 측면에서 상당한 부담이 되기에 주의하여 사용해야 하며 동적 조명은 일반적은 필요한 최소량의 지역으로 제한하여야 합니다.

Ambient Glow (주변 발광)

InterpActor는 DynamicSMActor.LightEnvironment.DynamicLightEnvironmentComponent.AmbientGlow.A,R,G,B 속성을 0이 아닌 값(RGB의 경우 0,0,0은 검정색임)으로 설정하여 기본적으로 자체가 발광되도록 구성될 수 있습니다. 선택한 ARGB 값은 액터가 “발광” 색상에 직접 해당합니다.

AmbientGlow 사용의 단점은 액터가 표면 전체를 동등하게 빛추기 때문에 특성 중 하나인 3D 그림자 효과가 근본적으로 완화되거나 또는 제거됩니다. 과도하게 사용되면 AmbientGlow는 InterpActor가 평면의 활력을 잃은 것 같이 보이게 만듭니다.

UE3AmbientGlow.gif

빛 환경

현재 작업중

사용자 조명 채널

UE3는 Unnamed_1 에서 Unnamed_6 라고 불리는 6개의 사용자 정의 조명 채널을 지원합니다. 사용자 정의 채널은 장면에서 맞춤 조명이 정의된 객체 세트로 제한되도록 할 수 있습니다. 필요에 따라 1개 이상의 DirectionalLight, PointLight, SkyLight, 또는 SpotLight 액터를 배치하고, InterpActor에서의 동일한 채널에 해당하는 Unnamed_* 채널을 선택하면 그 빛이 InterpActor에만 영향을 미치게 됩니다.

따라서 InterpActor을 조명하는 간단한 방법은 단지 InterpActor의 DynamicSMActor.StaticMeshComponent.Lighting.LightingChannels.Dynamic 및 .Unnamed_1 채널을 True로 설정하면 InterpActor가 동적 빛을 투사물 및 동일한 조명 채널로 설정된 사용자 정의된 빛으로 나타낼 수 있게 됩니다. 그런 다음 InterpActor의 적절한 상대적 위치에 PointLight를 배치하고 단지 Light.LightComponent.LightingChannels.Unnamed_1 조명 채널을 True로 설정합니다.
6개의 사용자 정의 Unnamed_* 조명 채널은 맞춤 조명이 필요한 채널 수 충족하고도 남습니다.

사용자 정의 조명 채널 사용의 단점은 만약 너무 복잡지면 발생할 수 있는 나머지 장면 정적 조명과의 일치 문제가 있고 단지 6개의 Unnamed 채널만 사용할 수 있다는 것입니다.

UE3LightingChannel.gif

InterpActors의 일반 속성


현재 작업중


곧 완료될 것임

엘리베이터


곧 완료될 것임

리프트


UE3에서 리프트 유형의 InterpActor를 만드는 것은 Epic에서 이미 대부분의 작업을 완료하였기에 쉬운 작업입니다. 리프는 단지 StaticMesh와 간단한 Unreal Kismet 및 Matinee 설정을 필요로 합니다.

1. 일반 브라우저에서 원하는 StaticMesh를 선택합니다.
2. InterpActor를 맵에 삽입하고 적절한 위치에 배치합니다.
3. 액터 속성 대화 상자를 열고 다음 값을 설정합니다.

  • Collision.BlockRigidBody = True.
    이것은 플레이어와 AI가 InterpActor에서 충돌 및/또는 서 있을 수 있게 하는 설정입니다. 기본값은 False입니다.
  • Collision.CollisionType = COLLIDE_BlockAll.
    이것은 InterpActor가 다른 액터와 충돌할 수 있거나 그림자를 투영할 수 있게 하는 설정입니다.

  • Display.DrawScale과 Display.DrawScale3D.X,Y,Z를 적절히 설정합니다.
    이들은 InterpActor의 크기에 대한 설정으로 기본값은 모두 1.0으로 설정되어 있습니다.

  • DynamicSMActor.LightEnvironment.DynamicLightEnvironmentComponent.AmbientGlow.A,R,G,B를 적절히 설정합니다.
    InterpActor의 추가적 밝아짐 설정은 기본적으로 A = 1.0, R = 0.0, G = 0.0, B = 0.0으로 설정합니다.
  • DynamicSMActor.LightEnvironment.bCastShadows = True.
    InterpActor가 그림자를 투영하길 원치 않으면 이것을 False로 설정합니다. 이것의 기본값은 True입니다.
  • DynamicSMActor.LightEnvironment.LightEnvironmentComponent.bEnabled = False.
    LightEnvironment를 InterpActor과 함께 사용하는 경우 이것을 True로 설정합니다.

  • InterpActor.bContinueOnEncroachPhysicsObject = True.
    PHYS_RigidBody 액터가 주변에 있어도 InterpActor가 계속될지 여부를 설정합니다. 기본값은 True입니다.
  • InterpActor.bDestroyProjectilesOnEncroach = True.
    InterpActor가 충돌하는 투사물을 폭팔시키는 여부를 설정합니다. 기본값은 True입니다.
  • InterpActor.bStopOnEncroach = True.
    InterpActor가 다른 액터에 너무 근접하면 중지할지 여부를 설정합니다. 기본값은 True입니다.

  • InterpActor를 맵에 배치하기 Movement.Location을 적절하게 설정합니다.
  • Movement.Physics = PHYS_Interpolating.
  • InterpActor를 맵에서 올바른 방향으로 배치하기 위해 Movement.Rotation.Pitch,Roll,Yaw를 적절하게 설정합니다.

4. 리프트에 대한 Kismet 및 Matinee를 만듭니다.

  • InterpActor를 선택합니다.
  • "K" 툴바 버튼을 클릭하여 Unreal Kismet을 시작합니다.
  • Kismet 대화 상자를 오른쪽 클릭하여 팝업 메뉴가 나타나게 하여, "New Event Using InterpActor_x"를 선택한 다음 "Mover" 항목을 선택합니다. 이렇게 하면 기본 리프트 이동자(mover) 스타일의 Kismet 템플릿이 만들어집니다.
  • Kismet에 새로운 "Comment (wrap)"(코멘트 (둘러쌈))를 추가하고 "Left Lift"과 같은 이름을 부여한 다음 시퀀스의 주위를 둘러쌉니다.

Kismet에서 생성한 Mover Event를 보면 리프트 제어에 있어 발생하는 기본 논리를 볼 수 있습니다.
Kismet Mover Event는 InterpActor Mover와 Matinee으로 구성되어 있습니다.
- Pawn(플레이어 또는 AI)이 리프트에 올라 타면, Matinee Movement 트랙을 재상하기 시작하는 Matinee "Play를 트리거하는 Mover "Pawn Attached"가 유발됩니다.(Matinee 트랙에 관해서는 아래를 참조).
- 예를 들면 KeyFrame 0에서 마지막 KeyFrame으로 이동하는 것과 같이 Mover가 오픈 시퀀스를 완료하면 Matinee Movement 트랙을 뒤로 재생하는 Matinee "Reverse"를 트리거하는 Mover "Open Finished" 이벤트가 유발됩니다.
- Mover가 Pawn과 부딪칠때 발새생하는 Mover "Hit Actor" 이벤트는 Matinee 트랙이 방향을 변경하게 유발하고 Mover를 Pawn에서 떨어지게 하는 Matinee "Change Dir"를 트리거합니다.

UE3LiftKismet.gif

5. Lift 애니메이션에 대한 Matinee 값을 만듭니다.

  • InterpActor가 맵 뷰포트에서 여전히 선택된 상태에 있는지 확인합니다.
  • Matinee 장치를 두 번 연속 클릭하거나 오른쪽 클릭하고 Matinee Editor 대화 상자를 열기 위해 "Open UnrealMatinee"를 선택합니다.
  • 중앙 패널의 MoverGroup 항목을 열면 바로 밑에 Mover 트랙이 표시되는 것에 유념하십시오.
  • 선택이 되어 있지 않은 경우 "Toggle Snap" 버튼을 클릭하고 0.1s 스냅(1초의 1/10)으로 설정합니다.
  • 대화 상자 왼쪽 상단의 "Add Key" 버튼을 클릭합니다("Toggle Snap"과 동일한 아이콘 버튼이므로 혼동하지 마십시오).
    이것은 키프레임을 0.00 시간 위치에 추가합니다. 이것은 리프트의 착지 위치를 낮춥니다.
  • 검정 슬라이더 바를 0.5s으로 드래그하고, "Add Key"를 다시 클릭하여 2번째 키프레임을 여기에 추가합니다. 스냅은 조금 벗어나도라도 0.5s의 위치에 배치시킵니다.
  • 초 키프레임에 있는 작은 오렌지색 삼각형/피라미드를 클릭하면 Matinee는"OKey1"를 나타내고 편집기는"ADJUST KEY 1"을 나타낼 것입니다.
  • InterpActor를 이 KeyFrame으로 이동 시킵니다. 이것은 리프트의 위치를 높힙니다.
  • 분홍색 Time End 마커를 1.0s의 시간으로 드래그합니다. 이것은 리프트가 상승된 위치에 머물게 되는 시간을 결정합니다.
  • 시간 슬라이더를 드래그하여 움직임을 볼 수 있습니다.
  • Matinee 및 UnrealKismet를 닫습니다.

matinee에 대한 설명이 작업 중에 있음

UE3LiftMatinee.gif

6. 본 튜토리얼에서 앞서 언급된 것처럼 원하는 조명 스타일을 추가합니다.

리프트에 대한 AI 지원 추가하기

작업 중에 있음

로테이터 (fan 등)


계속해서 회전하는 InterpActor를 만드는 것은 간단하고 액터의 가장 기본적인 기능 중 하나입니다. 로테이터 유형 InterpActor는 Unreal Kismet 또는 Matinee에서 작업을 필요로 하지 않습니다.

1. 일반 브라우저에서 원하는 StaticMesh를 선택합니다.
2. InterpActor를 맵에 삽입하고 적절한 위치에 배치합니다.
3. 액터의 선회축 위치가 로테이터 스핀하는 곳에 알맞은지를 확인하십시오.
4. 액터 속성 대화 상자를 열고 다음 값을 설정합니다.

  • Collision.BlockRigidBody = False.
    InterpActor가 강체(rigid body) 액터와 충돌하면 이것이 True로 설정합니다. 기본값은 False입니다.
  • Collision.CollisionType = COLLIDE_BlockAll.
    InterpActor가 다른 액터와 충돌할 수 있거나 그림자를 투영할 수 있게 하는 설정입니다.

  • Display.DrawScale과 Display.DrawScale3D.X,Y,Z를 적절히 설정합니다.
    이들은 InterpActor의 크기에 대한 설정으로 기본값은 모두 1.0으로 설정되어 있습니다.

  • DynamicSMActor.LightEnvironment.DynamicLightEnvironmentComponent.AmbientGlow.A,R,G,B를 적절히 설정합니다.
    InterpActor의 추가적 밝아짐 설정은 기본적으로 A = 1.0, R = 0.0, G = 0.0, B = 0.0으로 설정합니다.
  • DynamicSMActor.LightEnvironment.bCastShadows = False.
    InterpActor가 그림자를 투영하길 원하면 이것을 True로 설정합니다. 이것의 기본값은 True입니다. InterpActor의 디자인 및 맵에서의 사용에 따라 동적 그림자가 적절하게 보이지 않을 수 있습니다.
  • DynamicSMActor.LightEnvironment.LightEnvironmentComponent.bEnabled = False.
    LightEnvironment를 InterpActor과 함께 사용하는 경우 이것을 True로 설정합니다.

  • InterpActor.bContinueOnEncroachPhysicsObject = True.
    PHYS_RigidBody 액터가 주변에 있어도 InterpActor가 계속될지 여부를 설정합니다. 기본값은 True입니다.
  • InterpActor.bDestroyProjectilesOnEncroach = True.
    InterpActor가 충돌하는 투사물을 폭팔시킬 여부를 설정합니다. 기본값은 True입니다.
  • InterpActor.bStopOnEncroach = True.
    InterpActor가 다른 액터에 너무 근접할 시 중지할지 여부를 설정합니다. 기본값은 True입니다.

  • InterpActor를 맵에 배치하기 위해 Movement.Location을 적절하게 설정합니다.
  • InterpActor가 게임 중 항상 원 선회축 중심으로 회전하게 Movement.Physics = PHYS_Rotating으로 설정합니다.
  • InterpActor를 맵에서 올바른 방향으로 배치하기 위해 Movement.Rotation.Pitch,Roll,Yaw를 적절하게 설정합니다.
  • InterpActor가 회전하는 속도를 지정하기 위해 Movement.RotationRate.Yaw를 설정합니다.
    값이 높을수록 속도가 빨라집니다. 300에서 500이 일반적인 배기 팬의 값입니다.

5. 본 튜토리얼에서 앞서 언급된 것처럼 원하는 조명 스타일을 추가합니다.

6. 회전하는 팬의 소음과 같이 반복되는 주변(ambient ) 사운드를 InterpActor에 연관시키길 원하면 AmbientSoundSimple 액터를 삽입합니다.

로테이터 동작을 확인하기 위해 Play-In-Editor에서 맵을 테스트해 봅니다.

UE3IAFan.jpg