UDN
Search public documentation:

PhATUserGuideKR
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 홈 > 언리얼 에디터와 툴 > 피직스 애셋 툴 사용 안내서
UE3 홈 > 피직스 > 피직스 애셋 툴 사용 안내서

피직스 애셋 툴 사용 안내서


문서 변경내역: James Golding 작성. Richard Nalezynski, Jeff Wilson 업데이트. 홍성진 번역.

개요


언리얼 피직스 에디터(PhAT, Physics Asset Tool)는 스켈레탈 오브젝트에 대한 피지컬 셋업 조작용으로 특별히 디자인된 언리얼 에디터 통합 툴입니다.

PhAT 열기


PhAT 피직스 에디터는 피직스 애셋에 더블클릭하거나 콘텐츠 브라우저에서 피직스 애셋에 우클릭하여 뜨는 맥락 메뉴를 통해 열 수 있습니다. 어느 식으로든 해당 피직스 애셋이 PhAT 피직스 에디터에 편집가능한 상태로 열리게 됩니다.

: PhAT 창을 한 번에 하나 이상 열 수도(, 가끔은 그러는게 나을 수도) 있긴 하지만, 동시에 여러개를 시뮬레이팅하는 것은 성능상 좋지 않기에 추천할만 하지는 않습니다.

PhAT 인터페이스


PhAT 피직스 에디터는 다음과 같이 나뉘어 있습니다:

phateditor.jpg

  1. 메뉴바
  2. 툴바
  3. 미리보기 패널
  4. 프로퍼티 패널
  5. 트리 패널

메뉴바

편집

  • 되돌리기 - 지난 번 완료한 작업을 되돌립니다.
  • 다시하기 - 지난 번 되돌린 작업을 다시합니다.
  • 기본 스켈레탈 메시 변경 - 콘텐츠 브라우저에 현재 선택된 스켈레탈 메시를 피직스 애셋용 기본 스켈레탈 메시로 설정합니다.

  • 전체 애셋 리셋 - 초기 바디 생성 대화창을 열고 전체 피직스 애셋을 새로운 설정으로 대체합니다.
  • 선택 본 콜리전 리셋 - 선택된 스켈레탈 메시 바디의 콜리전 변경사항을 지웁니다.
  • 모든 바디에 선택된 피지컬 머티리얼 적용 - 콘텐츠 브라우저에 현재 선택된 피지컬 머티리얼을 피직스 애셋의 모든 바디에 적용합니다. 선택된 피지컬 머티리얼이 없으면 꺼집니다.
  • 모든 조인트에 조인트 설정 복사 - 현재 선택된 컨스트레인트(제약) 프로퍼티를 피직스 애셋의 모든 컨스트레인트에 복사합니다. 선택된 컨스트레인트가 없으면 효과가 없습니다.

  • 프로퍼티 - 프로퍼티 패널 토글입니다.
  • 트리 - 트리 패널 토글입니다.

툴바

다음은 각 툴바의 버튼에 대한 설명으로, 툴바의 왼쪽에서 오른쪽 순입니다.

