카오스 피직스 개요

카오스 피직스의 개요 및 카오스 피직스 솔버를 처음 사용하시는 분들을 위한 몇 가지 문제 해결 팁입니다.

Windows
MacOS
Linux

베타 기능으로 제공되는 카오스 피직스 는 포트나이트에서 사용되는 경량 피직스 시뮬레이션 솔루션입니다. 주요 기능은 다음과 같습니다.

  • RBAN (리지드 보디 애니메이션 노드)

  • 파괴

  • 클로스

  • 래그돌

  • 비히클

카오스 피직스 사용 시, 언리얼 엔진에서 기본 피직스 시뮬레이션을 수행할 때의 PhysX와 큰 차이가 없을 것입니다. 다음 개요에서는 주요 기능 설명, PhysX에서 카오스 피직스로 프로젝트를 전환할 때의 문제 해결 팁을 포함한 카오스 피직스 활성화 방법을 설명합니다.

카오스 피직스 활성화

UE_4.26Chaos 빌드를 사용하시는 경우 카오스가 기본으로 활성화되니 이 항목은 건너뛰셔도 됩니다.

프로젝트에서 카오스 피직스를 활성화하려면 다음 단계를 따르세요.

  1. GitHub 에서 최신 언리얼 엔진 소스 코드를 다운로드합니다.

  2. .ZIP 파일의 압축을 풉니다.

  3. Engine/Source 폴더에서 텍스트 에디터로 `UE4Editor.Target.cs`를 엽니다.

  4. 아래 코드를 `UE4Editor.Target.cs`에 추가한 후 저장합니다.

    BuildEnvironment = TargetBuildEnvironment.Unique; bCompileChaos = true; bUseChaos = true;

  5. `UE4Editor.Target.cs`가 아래 코드 블록과 동일한지 확인합니다.

    public UE4EditorTarget( TargetInfo  Target) : base(Target) 
    { 
        Type = TargetType.Editor; 
        BuildEnvironment = TargetBuildEnvironment.Unique; 
        bBuildAllModules = true; 
        ExtraModuleNames.Add(�UE4Game�);  
    
        bCompileChaos = true; 
        //참고: 4.23 이전 버전에서는 아래 코드가 필요하지 않습니다. 
        bUseChaos = true; 
    } 
  6. 엔진 루트 폴더에서 `Setup.bat`을 실행합니다.

  7. Setup.bat 실행에 성공한 경우, `GenerateProjectFiles.bat`을 실행합니다.

  8. Visual Studio로 `UE4.sln`을 열고 소스 코드로 엔진을 빌드 합니다.

  9. 새 프로젝트 생성 후 해당 프로젝트를 엽니다.

  10. 편집 > 플러그인 > 피직스 메뉴에서 카오스 솔버 , 카오스 클로스 , 카오스 클로스 에디터 가 활성화되었는지 확인합니다.

  11. 카오스 플러그인(ChaosVehiclesPlugin 또는 ChaosCaching 등)을 활성화한 경우, 언리얼 엔진을 재시작합니다.

주요 기능

카오스 RBAN

개발 시 카오스 피직스를 활성화하면, PhAT 에디터로 카오스 RBAN 을 사용하는 한 유저 인터페이스 및 기존 파라미터는 동일하게 유지됩니다. 테크니컬 애니메이터, 캐릭터 아티스트, 시각화 전문가가 기존과 동일한 개발 워크플로를 사용할 수 있습니다.

카오스 RBAN에는 다음이 포함됩니다.

  • 컨스트레인트 위치(숫자와 핸들 모두)를 명시적으로 설정 가능

  • PhysX 대비 적은 반복작업 횟수로 안정성 증가

  • 시뮬레이트 에디터에서 동일한 솔버 사용

  • 조인트 안정성 증가로 체인 길이 증가

  • 디버그 드로 개선

스타 워커

디버그 드로의 Starwalker

카오스 피직스는 속도 드라이브, 파괴 가능한 조인트, 콜리전 복원력, 콜리전을 활성화 설정, 적합한 타원 원뿔 컨스트레인트, 중력 활성화 설정, 조인트 선형 및 각형 복원력, 각형 투영 등을 지원합니다. 또한, 카오스 RBAN은 RBAN 월드 오브젝트 지원RBAN 시뮬레이션 스페이스 를 지원합니다.

RBAN 월드 오브젝트 지원

RBAN 월드-스페이스 오브젝트 시스템은 메인 월드 시뮬레이션에서 RBAN 시뮬레이션으로 오브젝트를 복사하는 기능을 지원합니다. 이 기능은 UE+PhysX에서도 지원했었지만, 불완전했고 특정 시나리오에서만 사용하여 실제 게임에서는 실용적이지 않았습니다. RBAN 월드 오브젝트 지원의 카오스 버전은 제품 발매의 완성도를 높였습니다.

