UDN
Search public documentation:

UsingKActorsKR
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 홈 > 스태틱 메시 > KActor 사용하기
UE3 홈 > 피직스 > KActor 사용하기
UE3 홈 > 레벨 디자이너 > KActor 사용하기

KActor 사용하기


문서 변경내역: Jeff Wilson 작성. 홍성진 번역.

개요


동적 배열은 게임 환경에 생동감을 불어넣어 플레이어에게 현실적인 면을 더해줄 수 있습니다. 실시간 리짓 바디 피직스 시뮬레이션으로 구동되는 오브젝트는 KActor 를 사용해서 추가할 수 있습니다. 이 액터는 하나의 스태틱 메시 애셋을 사용하며, 무기 발사시나 특별한 포스 액터, 심지어 플레이어의 포스를 사용해서 이리저리 밀거나 옮길 수도 있습니다. 맵 주변에 상자나 통같은 것을 추가하는 데도 좋지만, 미닫이 문이나 흔들리는 라이트같은 복잡한 이펙트도, 실제적으로 피직스로 구동되는 것이면 무엇에든 사용할 수 있습니다.

놓기


KActor 는 뷰포트의 우클릭 맥락 메뉴를 사용해서 맵에 놓을 수 있습니다.

ALERT! 주: 스태틱 메시 애셋을 KActor 로 사용하려면 단순화된 콜리전 지오메트리를 갖고 있어야 합니다.

맥락 메뉴

  1. 콘텐츠 브라우저에서 맵에 KActor 로 추가하려는 스태틱 메시를 선택합니다.
    place_select.jpg
  2. 뷰포트에서 메시를 추가하려는 곳에 우클릭, 맥락 메뉴에서 Add RigidBody: [MeshAssetPath] 를 선택합니다. 위치는 정확할 필요 없습니다. 나중에 언제든 메시의 위치, 회전, 크기를 재조정할 수 있습니다.
    place_context_add.jpg
  3. 프로퍼티 창 에서 보듯이, 맵에 KActor 로 스태틱 메시가 놓였습니다.
    place_complete.jpg

KActor 셋업

레벨에 KActor 를 놓은 이후에는 오브젝트의 정상 작동을 위해서 조절해 줘야 할 수가 있는 프로퍼티가 있습니다.

KActor
Damage Applies Impulse 대미지에 충격 적용
켜면 KActor 가 받은 대미지가 충격으로 전해져, 오브젝트가 대미지를 받은 위치에서 움직이도록 만듭니다. 충격의 세기는 받은 대미지의 종류 (DamageType), 정확히 KDamageImpulse 프로퍼티에 따라 결정됩니다.
Wake On Level Start 레벨 시작시 깨기
켜면 KActor 는 레벨 시작과 동시에 시뮬레이션됩니다. 디폴트로 KActor 는 레벨에 잠든 "asleep" 상태로 시작합니다. 즉 물리 시뮬레이션이 켜져있지 않아 외부의 힘에 의해 깨기 전까지는 가만히 있는 것으로 보인다는 뜻입니다. 이런 것이 어떤 상황에서는 유용할 수도 있습니다. 궤짝 더미를 생각해 봅시다. 무언가 작용이 있지 않고서야 움직이지 않을 테고, 레벨 시작과 동시에 시뮬레이션을 시작할 이유가 없습니다. 그러나 레벨 시작과 동시에 움직이게 만들 KActor 라면, 이 Wake On Level Start 프로퍼티를 켜야 하겠지요.
Limit Max Physics Velocity 최대 피직스 속도 제한
켜면 KActor 의 속도는 Max Physics Volocity 에 의해 제한됩니다.
Max Physics Volocity 최대 피직스 속도
Limit Max Physics Velocity 가 켜졌을 때 KActor 의 최대 이동 속도를 지정합니다.
Stay Upright Spring (직립 스프링)
Enable Stay Upright Spring 직립 스프링 켜기
켜면 KActor 가 직립, 즉 KActor 의 로컬 Z 축과 월드 Z 축의 일치 상황을 유지할 수 있도록, 그 로테이션에 물리 시뮬레이션이 토크(torque, 회전력)를 적용합니다.
Stay Upright Torque Factor 직립 토크 팩터
KActor 의 직립을 유지하기 위해 적용되는 토크 양입니다. KActor 가 직립 상태에서 얼마나 멀어졌는가에 따라 스케일이 적용됩니다.
Stay Upright Max Torque 직립 최대 토크
KActor 의 직립을 유지하기 위해 최대로 적용할 토크 양입니다. 스케일이 적용된 Stay Upright Torque Factor 를 제한시키기 위해 사용됩니다.