아이콘 설명
PhAT_BodyMode.jpg PhAT_ConstraintMode.jpg 피지컬 바디 / 컨스트레인트 간의 편집 토글입니다.
PhAT_WorldSpace.jpg PhAT_LocalSpace.jpg 변형 툴에 대해 월드 / 로컬 공간 좌표간의 토글입니다.
PhAT_TransMode.jpg 트랜슬레이션 위젯을 띄웁니다.
PhAT_RotMode.jpg 로테이션 위젯을 띄웁니다.
PhAT_ScaleMode.jpg 스케일 위젯을 띄웁니다.
PhAT_Snap.jpg 변형 툴용 스내핑 토글입니다. 트랜슬레이션의 경우 스내핑을 끄면 0.25 단위, 켜면 2.0 단위로 옮깁니다. 로테이션의 경우는 끄면 1.0 단위로, 켜면 15.0 단위입니다.
PhAT_CopyProps.jpg 현재 선택된 바디/컨스트레인트의 프로퍼티를 다음 선택할 바디/컨스트레인트에 복사합니다.
PhAT_InstanceProps.jpg 바디 편집 모드에 있을 때 프로퍼티 패널에 표시할 바디 / 인스턴스 프로퍼티간 토글입니다.
PhAT_StartSim.jpg PhAT_StopSim.jpg 미리보기 패널에 피직스 애셋용 피직스 시뮬레이션의 미리보기 토글입니다.
PhAT_ShowMesh.jpg PhAT_WireMesh.jpg PhAT_HideMesh.jpg 메시 렌더링 모드를 라이팅포함 렌더링된 메시 / 와이어프레임 / 숨김 모드로 순환시킵니다.
PhAT_ShowColl.jpg PhAT_WireColl.jpg PhAT_HideColl.jpg 콜리전 렌더링 모드를 지오메트리 / 와이어프레임 / 숨김 모드로 순환시킵니다.
PhAT_ConPos.jpg PhAT_ConLimit.jpg PhAT_ConHide.jpg 컨스트레인트 렌더링 모드를 위치 / 제한 / 숨김 모드로 순환시킵니다.
Lock.jpg 고정된 바디의 빨간색 표시 토글입니다.
PhAT_ShowFloor.jpg 미리보기 패널에 바닥 그리드 메시의 표시 토글입니다.
PhAT_ShowSkel.jpg 미리보기 패널에 기본 스켈레탈 메시의 스켈레톤과 본 이름 표시 토글입니다.
PhAT_ShowContacts.jpg  
PhAT_HighlightVert.jpg 트리 패널에 현재 선택된 본/바디로 웨이팅된 버텍스 표시 토글입니다.
PhAT_ShowCOM.jpg 시뮬레이션 미리보기가 켜졌을 때 피직스 애셋의 바디용 mass(질량) 프로퍼티 표시 토글입니다.
PhAT_DisablePair.jpg 트리 패널에 현재 선택된 바디와 다음 선택할 바디 사이의 콜리전을 끕니다.
PhAT_EnablePair.jpg 트리 패널에 현재 선택된 바디와 다음 선택할 바디 사이의 콜리전을 켭니다.
PhAT_Weld.jpg 트리 패널에 현재 선택된 바디와 다음 선택할 바디를 결합합니다.
PhAT_AddBone.jpg 트리 패널에 선택할 본에다 바디를 새로 추가합니다. 더블클릭 필수. 기본형은 박스입니다.
PhAT_AddSphere.jpg 트리 패널에 현재 선택된 본에다 구체 바디를 새로 추가합니다.
PhAT_AddSphyl.jpg 트리 패널에 현재 선택된 본에다 스필(캡슐) 바디를 새로 추가합니다.
PhAT_AddBox.jpg 트리 패널에 현재 선택된 본에다 박스 바디를 새로 추가합니다.
PhAT_DelPrim.jpg 트리 패널에 현재 선택된 바디를 삭제합니다.
PhAT_DupPrim.jpg 트리 패널에 현재 선택된 바디의 사본을 만듭니다.
PhAT_ConFrame.jpg  
PhAT_BSJoint.jpg 트리 패널에 현재 선택된 컨스트레인트를 볼-앤-소켓 조인트(관절)로 변환합니다.
PhAT_Hinge.jpg 트리 패널에 현재 선택된 컨스트레인트를 힌지(경첩) 조인트로 변환합니다.
PhAT_Prismatic.jpg 트리 패널에 현재 선택된 컨스트레인트를 프리스매틱 조인트(직선축)로 변환합니다.
PhAT_Skel.jpg 트리 패널에 현재 선택된 컨스트레인트를 스켈레탈 조인트로 변환합니다.
PhAT_DelJoint.jpg 트리 패널에 현재 선택된 컨스트레인트를 삭제합니다.
PhAT_PlaySpecial.jpg 시뮬레이션 미리보기가 켜졌을 때, 스켈레탈 메시에다 미리보기 애님셋의 애니메이션을 선택하고 재생해 볼 수 있습니다.
PhAT_ShowAnimSkel.jpg 시뮬레이션 미리보기가 켜졌을 때, 미리보기 애니메이션으로 구동되는 스켈레탈 메시의 스켈레톤 표시를 토글합니다.

미리보기 패널

previewpane.jpg

미리보기 패널에는 피직스 애셋에 결합된 기본 스켈레탈 메시의 렌더링된 모습이 표시됩니다. 또한 기본 메시의 스켈레톤에 있는 피지컬 바디에 결합된 피지컬 바디, 그 바디 사이의 컨스트레인트, 그 바디와 컨스트레인트를 조작하기 위한 비주얼 툴, 그 바디와 컨스트레인트에 관한 정보 등등도 표시됩니다. 메시, 바디, 컨스트레인트에 대한 렌더링 모드는 필요한 작업에 딱 맞춰 미리볼 수 있도록 각각 개별적으로 조절할 수 있습니다. 아마도 가장 중요한 점은, 바디와 컨스트레인트의 피직스 시뮬레이션을 뷰포트에서 바로 미리볼 수 있고, 메시를 (슬쩍 찌르고 잡아다가 움직여서) 조작해 보면서 그 반응을 확인할 수도 있다는 점일 것입니다.

프로퍼티 패널

propertiespane.jpg

프로퍼티 패널은 표준 언리얼 프로퍼티창과 마찬가지로 아무것도 선택되지 않은 상태에서는 기본 에디터 프로퍼티가, 또는 트리 패널에 현재 선택된 바디 또는 컨스트레인트의 프로퍼티가 에디터의 모드에 따라 표시됩니다. 컨스트레인트 편집 모드일 때는 프로퍼티 패널의 컨스트레인트 / 인스턴스 프로퍼티 표시 토글이 가능합니다.

에디터 프로퍼티

Anim (애님)

  • Preview Anim Set (애님셋 미리보기) - 시뮬레이션 미리보기동안 미리보기 패널의 애니메이션 미리보기에 사용할 애님셋을 설정합니다.
  • Physics Blend (피직스 혼합) - 스켈레톤을 구동하는 피직스와 스켈레톤을 구동하는 미리보기 애니메이션간의 혼합을 설정합니다.
  • Blend On Poke (찌를기시 블렌딩) - 참이면 미리보기 패널에서 메시를 찌를(Ctrl+왼클릭) 때까지 미리보기 애니메이션에 의해 미리보기 메시가 구동됩니다. 그리고서 피직스 시뮬레이션으로 스냅되며, Poke Pause Time (찌르기 일시정지 기간)만큼 일시정지한 다음 Poke Blend Time (찌르기 블렌딩 기간)에 걸쳐 애니메이션으로 블렌딩됩니다.
  • Poke Pause Time (찌르기 일시정지 기간) - Blend On Poke 가 참일 때 피직스 시뮬레이션을 표시할 기간을 정합니다.
  • Poke Blend Time (찌르기 블렌딩 기간) - Blend On Poke 가 참일 때 애니메이션으로 다시 블렌딩되는 기간을 정합니다.
  • Angular Spring Scale (각 스프링 스케일) - 모든 모터에 적용되는 전체적인 스프링 스케일 곱수를 설정합니다.
  • Angular Damping Scale (각 감쇠 스케일) - 모든 모터에 적용되는 전체적인 감쇠 스케일 곱수를 설정합니다.