RBAN 월드 오브젝트 지원에는 다음과 같은 기능이 있습니다.

  • 주변 월드 오브젝트를 스태틱 오브젝트로 RBAN 시뮬레이션에 추가

  • 월드-스페이스 RBAN 시뮬레이션에 월드 오브젝트 시스템 지원

  • 카오스 피직스의 신규 및 전용 기능:

    • 주변 월드 오브젝트를 키네마틱 오브젝트로 RBAN 시뮬레이션에 추가

    • 근처에 있지 않은 경우 RBAN 시뮬레이션에서 월드 오브젝트 제거

    • 컴포넌트 및 본-스페이스 RBAN 시뮬레이션에 대한 월드 오브젝트 시스템 지원

RBAN 시뮬레이션 스페이스

컴포넌트 및 본 스페이스 시뮬레이션은 RBAN에서 사용되어 비현실적인 액터 무브먼트가 시뮬레이션의 보디에 영향을 미치거나 원하지 않는 행동을 하지 않도록 방지할 수 있습니다. 하지만 이로 인해 RBAN 시뮬레이션이 액터 무브먼트에 응답할 수 없게 되므로 종종 원하지 않는 결과를 가져오기도 합니다.

RBAN 시뮬레이션 스페이스 기능을 사용하여 캐릭터의 월드 스페이스 무브먼트(이동 및 회전)의 제어 가능한 양을 RBAN 시뮬레이션에 전달할 수 있습니다. 따라서 개발 시 로컬-스페이스 RBAN 시뮬레이션이 액터 움직임에 반응하도록 하면서도 이펙트를 제한하도록 하여, 빠른 회전과 급가속 등 아티팩트의 비현실적인 모션을 방지할 수 있습니다.

유사한 기능이 UE+PhysX의 ComponentLinearAccScale 및 관련 설정에 존재했지만, 선형 모션 전환만 지원하여 유용성이 떨어졌습니다. 예를 들어 제자리에서 액터를 회전시키면, 컴포넌트-스페이스 RBAN 시뮬레이션은 전혀 반응하지 않았습니다.

새로운 시스템은 코리올리 힘, 원심력, 오일러 힘 등 전체 선형 및 각형 모션 전환을 지원합니다. 슬라이더가 제공되어 월드-스페이스 시뮬레이션으로부터 로컬-스페이스 시뮬레이션으로 효과적으로 이동할 수 있습니다. (아래 시뮬레이션 스페이스 설정**의 MasterAlpha** 참조)

RBAN_Sim_Space.png

RBAN 시뮬레이션 스페이스 설정

카오스 클로스

카오스 클로스 는 게임 개발자, 아티스트, 실시간 렌더링 사용자가 모바일 디바이스부터 고사향 시네마틱 머신까지 다양한 시스템에서 클로스 시뮬레이션을 수행할 수 있는 피직스 솔루션입니다. RBAN을 활용하면 향후 릴리즈에서 PhysX가 지원 중단되더라도 카오스 클로스 솔버로 현재 워크플로를 계속 이용할 수 있습니다.

카오스 클로스

카오스 클로스 디버깅

카오스 클로스에는 다음 기능이 포함됩니다.

  • 추가적인 HUD 클로스 피드백

  • 추가적인 디버그 드로 CVar

  • 클로스용으로 다시 작성한 파라미터

  • 늘어난 클로스당 콜리전 지원(기존 32개 구체 제한보다 늘어남)

  • 추가적인 랩 디포머, 향상된 인플루언스 퀄리티

  • 화면 상에 표시되는 캐릭터 및 클로스 메뉴 뷰포트를 통해 플랫 셰이드 양면, 장거리 어태치먼트 테더, 파티클 인덱스 등의 클로스 제작 가능

클로스 LOD 지원

완전한 클로스 LOD 지원이 개발자에게 제공됩니다.

카오스 클로스 LOD

카오스 클로스 LOD 업데이트

카오스는 APEX 클로스 생성을 지원하지 않습니다.

카오스 래그돌

캐릭터 아티스트, 애니메이터, 엔지니어라면 카오스 래그돌을 이용한 다이내믹 피지컬 모션과 애니메이션을 블렌딩해 게임플레이를 향상하고 캐릭터의 고유 모션을 추가할 수 있습니다.

캐릭터 아티스트, 애니메이터, 엔지니어라면 카오스 래그돌 을 이용한 다이내믹 피지컬 모션과 애니메이션을 블렌드해 게임플레이를 향상하고 캐릭터의 고유 모션을 추가할 수 있습니다.

카오스 래그돌

에디터 내에서 카오스 래그돌 시뮬레이션하기

카오스 래그돌에는 조인트 콜리전 및 콜리전 매니저용 PhysX와의 조인트 컨스트레인트 패리티, 루트 애니메이션용 스켈레탈 메시 지원 패리티, 시퀀서 PIE 지원, 키네마틱 캐릭터 인터랙션이 포함됩니다.

카오스 비히클 (실험단계)

향후 버전에서는 자동차용 PhysX 기반 비히클 시스템이 카오스 비히클 로 대체될 예정이며, 이후에는 개발자 여러분께서 익숙한 수준의 기능을 이용할 수 있을 것입니다.