다른 액터로/에서 변환


뷰포트 우클릭 맥락 메뉴를 통해서, KActor 는 스태틱 메시를 표시하는 일정한 액터 종류로/에서 변환 가능합니다. 맵에다 예전에 StaticMeshActor 또는 InterpActor 로 놓은 것을 KActor 로, 또는 그 반대로 변환하고자 할 때 편리합니다.

KActor 로 변환

  1. 뷰포트에서 KActor 로 변환하고자 하는 액터를 선택합니다.
    convert_select.jpg
  2. 액터에 우클릭하고 변환 > [현재 액터 종류]를 KActor 로 변환 을 선택합니다.
    convert_context.jpg
  3. 프로퍼티 창 에서 보듯, 액터가 KActor 로 변환되었습니다.
    convert_complete.jpg

KActor 에서 변환

KActor 에서 다른 유형으로의 변환은 위에서 본 KActor 로 변환과 똑같은 절차를 거칩니다. KActor 가 변환 가능한 액터 유형은 아래와 같습니다:

머티리얼 덮어쓰기


스태틱 메시에 적용된 머티리얼은 액터 단위별로 덮어쓸 수 있습니다. 이런 방식으로 스태틱 메시 애셋 하나를 맵 하나에서든 게임 전반적으로든 여러 번 사용하면서도 매번 독특한 모양새를 낼 수 있습니다. KActor 의 StaticMeshComponentRendering 범주에 있는 Materials 프로퍼티는 스태틱 메시 에디터 를 통해 스태틱 메시 애셋에 적용된 머티리얼에 직접 매핑되는 Materials 배열입니다. 머티리얼은 배열에 수동 할당할 수도, 콘텐츠 브라우저에서 뷰포트의 메시에 직접 끌어다 놓아 적용할 수도 있습니다.

수동 할당

  1. 뷰포트에서 새로운 머티리얼을 할당하려는 KActor 를 선택하고 F4 키를 눌러 프로퍼티 창에서 그 프로퍼티를 엽니다.
    material_properties.jpg
  2. DynamicSMActor 아래 StaticMeshComponentRendering 범주에서, Materials 배열 옆 add_item_button.jpg 버튼을 눌러 새 항목을 추가합니다. 스태틱 메시에 머티리얼 슬롯이 하나 이상 있는 경우, 그 스태틱 메시의 머티리얼 슬롯과 배열의 항목이 일치하도록 하나 이상의 항목을 추가해 줘야 할 수도 있습니다.
  3. 콘텐츠 브라우저에서 맵의 KActor 에 적용하려는 머티리얼을 선택합니다.
    material_select.jpg
  4. Materials 배열 내 상응하는 항목의 use_selected_button.jpg 버튼을 눌러 머티리얼을 할당합니다. 메시에 머티리얼이 적용되어 나타납니다.
    material_complete.jpg

끌어다 놓기

  1. 콘텐츠 브라우저에서 맵의 KActor 에 적용하려는 머티리얼을 선택합니다.
    material_select.jpg
  2. 콘텐츠 브라우저에서 머티리얼에 좌클릭한 후 (버튼을 누른 채) 마우스를 끌어 뷰포트 내 머티리얼을 적용하려는 KActor 부분으로 이동합니다.
    material_drag.jpg
  3. 마우스 왼쪽 버튼을 놓아 머티리얼을 적용합니다. 메시에 머티리얼이 적용되어 나타나며, 프로퍼티 창의 Materials 배열이 업데이트됩니다.
    material_complete.jpg