Simulation (시뮬레이션)

  • Draw Contacts (접점 그리기) -
  • Sim Speed (속도 시뮬) - (피직스 시뮬레이션이나 미리보기 애니메이션의) 미리보기 재생 속도를 설정합니다.
  • Floor Gap (바닥 갭) - 스켈레탈 메시가 안착될 때 바닥에서부터의 거리를 설정합니다.
  • Grav Scale (중력 스케일) - 시뮬레이션 미리보기의 중력에 대한 곱수를 설정합니다.

Advanced (고급)

  • Prompt On Bone Delete (본 삭제시 묻기) -
  • Show Constraints As Points (컨스트레인트를 점으로 표시) - 참이면 컨스트레인트는 미리보기 패널에서 점으로 표시됩니다. 아니면 십자가로 표시됩니다.
  • Show Names In Hierarchy (계층구조에 이름 표시) - 참이면 스켈레탈 메시의 스켈레톤이 표시중일 때 본의 이름이 표시됩니다.

Mouse Spring (마우스 스프링)

  • Handle Linear Damping (선형 감쇠 처리) - 시뮬레이션 미리보기 도중 피직스 애셋을 잡았을 때(Ctrl + 우클릭 + 끌기) 사용할 스프링의 선형 감쇠를 설정합니다.
  • Handle Linear Stiffness (선형 강성 처리) - 시뮬레이션 미리보기 도중 피직스 애셋을 잡았을 때(Ctrl + 우클릭 + 끌기) 사용할 스프링의 선형 강성을 설정합니다.
  • Handle Angular Damping (각형 감쇠 처리) - 시뮬레이션 미리보기 도중 피직스 애셋을 잡았을 때(Ctrl + 우클릭 + 끌기) 사용할 스프링의 각형 감쇠를 설정합니다.
  • Handle Angular Stiffness (각형 강성 처리) - 시뮬레이션 미리보기 도중 피직스 애셋을 잡았을 때(Ctrl + 우클릭 + 끌기) 사용할 스프링의 각형 강성을 설정합니다.

Poking (찌르기)

  • Poke Strength (찌르기 강도) - 시뮬레이션 미리보기 도중 피직스 애셋을 찌를 때(Ctrl + 왼클릭) 적용할 충격의 세기를 설정합니다.

Lighting (라이팅)

  • Sky Brightness (하늘 밝기) - 미리보기 패널의 앰비언트 라이트(배경광) 밝기를 설정합니다.
  • Brightness (밝기) - 미리보기 패널의 디렉셔널 라이트(직사광) 밝기를 설정합니다.

Snap (스냅)

  • Angular Snap (각형 스냅) - 스내핑을 켰을 때 미리보기 패널의 로테이션에 대한 스내핑 양을 정합니다.
  • Linear Snap (선형 스냅) - 스내핑을 켰을 때 미리보기 패널의 트랜슬레이션에 대한 스내핑 양을 정합니다.

Drawing (그리기)

  • Constraint Draw Size (컨스트레인트 그리기 크기) - 미리보기 패널에 그릴 컨스트레인트의 크기를 정합니다.

트리 패널

treepane.jpg

트리 패널에는 피직스 애셋의 바디나 컨스트레인트의 계층 구조가, 에디터의 현재 모드에 따라 다르게 표시됩니다. 트리 뷰는 본이나 그 자식 중 바디 또는 컨스트레인트에 결합된 본을 전부 표시합니다. 본에 직접 결합된 바디나 컨스트레인트는 구분을 위해 두껍게 표시됩니다. 트리 패널에서 바디나 컨스트레인트를 선택하면 미리보기 패널에 표시되어 변형 위젯을 통해 변형할 수 있음은 물론, 프로퍼티 패널에도 프로퍼티가 표시되어 편집할 수도 있습니다.

콘트롤

마우스 콘트롤

좌클릭 림/조인드 또는 위젯 축을 선택합니다.
SHIFT + 좌클릭 가능하면 비균등(한 축으로만) 변형합니다.
CTRL + 좌클릭 피직스 애셋을 (라이브 시뮬레이션에서만) 찌릅니다.
CTRL + 우클릭 + 끌기 피직스 애셋을 (라이브 시뮬레이션에서만) 집습니다.
L + 드래그 디렉셔널 라이트를 선회시킵니다.

키보드 콘트롤

W 트랜슬레이션 모드
E 로테이션 모드
R 스케일 모드
X 선택 고정
스페이스 위젯 모드 순환
B 바디 / 컨스트레인트 모드간 전환
A 스냅 켜기
C 프로퍼티를 첫째에서/둘째로 복사
S 시뮬레이션 시작/중지
H 애셋용 렌더링 모드 순환
J 바디용 렌더링 모드 순환
K 컨스트레인트용 렌더링 모드 순환
D (부모-자식간) 바디를 합침
Q 컨스트레인트를 X -> Y -> Z 순환
DEL 컨스트레인트/바디 삭제
HOME 선택된 바디 또는 컨스트레인트를 가운데로
[ 선택된 바디와 다른 것들간의 콜리전 켜기
] 선택된 바디와 다른 것들간의 콜리전 끄기

