PhysX 컨스트레인트 사용 안내서

피직스 컨스트레인트는, 리짓 바디 시뮬레이션이 적용되는 오브젝트끼리 연결시키는 데 사용되는 물리적 관절입니다.

Windows
MacOS
Linux

physics_banner.png

흔들거리는 샹들리에, 물레바퀴를 만들거나, 아니면 그냥 피직스 바디를 일반적인 영역에 묶어두려는 경우, Physics Constraint Actor (피직스 컨스트레인트 액터)가 답입니다. 이 문서에서는 피직스 컨스트레인트 액터의 사용법에 대해 다뤄보겠습니다.

컨스트레인트는 기본적으로 조인트의 한 유형입니다. 두 개의 (하나는 물리 시뮬레이션이 적용된다 가정) 액터를 연결시켜 주며, 일정한 제한이나 힘을 가할 수도 있습니다. 언리얼 엔진 4 에는 매우 유연한 데이터 주도형 컨스트레인트 시스템이 있어, 디자이너가 옵션을 조금 바꿔주는 것으로 다양한 유형의 조인트를 만들 수 있습니다. 엔진에 기본 조인트 유형이 몇 가지 준비되어 있으나 (볼 앤 소켓, 힌지, 프리즈매틱), 세팅만 조금씩 다를 뿐입니다. 어느 조인트 유형이든 실험해 보면서 자유롭게 자신만의 설정을 만들어 볼 수 있습니다.

피직스 컨스트레인트 액터

  1. 피직스 컨스트레인트 액터모드 패널의 배치 모드 중 모든 클래스 섹션에서 찾을 수 있습니다:

    PhysConMode.png

  2. 여기서 다른 액터와 마찬가지로 클릭하여 뷰포트에 끌어놓는 것으로 레벨에 배치할 수 있습니다.

    PhysCon_InToWorld.png

  3. 레벨에 배치된 상태에서는, 디테일 패널에서 Constraint 카테고리를 펼쳐 제약시킬 두 액터를 지정할 수 있습니다.

    PhysCon_ConsActorProp.png

  4. 풀다운 메뉴를 사용해서 선택하고자 하는 액터를 검색하든지, "점안기" eyedropper_button.png 아이콘을 사용하여 뷰포트에서 액터를 선택하든지 하면 됩니다.

  5. Constraint Actor 2 에 대해 4 단계를 반복합니다.

    PhysCon_Selected2.png

  6. 피직스 컨스트레인트 액터와 Constrained Actor (제약된 액터)를 원하는 위치로 이동시킵니다.

    PhysCon_RePosition.png

    _이 경우, 세 개의 액터 (두 개의 박스와 피직스 컨스트레인트) 모두 동시에 선택한 다음, 90 도 회전시켜 제약된 빨강 박스가 제약된 파랑 박스 위에 오도록 했습니다. 이렇게 하면 Angular Swing Motions (각 스윙 동작)이 올바른 축에 오도록 피직스 컨스트레인트를 회전시켜 주기도 합니다.

  7. 최소 하나의 제약된 액터에 피직스를 켭니다.

    PhysCon_FullEnablePhys.png

  8. 피직스 컨스트레인트 액터를 원하는 대로 설정합니다.

    이 문서에서 바꾼 프로퍼티는 다음과 같습니다:

    • Angular Swing 1MotionAngular Swing 2MotionACM_Limited 으로 설정.

    • Swing 1Limit AngleSwing 2Limit Angle 를 25 도로 설정.

    • Swing Limit Soft 는 껐습니다.

    AngularLimits1.png PhysCon_AngularCone_3.png

    피직스 컨스트레인트의 프로퍼티에 어떠한 효과가 있는지 확인하려면, 피직스 컨스트레인트 레퍼런스 문서를 참고하세요.

  9. 에디터에서 플레이 또는 에디터에서 시뮬레이트 로 피직스 컨스트레인트를 테스트합니다.

    제약된 액터를 어떻게 배치했는가에 따라 힘을 가할 수 있는 방법이 필요한데, 그러기 위한 방법이 모든 프로젝트 템플릿에 있지는 않습니다. RadialForceActor 를 사용하면 되는데, 피직스 컨스트레인트 액터와 마찬가지로 모든 클래스 섹션에서 찾아 배치하면 됩니다.

    Arrows.png

    이 문서에 사용된 박스의 경우, 50000 의 힘을 가하니 밀렸습니다. RadialForceActor 의 반경은 그림에 맞도록 줄였습니다.

스켈레탈 메시 고려사항

스켈레탈 메시를 제약하는 경우, 적합한 프로퍼티에 Constraint Bone 이름을 줘야 합니다. 이 경우 본은 사실상 스켈레탈 메시의 피직스 애셋에 있는 피직스 바디입니다. 이렇게 지정해 주는 이유는, 피직스 바디의 이름은 연관된 Skinned Bone 이름을 따는 반면, 피직스 애셋은 모든 Skinned Bone 에 대해 피직스 바디가 필요치 않기 때문입니다.

액터의 컴포넌트

액터의 특정 컴포넌트를 제약시키려는 경우, 적합한 프로퍼티에 Component Name 을 줘야 합니다. 액터의 루트가 제약이 가능한 유형인 경우, 제약되는 기본 컴포넌트가 됩니다. 그러나 Constrained Actor 1 또는 2 에 유효한 Component Name 을 주는 경우, 해당 컴포넌트가 피직스 컨스트레인트의 타깃이 됩니다. 그 컴포넌트가 스켈레탈 메시라면, 본 이름도 적합한 프로퍼티에 넣어줘야 합니다.

PhysCon_BPClassCon.png

_기능적으로 이 두 액터와 피직스 컨스트레인트는 같은 효과를 냅니다만, 오른편의 블루프린트는 포인트 라이트를 루트의 자손으로 만듦으로써 다른 효과를 낼 수 있습니다. 캐릭터가 피직스 캡슐을 루트로 갖지만, 스켈레탈 메시도 갖기에 둘 다 피직스 컨스트레인트의 타깃이 될 수 있습니다.

피직스 컨스트레인트를 붙일 수 있는 컴포넌트 이름을 준 경우, 해당 컴포넌트 주변에 바운딩 볼륨이 나타납니다. 바운딩 볼륨이 나타나지 않는 경우, 컴포넌트 이름이 맞는지, 피직스 컨스트레인트에 실제로 제약될 수 있는 것인지 확인해 보세요.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