프로젝트의 ChaosVehiclesPlugin 설정이 활성화되었는지 확인해보세요. 해당 플러그인은 편집 > 플러그인 > 피직스 에 있으며, 프로젝트에서 활성화된 카오스 피직스를 기반으로 합니다. PhysX 활성화 시에는 작동하지 않습니다.

ChaosVehiclesPlugin.png

카오스 비히클을 구성하는 개별 에셋이 PhysX 비히클 플러그인 에셋과 유사합니다.

  • 스켈레탈 메시

  • 피직스 에셋

  • 애니메이션 블루프린트

  • 비히클 블루프린트

  • 한 개 이상의 휠 블루프린트

PhysX 비히클에 익숙하시다면, 그에 대응하는 카오스의 클래스 이름으로 이해하시면 됩니다. 유사한 방식으로 환경설정합니다.

PhysX 컴포넌트

카오스 컴포넌트

VehicleWheel

ChaosVehicleWheel

VehicleMovement

ChaosWheeledVehicleComponent

VehicleAnimInstance

VehicleAnimationInstance

WheelHandler

WheelController

WheeledVehicle

WheeledVehiclePawn

비히클 휠 4개 제한은 이제 없습니다. 비히클에 휠 블루프린트를 원하는 만큼 추가할 수 있습니다. ChaosVehicleWheel 블루프린트는 하나의 휠을 나타내지만, 일반적으로는 차축 하나의 휠 그룹 정의로 사용합니다.

VehicleAnimationInstance 블루프린트에 WheelController 노드를 추가하면, 해당 휠의 스티어링 및 회전 애니메이션이 자동으로 제어된다는 의미입니다.

wheelcontrollerBP.png

기존과 동일한 방식으로 피직스 에디터를 사용하여 스켈레탈 메시의 본에 콜리전 지오메트리를 생성할 수 있습니다. 이를 통해 비히클의 피직스 에셋이 생성됩니다.

physicseditor_vehicle.png

비히클 피직스 에디터

고급 비히클 블루프린트의 다양한 세그먼트로 이루어진 항공기와 같은 더 복잡한 부속물을 세팅하는 경우, 비히클의 애니메이션 블루프린트에서 안테나를 별도 피직스 에셋으로 생성한 후 해당 비히클에 RBAN 노드로 추가해야 합니다. RBAN 시뮬레이션은 어태치먼트마다 개별적으로 조절할 수 있으며, 어태치된 오브젝트는 비히클의 움직임에 영향을 미치지 않으니 이러한 방식이 더 효율적입니다.

비히클 블루프린트, 즉 WheeledVehiclePawn 에는 모든 비히클 세팅을 조절할 수 있는 비히클 이동 컴포넌트 가 있습니다. 비히클 이동 컴포넌트는 블루프린트를 통해 액세스하여 스테이트를 설정하거나 얻을 수 있습니다(예: 비히클 컨트롤).

vehicleBP.png

카오스 비히클 플러그인을 시험적으로 사용해보고 싶으시면, 아래 가이드로 시작해보세요.

  • [](InteractiveExperiences/Physics/ChaosPhysics/Vehicles/HowToSetupChaosVehicles)

  • [](InteractiveExperiences/Physics/ChaosPhysics/Vehicles/HowToConvertPhysXVehiclesToChaos)

카오스 파괴

APEX 는 카오스 파괴와 호환되지 않습니다. 카오스 파괴 세팅 관련 자세한 정보는 이 문서 에서 확인해주세요.

문제 해결 팁

카오스 비히클 (실험단계)

시뮬레이션에서 무슨 일이 일어나는지 시각화하기 위해 디버그 렌더링을 활성화하거나, 시뮬레이션 내에서 특정 기능 또는 힘을 비활성화하는 등의 작업을 수행하는 다양한 콘솔 커맨드가 있습니다. 모든 콘솔 커맨드는 `p.vehicle`로 시작합니다.

커맨드 목록은

[](InteractiveExperiences/Physics/ChaosPhysics/Vehicles/ChaosVehicleDebugCommandReference)
에서 확인할 수 있습니다.

PhysX 에셋의 기존 비히클 셋업을 카오스로 전환하려는 경우, 엔진의 유용한 기능을 활용해 블루프린트에서 사용하는 기본 클래스를 변경해도 됩니다. 되살리지 않는 게 좋은 복잡한 서스펜션 셋업이 존재한다면, 이 방법을 통해 효과적으로 애니메이션 블루프린트 클래스를 변경할 수 있습니다. 기존 비히클 애니메이션 블루프린트에서 파일 을 선택한 후 블루프린트 부모 재설정 , VehicleAnimationInstance 를 선택합니다. 이후에는 기존 PhysX WheelHandler 노드에서 오류가 발생하는데, 이를 삭제하고 새로운 WheelController 로 대체하면 동일한 연결이 재생됩니다.

카오스 파괴

리지드 바디에 대한 클러스터 정보, 계층구조 등을 표시하면 개발 과정에서 카오스 파괴 관련 문제를 디버그하는데 도움이 됩니다. 자세한 정보는 지오메트리 컬렉션 디버그 드로 에서 확인해주세요.

태그
Select Skin
Light
Dark
언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기

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

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

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

네이버 카페
공식 포럼