피직스 애셋 만들기


피직스 애셋을 만들려면 먼저, 콘텐츠 브라우저 로 가서 피지컬 셋업하고 싶은 스켈레탈 메시 애셋을 찾습니다. 그 위에다 우클릭하여 뜨는 맥락 메뉴에서 피직스 애셋 생성 을 선택합니다. 해당 메시에 대한 스켈레탈 구조와 버텍스 웨이팅을 기반으로 한 피직스 애셋 생성용 옵션이 있는 대화창이 뜨게 됩니다. 이 대화창은 PhAT 내의 도구 메뉴에서 전체 애셋 리셋 옵션을 사용하여 다시 열어볼 수 있습니다.

피직스 애셋 변경하기


PhAT이 열리면 애셋이 기본 바닥 위의 공간에 떠 있는 것을 볼 수 있습니다. 오브젝트는 피직스 애셋 생성 대화창의 콜리전 프리미티브 부분에서 선택한 옵션에 따라 여러 개의 박스나 구체/스필(캡슐)로 둘러싸여 있을 수도 있습니다. 대부분 이런 콜리전 프리미티브의 배치는 최적화되어있지 않기에, 서로 관통된 모습이 탐탁치 않을 것입니다. 이런 경우를 대비해 PhAT에는 프리미티브 조작용 툴이 준비되어 있습니다. 예제로써 Packages 폴더에 있을 PhysicsObjects.upk 내 Phys_Capsule3_Physics를 사용해 보겠습니다.

콜리전 프리미티브 / 바디


PhAT 내에서 만들고 변경할 수 있는 콜리전 프리미티브의 종류는 셋입니다. 그 삼총사는 박스(는 균등/비균등 스케일 가능), 캡슐(은 균등/길이나 폭 스케일 가능), 구체(균등 스케일만 가능) 입니다. 피지컬 애셋용 콜리전 프리미티브의 변경은 PhAT를 사용하면 뚝딱입니다. PhAT에서 Phys_Capsule3_Physics를 열어보면 오브젝트를 둘러싸고 있는 구체와 캡슐 와이어프레임을 확인할 수 있습니다. 이 와이어프레임 오브젝트가 바로 이 오브젝트의 본에 대한 콜리전 프리미티브입니다. 어떤 식으로 사용되는지를 확인해 보려면, 시뮬레이션 토글 버튼을 눌러 오브젝트의 작동 방식을 볼 수 있습니다. 다 됐으면 시뮬레이션 토글 버튼을 다시 눌러 멈춥니다. 콜리전 프리미티브 중 하나를 좌클릭으로 선택하면 주황색으로 반전되며, 거기에 인접한 프리미티브는 하얗게 변합니다. 이는 이 콜리전 바지간의 콜리전이 꺼져있음을, 컨스트레인트가 그 사이의 반응을 처리하고 있음을 나타냅니다. X 키를 누르면 선택이 잠겨 실수로 선택이 해제되거나 다른 게 선택되지 않게 할 수 있습니다. LOCK 이란 단어가 창의 좌하단 구석에 표시됩니다.

Fig1_1.jpg

이 프리미티브의 중앙에는 축 기즈모가 있으며, 이를 통해 콜리전 바디의 트랜슬레이션/로테이션/스케일 조절이 가능합니다. W 키 또는 트랜슬레이션 모드 버튼을 눌러 트랜슬레이션 모드에 들어갑니다. 파랑 기즈모 선 (Z 축)을 왼버튼으로 잡아 끌면 바디가 해당 축을 따라 옮겨집니다. 바디의 로테이션과 스케일 조절도 같은 식으로 조절할 수 있습니다. 바디를 회전시키려면 먼저 E 키 또는 툴바의 로테이션 모드 버튼을 눌러 로테이션 모드에 들어갑니다. 변형 기즈모의 모양이 각각의 축이 3개의 링으로 표시되는 로테이션 기즈모로 바뀝니다. 기즈모 확인에 문제가 있는 경우, 메시 렌더링 모드 순환 버튼(이나 H 키)으로 와이어프레임 또는 숨김 모드로 전환하면 됩니다.

Fig1_2.jpg

각각의 링은 트랜슬레이션과 똑같은 식으로, 해당 축을 좌클릭으로 잡아 끌어서 로테이션 가능합니다.구체형 바디를 회전시킬 때는 그다지 차이를 느끼기가 힘들지만, 박스나 캡슐 바디의 경우에는 차이가 확실히 느껴질 것입니다.

스케일도 이동과 마찬가집니다만, 비균등 스케일도 지원합니다. 스케일 모드 버튼이나 R 키를 눌러 스케일 모드로 전환합니다. 트랜슬레이션 모드와 똑같은 기즈모가 나타나며, 좌클릭으로 잡아끄는 방향에 따라 전체 바디의 스케일이 조절됩니다. 반면 Shift-좌클릭은 클릭한 축의 스케일만 조절합니다. 구체 바디는 비균등 스케일 조절하려 해도 균등하게 스케일된다는 점 알아두시고요.

바디의 추가와 제거 또한 쉽습니다. 바디를 선택하고서 아무 프리미티브 추가 버튼을 누르면 본의 원점에 해당 모양의 프리미티브를 떨굽니다. 그 후 바디를 옮기고 회전시켜 스케일 조절하여 원하는 위치에 놓을 수 있습니다. 본마다 콜리전 바디의 수에는 제한이 없습니다만, 하나의 피지컬 애셋에 본이나 바디의 수가 너무 많으면 성능 문제가 생길 수 있겠죠?