피지컬 머티리얼


KActor 가 월드와 동적으로 상호작용하는 방식을 제어하는 물리적 속성은, 스태틱 메시 애셋에 적용된 PhysicalMaterial 에서 옵니다. 밀도, 제동, 마찰 등의 물리적 시뮬레이션 측면은 모두 피지컬 머티리얼을 통해 환경설정 가능합니다. 그에 더해 충격시나 표면을 미끄러질 때와 같은 여러가지 콜리전 이벤트에 재생할 사운드와 파티클 이펙트를 지정할 수도 있습니다.

physmat_effect.jpg

피지컬 머티리얼 덮어쓰기

이 피지컬 머티리얼은 KActor 의 StaticMeshComponent 에 새로운 PhysicalMaterial 을 할당하여 액터 단위별로 덮어쓸 수 있습니다.

  1. 뷰포트에서 새로운 피지컬 머티리얼을 할당하려는 KActor 를 선택하고 F4 키를 눌러 프로퍼티 창에서 그 프로퍼티를 엽니다.
    physmat_properties.jpg
  2. 콘텐츠 브라우저에서 맵의 KActor 에 적용하려는 머티리얼을 선택합니다.
    physmat_select.jpg
  3. DynamicSMActor 아래 StaticMeshComponentPhysics 범주에서, PhysMaterialOverride 프로퍼티의 use_selected_button.jpg 버튼을 눌러 피지컬 머티리얼을 할당합니다.
    physmat_complete.jpg

컨스트레인트와 KActor


KActor 의 이동 방식을 제한시키거나 제어하기 위하여 KActor 끼리 서로 또는 월드에 묶을 수 있는데, 컨스트레인트 (constraint, 제약) 를 사용해서 가능합니다. 이러한 액터는 KActor 의 이동이나 회전을 특정 축으로 제한시켜 힌지(경첩), 볼 앤 소켓 조인트(자유회전 관절), 도르래 등을 만들 수도 있고, 운동이나 회전을 구동시켜 스프링이나 모터같은 것도 만들 수도 있습니다.

모든 컨스트레인트 프로퍼티에 대한 정보와 설명은 Physics Constraint Reference KR 페이지를 참고해 주시기 바랍니다.

KActor 제약시키기

  1. 액터 클래스 브라우저에서 사용하려는 컨스트레인트 종류를 선택합니다.
    constraint_class.jpg
  2. 뷰포트에서 컨스트레인트를 놓고자 하는 위치에 우클릭하고 Add [ConstraintType] Here 를 선택합니다. 컨스트레인트 위치와 회전은 놓은 후 언제든 재조정할 수 있습니다.
    constraint_add.jpg
  3. 컨스트레인트를 선택하고 F4 키를 눌러 프로퍼티를 확인합니다. 선택 액터 잠금 버튼을 눌러 프로퍼티 창을 고정시킵니다.
    constraint_lock.jpg
  4. KActor 를 선택하고 RB Constraint Actor 범주에 있는 ConstraintActor1 프로퍼티의 use_selected_button.jpg 버튼을 누릅니다. KActor 주변에 빨강 경계 박스로 표시되어 ConstraintActor1 프로퍼티에 제약되었음을 나타냅니다. ConstraintActor2 프로퍼티에 제약된 액터에 대해서는 파랑 박스가 표시됩니다.
    constraint_actor.jpg
    ConstraintActor2 프로퍼티는 빈 채로 남겨둡니다. 그러면 KActor 가 컨스트레인트 액터 위치에 있을 때는 월드에 제약됩니다.
  5. 컨스트레인트에 원하는 대로 프로퍼티를 설정합니다. 이 예제에서는 트위스트 축을 중심으로 90 도만 회전되도록 제한시켰습니다.
    constraint_limit.jpg
  6. 제약된 KActor 를 게임내에서 테스트해 보니, 포스가 적용될 때마다 흔들립니다.
    constraint.jpg