Body 프로퍼티

RB_BodySetup (강체 바디 셋업)

  • Sleep Family (슬립 패밀리) - 바디를 언제 재울지를 결정하는 방법을 정합니다.
  • Bone Name (본 이름) - 바디와 연결된 본의 이름을 표시합니다.
  • Fixed (고정) - 참이면 피직스가 적용되지 않습니다. 월드에 상대적으로 고정되게 됩니다.
  • No Collision (콜리전 없음) - 참이면 아무것과도 충돌하지 않게 됩니다.
  • Block Zero Extent (0규모 막기) - 참이면 무기 적중 추적과 같은 0규모 검사를 막게 됩니다.
  • Block Non Zero Extent (비-0규모 막기) - 참이면 플레이어 콜리전과 같은 비-0규모 검사를 막게 됩니다.
  • Enable Continuous Collision Detection (연속 콜리전 검출 켜기) - 참이면 연속 콜리전 검출 시스템이 사용됩니다. 고속으로 움직이는 바디가 지오메트리를 통과해 버리는 현상을 막을 수 있으나, 추가 계산이 필요합니다.
  • Always Full Anim Weight (항상 풀 애님 웨이트) - 참이면 Physics Weight 값에 관계없이 항상 피직스가 적용됩니다. 천이나 꽁지머리처럼 항상 피직스를 적용해도 괜찮을 바디에 좋습니다.
  • Consider For Bounds (경계 고려) - 참이면 이 바디는 경계 결정시 사용됩니다. 경계 결정에 사용되는 바디가 적을 수록, 각 프레임 계산 속도도 빨라집니다.
  • Phys Material (피직스 머티리얼) - 이 바디가 사용하는 피지컬 머티리얼을 정합니다. 자세한 것은 피지컬 머티리얼 페이지 참고.
  • Mass Scale (질량 스케일) - 바디의 질량에 대한 곱수를 정합니다. 바디의 볼륨을 기반으로 한 기본 질량에다 이 값을 곱하게 됩니다.
  • Pre Cached Phys Scale (선캐시 피직스 스케일) - 이 바디용 피직스를 미리 캐시할 스케일 목록을 정합니다.

KMeshProps (K메시 프로퍼티)

  • COMNudge (질량중심 슬쩍 찌르기)- 바디의 PhysX-계산된 질량중심(Center Of Mass) 위에 적용된 오프셋입니다.
  • Agg Geom (지오메트리)
    • No RBCollision (강체충돌 없음) - 참이면 이 모양에는 피직스가 완전 무시됩니다. 콜리전은 물론 바디의 질량/관성 텐서에도 관여하지 않습니다. 바디의 모든 모양에 이 옵션을 켤 수는 없습니다.
    • Per Poly Shape (폴리 모양별) - 참이면 PerPolyCollisionBones (폴리별 콜리전 본) 옵션을 통해 폴리별 콜리전을 사용하도록 정의된 본일지라도, 이 모양은 언리얼 선 추적에 걸리게 됩니다.

Body Instance 프로퍼티

Bone Spring (본 스프링)

  • Enable Bone Spring Linear (본 스프링 선형 켜기) - 참이면 이 본의 피직스 바디와 애니메이션 본의 월드-공간 위치간에 선형 '스프링'이 켜집니다.
  • Enable Bone Spring Angular (본 스프링 각형 켜기) - 참이면 이 본의 피직스 바디와 애니메이션 본의 월드-공간 위치간에 각형 '스프링'이 켜집니다.
  • Disable On Overextension (과대확장시 끄기) - 참이면 본 스프링이 Overextension Threshold 값보다 커질 경우 자동으로 끕니다.
  • Notify Owner On Overextension (과대확장시 오너에 통지) - 참이면 Actor::OnRigidBody 호출로 과대확장이 전송됐을 때 오너 액터에 통지됩니다.
  • Teleport On Overextension (과대확장시 텔레포트) - 참이면 이 스프링이 너무 길어질 때 오차를 0으로 줄이기 위해 전체 피직스 애셋 인스턴스를 텔레포트시킵니다. 주: 하나의 피직스 애셋 내 바디 중 둘 이상에 이 옵션을 켜면 결과를 예상할 수 없게 됩니다.
  • Use Kin Actor For Bone Spring (본 스프링에 킨 액터 사용) - 참이면 본 스프링 사용시 키네마틱 바디에 연결하여 애니메이트시키며, '월드'상의 부착 위치를 애니메이트시키지는 않습니다. 이 방법은 부하가 조금 더 걸립니다만, 빠르게 움직이는 타겟을 더 잘 추적해 냅니다.
  • Make Spring To Base Collision Component (베이스 콜리전 컴포넌트에다 스프링 만들기) - 참이면 본 스프링 사용시 베이스 내 콜리전 컴포넌트의 비직스 바디에 연결합니다. 이 옵션을 사용할 때는 SetBoneSpringTarget (본 스프링 타겟 설정)에다 이 본에 대한 행렬값을 줘야 하는데, 월드가 아닌 다른 본에 상대적으로 지정해 줘야 합니다.
  • Bone Linear Spring (본 선형 스프링) - Sets the strength of the linear spring to the animated bone.
  • Bone Linear Damping (본 선형 감쇠) - Sets the damping of the linear spring to the animated bone.
  • Bone Angular Spring (본 각형 스프링) - Sets the strength of the angular spring to the animated bone.
  • Bone Angular Damping (본 각형 감쇠) - Sets the damping of the linear spring to the animated bone.
  • Overextension Threshold (과대확장 한계점) - Disable On Overextension 값이 참일 때, 이 값보다 쎄게 확장되면 본 스프링이 꺼지게 됩니다.

Physics (피직스)

  • Only Collide With Pawns (폰하고만 충돌) - 참이면 컴포넌트에 bConsiderPawnForRBCollision (강체충돌에 폰 고려여부) 옵션이 설정된 바디하고만 충돌하게 됩니다. 뭔가 펄럭이는 것들이 월드와는 충돌하지 말았으면 싶을 때 좋은 옵션입니다.
  • Enable Collision Response (콜리전 반응 켜기) - 참이면 이 바디에 대한 피직스 반응을 켭니다. 거짓이면 접촉이 계속 발생하여 보고됩니다. 센서 바디에 좋은 옵션입니다.
  • Push Body (푸시 바디) - 참이면 이 바디를 "푸시" 바디로 정하며, 콜리전 반응 또한 끕니다.
  • Phys Material Override (피직스 머티리얼 덮어쓰기) - 이 바디에 사용할 피지컬 머티리얼을 정하여, 할당된 머티리얼이나 피직스 애셋을 사용하는 액터의 피지컬 머티리얼을 덮어쓰게 됩니다.
  • Contact Report Force Threshold (접촉 보고할 힘 한계점) - 힘-기반 콜리전 보고 시스템이 사용할 한계점을 정합니다. 값이 음수이면 이 바디에 대해서는 시스템이 꺼집니다.
  • Instance Mass Scale (인스턴스 질량 스케일) - 질량 스케일 조절을 위한 인스턴스별 곱수입니다.
  • Instance Damping Scale (인스턴스 감쇠 스케일) - 이 바디의 선형/각형 감쇠의 인스턴스별 스케일입니다.

RB_BodyInsatnce (리짓 바디 인스턴스)

  • Custom Gravity Factor (커스텀 중력 인수) - 바디에 적용할 커스텀 중력에 대한 곱수로, 바디에 미치는 커스텀 중력 세팅의 영향력을 개별적으로 조절할 수 있습니다.

컨스트레인트


바디 모드 버튼을 토글하여 컨스트레인트 모드로 바꾸면 피직스 애셋의 본이 보라색 와이어프레임 십자 모양으로 렌더링되게 됩니다. 컨스트레인트는 시뮬레이션이 돌아가는 동안 본들이 어떻게 붙어있는지에 대한 표현입니다.

Constr_1.jpg

바디 선택시와 마찬가지로 컨스트레인트를 선택하면 컨스트레인트의 제한(limit)을 볼 수 있습니다. 기본적으로 컨스트레인트는 제한되어 있지 않아 일반 기즈모와 똑같이 표현되나, 일단 제한이 설정되면 입력받은 값을 반영하게 됩니다. 비틀기(twist) 제한은, 제한 값이 설정되지 않은 경우 비틀기 축을 따라 끝에 X마크가 있는 선이 그려지게 되나, 제한이 설정된 경우 녹색 원호와 그 원호를 가르는 노란 선으로 표현됩니다. 이 노란 선은 비틀기 제한 내에서 본의 현재 위치를 나타냅니다. 흔들기(swing) 제한은, Swing1LimitAngle 또는 Swing2LimitAngle 와 같이 값이 설정되지 않은 것은 컨스트레인트의 축을 따라 양쪽 방향으로 똑같이 뻗은 녹색 선으로 표현됩니다. 컨스트레인트를 선택한 상태에서 Q 키를 누르면 다음 축(이 변경될 필요가 있는 경우, 그 축)으로 순환됩니다. 값이 SwingLimit 중 하나에 입력되면, 녹색 선은 녹색 원뿔로 바뀌게 되며, 그 안의 노란 섡은 그대로 본의 현재 위치를 표시하게 됩니다. 흔들기와 뒤틀기 제한이 둘 다 입력되면, 녹색 원뿔 안의 노란 선 끝에 비틀기 제한이 나타나게 됩니다.

컨스트레인트를 선택한 상태에서 값을 바꾸면 제한이 바뀌는 것을 확인할 수 있습니다. 다 됐으면 조정 결과 확인을 위해 애셋 시뮬을 돌립니다. 컨스트레인트 렌더링 모드 순환 버튼이나 K 키를 눌러 (선택한 것 하나 또는 전체) 컨스트레인트의 렌더링을 켤 수 있습니다. 켜 보면 노란 선이 컨스트레인트 안에서 움직이다가 제한에 이르면 멈추는 것을 볼 수 있습니다.

컨스트레인트는 바디와 같은 식으로 옮기거나 회전시킬 수 있는데, 차이점은 shift를 누르고서 컨스트레인트를 옮기는 경우 컨스트레인트의 위치에서 시작 위치가 분리되(서 시뮬레이션이 시작될 때 컨스트레인트가 원위치로 빨려 돌아가)는 점, 그리고 로테이션의 경우 조인트의 현재 각도가 아닌 제한을 회전시켜서 팔꿈치와 같은 비대칭 조인트 설정에 좋다는 점입니다. 또하나 알아둘 점은 제한을 조인트의 현위치를 넘어가도록 컨스트레인트를 회전시키면, 애셋이 시뮬레이팅될 때 모든 조인트가 첫 프레임에 제한 범위 내로 이동하게 되므로, 애셋 시뮬레이팅 시작과 동시에 동작을 줄 수 있습니다.

RotatedConstraint.jpg

Constraint 프로퍼티

RB_ConstraintSetup (강체 컨스트레인트 셋업)

  • Joine Name (조인트 이름) - 조인트의 이름입니다. 피직스 애셋의 Constraint Bone 1 과 같습니다.
  • Constraint Bone 1 (컨스트레인트 본 1) - 조인트가 연결할 첫째 본 이름입니다.
  • Constraint Bone 2 (컨스트레인트 본 2) - 조인트가 연결할 둘째 본 이름입니다.
  • Enable Projection (돌출 켜기) - 참이면 바디간의 거리 오차가 0.1 유닛 또는 각도 오차가 10 도를 초과할 때, 오차 수정을 위해 바디가 돌출됩니다.

Linear (선형)

  • Linear Limit Soft (선형 제한 소프트) - 선형 제한의 기본값은 '하드' 입니다. 이 값을 참으로 설정하면 밀리기보단 스프링처럼 작동하게 됩니다.
  • Linear Breakable (선형 파괴가능) - 참이면 이 조인트에 선형 힘을 가해서 부술(, 즉 조인트를 잡아당겨서 분리할) 수 있습니다.
  • Linear X/Y/ZSetup (선형 X/Y/Z 셋업)
    • b Limited (제한되었는지) - 참이면 이 각도 내에서 자유로이 움직일 수 있습니다. 거짓이면 선형 이동은 전혀 제한받지 않습니다.
    • Limit Size (제한 크기) - b Limited 값이 참이면 한 방향으로의 이동이 이만큼 허용됩니다. 이 값을 0으로 설정하면 이 자유도를 완전 '잠급니다'.
  • Linear Limit Stiffness (선형 제한 강성) - Linear Limit Soft 값이 참이면 이 값으로 제한 스프링의 강성을 조절합니다.
  • Linear Limit Damping (선형 제한 감쇠) - Linear Limit Soft 값이 참이면 이 값으로 제한 스프링의 감쇠를 조절합니다.
  • Linear Break Threshold (선형 파괴 한계점) - Linear Breakable 값이 참이면 이 값 이상의 힘이 가해질 때 조인트가 파괴됩니다.

Angular (각형)

  • Swing Limited (흔들기 제한됨) - 참이면 두 바디 사이의 흔들기 각이 원뿔로 제한됩니다.
  • Twist Limited (뒤틀기 제한됨) - 참이면 두 바디 사이의 뒤틀기 각이 제한됩니다.
  • Swing Limit Soft (흔들기 제한 소프트) - 흔들기 원뿔 제한의 기본값은 '하드'입니다. 이 값을 참으로 설정하면 밀리기보단 스프링처럼 반응합니다.
  • Twist Limit Soft (뒤틀기 제한 소프트) - 뒤틀기 제한의 기본값은 '하드'입니다. 이 값을 참으로 설정하면 밀리기보단 스프링처럼 반응합니다.
  • Angular Breakable (각형 파괴가능) - 참이면 이 조인트에 회전력을 가해서 부술(, 즉 조인트를 꺾어서 분리할) 수 있습니다.
  • Swing 1Limit Angle (흔들기 1제한 각) - 흔들기 제한 원뿔의 한쪽을 각으로 정의합니다.
  • Swing 2Limit Angle (흔들기 2제한 각) - 흔들기 제한 원뿔의 다른쪽을 각으로 정의합니다.
  • Twist Limit Angle (뒤틀기 제한 각) - 두 제약된 바디간의 뒤틀기 허용치를 정의합니다.
  • Swing Limit Stiffness (흔들기 제한 강성) - Swing Limit Soft 값이 참이면 이 값으로 원뿔의 강성을 조절합니다.
  • Swing Limit Damping (흔들기 제한 감쇠) - Swing Limit Soft 값이 참이면 이 값으로 원뿔의 감쇠를 조절합니다.
  • Twist Limit Stiffness (뒤틀기 제한 강성) - Twist Limit Soft 값이 참이면 이 값으로 뒤틀기 제한의 강성을 조절합니다.
  • Twist Limit Damping (뒤틀기 제한 감쇠) - Twist Limit Soft 값이 참이면 이 값으로 뒤틀기 제한의 감쇠를 조절합니다.
  • Angular Break Threshold (각형 파괴 한계점) - Angular Breakable 값이 참이면 이 값 이상의 회전력이 가해질 때 조인트가 파괴됩니다.

Pulley (도르래)

  • Is Pulley (도르래인지) - 참이면 이 조인트는 도르래 종류로 간주됩니다.
  • Maintain Min Distance (최소 거리 유지) - 참이면 '밧줄'에 '느슨함'(slack)이 허용되지 않아 약간 막대같아지게 되므로, 한 오브젝트를 밀어올리면 다른 오브젝트를 밀어내릴 수 있게 됩니다.
  • Pulley Ratio (도르래 비율) - 도르래의 기어비입니다. 1.0이 아닌 경우, 한 쪽을 당기면 다른 쪽은 조금 덜 움직이는 대신 힘은 더 쎕니다.

Constraint Instance 프로퍼티

Linear (선형)

  • Linear XPosition Drive (선형 X위치 드라이브) - 선형 X축상의 위치 드라이브를 켭니다.
  • Linear XVelocity Drive (선형 X속도 드라이브) - 선형 X축상의 속도 드라이브를 켭니다.
  • Linear YPosition Drive (선형 Y위치 드라이브) - 선형 Y축상의 위치 드라이브를 켭니다.
  • Linear YVelocity Drive (선형 Y속도 드라이브) - 선형 Y축상의 속도 드라이브를 켭니다.
  • Linear ZPosition Drive (선형 Z위치 드라이브) - 선형 Z축상의 위치 드라이브를 켭니다.
  • Linear ZVelocity Drive (선형 Z속도 드라이브) - 선형 Z축상의 속도 드라이브를 켭니다.
  • Linear Position Target (선형 위치 타겟) - 선형 위치 드라이브를 켰을 때, 조인트가 도달하려는 상대적 선형 위치입니다.
  • Linear Velocity Target (선형 속도 타겟) - 선형 속도 드라이브를 켰을 때, 조인트가 도달하려는 상대적 선형 속도입니다.
  • Linear Drive Spring (선형 드라이브 스프링) - 선형 위치 드라이브를 켰을 때, 드라이브 스프링의 강성입니다.
  • Linear Drive Damping (선형 드라이브 감쇠) - 선형 위치 드라이브를 켰을 때, 드라이브 스프링의 감쇠입니다.
  • Linear Drive Force Limit (선형 드라이브 힘 제한) - 선형 속도 드라이브를 켰을 때, LinearVelocityTarget 값 도달을 위해 적용할 최대 힘입니다.

Angular (각형)

  • Swing Position Drive (흔들기 위치 드라이브) - 흔들기 축의 위치 드라이브를 켭니다.
  • Swing Velocity Drive (흔들기 속도 드라이브) - 흔들기 축의 속도 드라이브를 켭니다.
  • Twist Position Drive (뒤틀기 위치 드라이브) - 뒤틀기 축의 위치 드라이브를 켭니다.
  • Twist Velocity Drive (뒤틀기 속도 드라이브) - 뒤틀기 축의 속도 드라이브를 켭니다.
  • Angular Slerp Drive (각형 구면보간 드라이브) - 고급 옵션. 조인트에 드라이브를 적용할 때 사용되는 방법을 지정합니다.
  • Angular Position Target (각형 위치 타겟) - 각형 위치 드라이브를 켰을 때, 조인트가 도달하려는 상대적 쿼터니언입니다.
  • Angular Velocity Target (각형 속도 타겟) - 각형 속도 드라이브를 켰을 때, 조인트가 도달하려는 상대적 각형 속도입니다.
  • Angular Drive Spring (각형 드라이브 스프링) - 각형 위치 드라이브를 켰을 때, 드라이브 스프링의 강성입니다.
  • Angular Drive Damping (각형 드라이브 감쇠) - 각형 위치 드라이브를 켰을 때, 드라이브 스프링의 감쇠입니다.
  • Angular Drive Force Limit (각형 드라이브 힘 제한) - 각형 속도 드라이브를 켰을 때, AngularVelocityTarget 값 도달을 위해 적용할 최대 회전력입니다.

다양한 컨스트레인트 세팅 관련 상세 정보는 피직스 컨스트레인트 참고서 확인을 바랍니다.

기타


인접 프리미티브간의 콜리전은 피직스 애셋이 생성될 때 자동으로 꺼집니다. 서로 분리시키는 데 콜리전을 사용하기 보다는 컨스트레인트에 의존하는 편이 훨씬 빠르기 때문입니다.

본의 콜리전 바디를 모두 지우면 애셋에서 본과 컨스트레인트가 제거되게 됩니다. 결합 버튼(이나 D 키)으로 바디를 결합시키면 이 작업을 더욱 편하게 할 수 있습니다.

애니메이션 미리보기


스켈레탈 애니메이션은 물론 애니메이션간의 혼합이나 피직스 애셋 내 바디의 피직스 시뮬레이션을 기본 스켈레탈 메시 상에다 미리볼 수 있습니다. 그 방법은 먼저, 미리보려는 애니메이션이 포함된 애님셋을 에디터(아무것도 선택하지 않았을 때 표시되는) 프로퍼티 중 Anim 아래 Preview Anim Set 에다 할당해 줘야 합니다. 이 작업은 콘텐츠 브라우저에서 애님셋을 선택한 다음 Preview Anim Set 프로퍼티 옆에 있는 useselected.jpg 버튼을 누르면 간단합니다. 할당하고나면 비어있던 툴바의 목록박스가 -None- 으로 바뀌게 됩니다.

아직은 목록상자 불이 꺼져있어 애니메이션을 선택할 수 없습니다. 재생할 애니메이션을 선택하려면 툴바의 simstart.jpg 버튼을 눌러 피직스 시뮬레이션 미리보기를 시작하면 됩니다. 이제 목록상자에 불이 들어와 Preview Anim Set 내에 포함된 애니메이션을 전부 볼 수 있을 것입니다.

animlist.jpg

이제 목록에서 애니메이션을 선택한 다음 animplay.jpg 버튼을 누르면 스켈레탈 메시에다 애니메이션을 재생해 볼 수 있습니다. 물론 피직스 시뮬레이션이 우선이기에 미리보기 패널에서 엄청난 효과를 볼 수는 없을 것입니다. 애니메이션을 재생해 보려면 에디터 프로퍼티 중 Physics Blend 프로퍼티를 조절하면 됩니다.

physweight.jpg

다른 방법은 Blend On Poke 옵션입니다. 이 옵션을 켜면 미리보기 패널에서 피직스 애셋을 '찌를' 때까지 완전 웨이팅된 애니메이션이 나오게 됩니다.

blendpoke.jpg