언리얼 엔진의 피직스
카오스 피직스는 언리얼 엔진에서 사용 가능한 가벼운 피직스 시뮬레이션 솔루션으로, 차세대 게임의 요구 조건에 맞도록 처음부터 새로 빌드되었습니다. 이 시스템의 주요 기능은 다음과 같습니다.
디스트럭션
네트워크 피직스
카오스 비주얼 디버거
리지드 바디 다이내믹
리지드 바디 애니메이션 노드 및 피지컬 애니메이션
클로스 피직스와 머신 러닝 클로스 시뮬레이션
래그돌 피직스
비히클
피직스 필드
플루이드 시뮬레이션
헤어 피직스
플레시 시뮬레이션
아래에서 각 기능의 개요를 살펴볼 수 있습니다.
디스트럭션
카오스 디스트럭션(Chaos Destruction) 시스템은 시네마틱 퀄리티 레벨의 디스트럭션을 실시간으로 구현하기 위해 사용되는 언리얼 엔진 내 툴 컬렉션입니다. 이 시스템은 훌륭한 비주얼을 제공할 뿐 아니라 높은 퍼포먼스를 내도록 최적화되어 있으며, 아티스트와 디자이너가 콘텐츠 제작을 더 세밀하게 제어할 수 있게 해줍니다.
카오스 디스트럭션 시스템은 블루프린트에 중첩된 메시를 포함하여 하나 이상의 스태틱 메시로 빌드된 에셋 타입인 지오메트리 컬렉션(Geometry Collections)을 활용합니다. 이러한 지오메트리 컬렉션을 프랙처링하여 실시간으로 파괴할 수 있습니다.
이 시스템은 직관적인 비선형적 워크플로를 사용하여 프랙처링 프로세스를 전례 없이 세밀하게 제어할 수 있습니다. 사용자는 지오메트리 컬렉션의 일부에 선택적 프랙처링뿐만 아니라 여러 레벨의 프랙처링을 생성하여 예술적인 부분을 훨씬 세밀하게 제어할 수 있습니다. 또한, 사용자가 프랙처를 트리거할 대미지 한계치(Damage Thresholds)를 클러스터별로 정의할 수도 있습니다.
연결 그래프(Connection Graph)를 사용하면 실제 구조물을 완전하게 시뮬레이션하기 위해 구조물이 대미지를 받으면 붕괴되는 방식을 추가로 조작할 수 있습니다. 카오스 디스트럭션은 월드 지원이 포함되어 있으며, 이를 통해 지오메트리 컬렉션(Geometry Collection)의 특정 부분을 키네마틱(Kinematic)으로 설정할 수 있어 앵커 필드(Anchor Field)를 사용할 필요가 줄어듭니다.
카오스 디스트럭션에는 이벤트와 트랜스폼을 트래킹할 수 있는 캐시 시스템(Cache System)도 포함되어 있습니다. 이 시스템은 프레임 단위의 트랜스폼과 이벤트를 캡처하고, 파괴 데이터를 줄여 효율적인 스토리지 및 리플레이 기능을 제공합니다. 이 시스템을 사용하면 런타임 때 복잡한 파괴를 원활하게 리플레이하면서 퍼포먼스에 미치는 영향을 최소화할 수 있습니다. 캐시된 시뮬레이션은 인터랙션 시 시뮬레이션의 특정 부분이 '실시간'이 될 수 있으므로 여전히 인터랙티브할 수 있다는 점에 유의해야 합니다.
카오스 디스트럭션은 언리얼 엔진의 나이아가라 파티클 시스템과 긴밀하게 연동됩니다. 나이아가라는 카오스 디스트럭션의 브레이크 이벤트(Break Event) 및 콜리전 이벤트(Collision Event)를 읽어서 런타임 때 파티클을 스폰하거나 기존 파티클 시스템을 수정할 수 있습니다.
또한 카오스 디스트럭션은 피직스 필드(Physics Field)와 통합됩니다. 사용자는 이 시스템을 사용하여 런타임 때 특정 공간 영역에서 카오스 피직스 시뮬레이션에 영향을 줄 수 있습니다. 피직스 필드는 리지드 바디에 힘을 가하거나, 지오메트리 컬렉션 클러스터를 깨뜨리거나, 프랙처 리지드 바디를 앵커링 또는 비활성화하는 등 다양한 방식으로 피직스 시뮬레이션에 영향을 줄 수 있습니다.
다음 문서에서 카오스 디스트럭션에 대해 자세히 알아볼 수 있습니다.
카오스 디스트럭션
언리얼 엔진의 디스트럭션 시스템에 대한 학습 리소스를 찾을 수 있는 위치를 개괄적으로 안내합니다.
네트워크 피직스
네트워킹, 즉 게임 내 리플리케이션은 인터넷 연결을 통해 다수의 머신 사이에서 게임플레이 정보를 커뮤니케이션하는 기능을 말합니다. 언리얼 엔진에는 개발자가 간편하게 멀티플레이어 게임을 제작할 수 있도록 도와주는 견고한 네트워킹 프레임워크가 탑재되어 있습니다.
네트워크 피직스(Networked physics)는 네트워킹 프레임워크의 일부로, 멀티플레이어 환경에서 피직스 기반 시뮬레이션을 작동할 수 있게 합니다. 언리얼 엔진에서 피직스 리플리케이션은 리플리케이트된 이동으로 피직스를 시뮬레이션하는 액터를 말합니다. 이러한 시뮬레이션은 게임플레이 중에 로컬 클라이언트(플레이어의 머신)에서 실행됩니다.
언리얼 엔진에는 세 가지 리플리케이션 모드가 있습니다.
디폴트 리플리케이션 모드는 언리얼 엔진의 레거시 피직스 리플리케이션 모드입니다. 이 모드는 이동을 리플리케이트하는 액터에서 활성화되며, 해당 루트 컴포넌트는 피직스를 시뮬레이션하도록 설정됩니다.
예측 보간(Predictive Interpolation) 리플리케이션 모드는 서버 권한 액터용으로 설계된 모드입니다. 이 모드는 기본 모드와 유사하게, 해당하는 시점에 클라이언트의 각 오브젝트 속도를 서버의 오브젝트 속도에 맞추도록 변경하는 방식으로 작동합니다. 하지만 이 모드는 클라이언트에서 인터랙션과 로컬 피직스 변경 값을 더 잘 처리하도록 설계되었습니다. 예측 방식으로 수행되어 서버와 클라이언트에서 동일하게 적용되기만 하면 됩니다.
재시뮬레이션(Resimulation) 리플리케이션 모드는 서버 권한 폰 및 액터를 위해 설계된 모드입니다. 이 모드는 클라이언트의 피직스 예측을 통해 멀티플레이어에서 피직스 폰을 가능하게 하고 더 정확하게 인터랙션을 처리하도록 설계되었습니다. 클라이언트가 서버에서 스테이트 정보를 수신하면, 해당하는 피직스 프레임에서 수신한 정보를 히스토리의 캐시된 피직스 스테이트와 비교합니다. 스테이트 정보가 충분히 다른 경우 피직스 재시뮬레이션을 트리거합니다.
다음 문서에서 네트워크 피직스에 대해 자세히 알아볼 수 있습니다.
네트워크 피직스
언리얼 엔진의 네트워크 피직스 문서입니다.
카오스 비주얼 디버거
카오스 비주얼 디버거(Chaos Visual Debugger, CVD)는 카오스 피직스 시뮬레이션용 비주얼 디버깅 툴입니다. 카오스 비주얼 디버거는 카오스 피직스 씬의 그래픽 뷰를 제공하며, 데이터를 시각화하고 시뮬레이션 결과를 분석할 수 있는 다양한 툴을 갖추고 있습니다.
CVD는 언리얼 엔진에 포함된 에디터 툴이자 런타임 시스템으로, 게임플레이 동안 피직스 시뮬레이션의 상태를 녹화합니다. 그런 다음 툴 내에서 해당 시뮬레이션을 재생하여 시뮬레이션의 특정 프레임 또는 서브 스텝 데이터를 검사할 수 있습니다.
다음 문서에서 카오스 비주얼 디버거에 대해 자세히 알아볼 수 있습니다.
카오스 비주얼 디버거
언리얼 엔진의 카오스 비주얼 디버거 관련 문서입니다.
리지드 바디 다이내믹
카오스 피직스는 리지드 바디 다이내믹을 위한 다양한 기능을 제공합니다. 여기에는 콜리전 반응, 피직스 컨스트레인트, 댐핑 및 프릭션이 포함됩니다. 또한 비동기 피직스 시뮬레이션과 네트워크 피직스도 제공합니다.
다음 문서에서 리지드 바디 다이내믹에 대해 자세히 알아볼 수 있습니다.
콜리전
언리얼 엔진의 콜리전, 콜리전 반응, 콜리전 프리셋에 대한 모든 것입니다.
레이캐스트와 트레이스
피직스 트레이스의 시작 페이지입니다.
피직스 컨스트레인트
피직스 오브젝트를 서로, 그리고 월드에 맞춰 제한합니다.
피직스 컴포넌트
Destructible, Thruster, Force 컴포넌트 등 피직스에서 사용되는 컴포넌트에 대한 설명입니다.
리지드 바디 애니메이션 노드 및 피지컬 애니메이션
카오스 피직스는 런타임 때 캐릭터용 리지드 바디 시뮬레이션과 피지컬 애니메이션을 제공합니다. 이 시스템은 피지컬 에셋 에디터(Physical Asset Editor)를 사용하여 캐릭터의 애니메이션을 따라 시뮬레이팅될 수 있는, 캐릭터의 스켈레탈 메시에 어태치된 리지드 바디를 설정합니다. 이렇게 하면 스태틱 애니메이션에 비해 시뮬레이션된 바디가 더욱 사실적으로 움직입니다.
다음 문서에서 리지드 바디 애니메이션 노드(Rigid Body Animation Node)와 피지컬 애니메이션에 대해 자세히 알아볼 수 있습니다.
피직스 에셋 에디터
스켈레탈 메시용 콜리전과 피직컬 시뮬레이션에 사용되는 피직스 바디와 컨스트레인트 구성을 위한 에디터입니다.
클로스 피직스와 머신 러닝 클로스 시뮬레이션
카오스 클로스(Chaos Cloth)는 게임과 실시간 경험을 위한, 정확하고 성능이 우수한 클로스 시뮬레이션을 제공합니다. 이 시스템에는 바람과 같은 피지컬 반응과 더불어 광범위한 사용자 컨트롤이 포함되어 있어 구체적인 예술적 비전을 달성할 수 있습니다. 또한, 카오스 클로스에는 부모 스켈레탈 메시의 애니메이션에 맞춰 클로스 메시를 변형하는 강력한 애니메이션 드라이브(Animation Drive) 시스템도 포함되어 있습니다.
카오스 클로스 파라미터는 블루프린트에 노출되어 런타임에서 클로스 시뮬레이션에 전례 없는 수준의 제어 기능을 제공합니다. 사용자는 특정 활용 사례에 대한 게임플레이 조건을 바탕으로 시뮬레이션 파라미터를 수정할 수 있습니다. 예를 들어 캐릭터의 클로딩은 물속에 있을 때 다르게 반응할 수 있습니다.
카오스 클로스에는 시각화 툴 및 디버그 콘솔 명령과 같은 강력한 디버깅 툴세트가 포함되어 있어 디버깅이 더 용이하며 반복작업 속도를 향상할 수 있습니다. 사용자는 액티브 클로스 시뮬레이션, 키네마틱 및 다이내믹 파티클, 심지어는 시뮬레이션 시간까지 시각화할 수 있습니다.
카오스 클로스는 머신 러닝 클로스 시뮬레이션도 제공합니다. 이 시스템은 학습된 데이터 세트를 사용함으로써 과거에는 오프라인 시뮬레이션으로만 달성할 수 있었던 결과를 실시간으로 생성하여, 기존의 피직스 기반 모델보다 더 높은 퀄리티의 시뮬레이션 결과를 제공합니다.
카오스 클로스 패널(Chaos Cloth Panel) 노드 에디터는 언리얼 엔진 5.3에 새로 도입된 워크플로입니다. 이 워크플로는 반복작업 속도를 향상하고, 엔진 내에서 카오스 클로스를 제작할 때 더욱 유연하고도 변경사항을 유지할 수 있는 방법을 제공하는 데 초점을 맞춥니다. 이 시스템은 런타임 때 에셋을 생성하고 시뮬레이션하는 데 필요한 모든 정보가 포함된 클로스 에셋을 사용합니다. 클로딩 에셋을 빌드할 때는 외부 패널 기반의 디지털 콘텐츠 제작(Digital Content Creation, DCC) 패키지에서 스태틱 메시(Static Mesh)를 임포트하고 스킨 웨이트와 마스크를 전송할 수 있습니다. 에셋을 생성한 후에는 카오스 클로스 컴포넌트를 통해 스켈레탈 또는 스태틱 메시에 사용할 수 있습니다.
다음 문서에서 클로스 피직스에 대해 자세히 알아볼 수 있습니다.
클로스 시뮬레이션
언리얼 엔진의 클로스 시뮬레이션을 학습하기 위한 시작점입니다.
래그돌 피직스
카오스 피직스에는 래그돌 피직스가 포함되어 있으며, 이는 스켈레탈 메시와 연결된 리지드 바디가 실시간으로 애니메이팅(시뮬레이팅)되는 시스템을 말합니다. 이러한 유형의 시스템은 일반적으로 휴머노이드 캐릭터가 넘어지는 애니메이션에 사용됩니다. 아래 예시에서 플레이어 캐릭터의 래그돌 피직스 설정이 포함된 메타휴먼 샘플 프로젝트를 볼 수 있습니다.
자세한 내용은 메타휴먼 샘플 문서를 읽고 메타휴먼 샘플을 다운로드하여 구체적으로 설명된 래그돌 설정을 참조하세요.
ChaosVehicles
카오스 비히클(Chaos Vehicles)은 비히클 피직스 시뮬레이션에 사용되는 언리얼 엔진의 경량 시스템입니다.
이 시스템은 비히클당 원하는 수의 휠을 시뮬레이션하여 사용자에게 더 많은 유연성을 제공합니다. 또한, 전진 및 후진 기어를 원하는 수만큼 환경설정하여 추가로 커스터마이징할 수도 있습니다.
카오스 비히클은 복잡한 비히클 시뮬레이션에 맞춰 환경설정할 수 있습니다. 차대의 특정 위치에 다운포스나 업리프트를 제공하는 에어로포일 표면을 몇 개든 추가할 수도 있습니다. 여기에 비히클 스포일러, 심지어 항공기 날개나 방향타까지 시뮬레이션할 수 있습니다. 이러한 각 컨트롤 표면은 롤, 피치, 요를 통해 조작할 수 있습니다.
시뮬레이션이 실행되는 동안 휠 마찰 및 엔진 시뮬레이션을 아예 끌 수도 있습니다. 또한 사용자는 특정 위치에 추력을 원하는 만큼 환경설정하여 비히클을 밀고 스티어링할 수 있습니다.
이 시스템은 언리얼 엔진 5의 비동기 피직스(Asynchronous Physics) 모드를 지원하여 시뮬레이션의 결정성을 개선하고, 시뮬레이션을 실행할 때마다 예측 가능한 결과를 얻을 수 있습니다.
스켈레탈 메시 하나와 하나 이상의 휠 블루프린트를 사용하여 엔진 내의 비히클을 표현합니다. 피직스 에셋(Physics Asset)은 피직스 에디터 내에서 적절한 콜리전 지오메트리를 생성하는 데 사용되며, 애니메이션 블루프린트는 휠의 스티어링 및 회전 애니메이션을 자동으로 생성하는 데 사용됩니다.
마지막으로 스켈레탈 메시, 애니메이션 블루프린트, 비히클 컨트롤이 포함된 휠 비히클 폰(Wheeled Vehicle Pawn) 블루프린트를 생성합니다.
다음 문서에서 카오스 비히클에 대해 자세히 알아볼 수 있습니다.
비히클
언리얼 엔진의 비히클 설명서입니다.
피직스 필드
피직스 필드 시스템(Physics Field System)에서는 런타임에서 특정 공간 영역의 카오스 피직스(Chaos Physics) 시뮬레이션에 직접 영향을 줄 수 있는 툴을 제공합니다. 이 필드는 리지드 바디에 힘을 가하거나, 지오메트리 컬렉션 클러스터를 깨뜨리거나, 프랙처 리지드 바디를 앵커링 또는 비활성화하는 등 다양한 방식으로 피직스 시뮬레이션에 영향을 미치도록 구성할 수 있습니다.
그리고 피직스 필드 시스템은 나이아가라, 머티리얼 등 다른 엔진 시스템과도 통신할 수 있습니다. 이 시스템은 특정 위치의 필드를 평가할 수 있는 내장된 함수로 피직스 필드를 샘플링할 수 있습니다.
필드는 필드 시스템 컴포넌트(Field System Component) 블루프린트를 만들고 필드에 쿼리를 할 수 있는 시스템을 지정하여 구성할 수 있습니다. 필드를 월드 필드(World Field)로 환경설정하면 머티리얼 및 나이아가라 시스템으로 필드를 샘플링할 수 있습니다. 필드를 카오스 필드(Chaos Field)로 환경설정하면 지오메트리 컬렉션 및 기타 피직스 오브젝트가 필드와 인터랙션할 수 있습니다.
다음 문서에서 피직스 필드에 대해 자세히 알아볼 수 있습니다.
피직스 필드
피직스 필드를 통해 런타임에서 특정 공간 영역의 카오스 피직스 시뮬레이션을 직접 제어할 수 있습니다.
플루이드 시뮬레이션
언리얼 엔진 5에는 실시간으로 2D 및 3D 플루이드 이펙트를 시뮬레이션하는 툴세트가 포함되어 있습니다. 이러한 시스템은 물리 기반 시뮬레이션 방법을 사용하여 불, 연기, 구름, 강, 잔물결, 해변에 들이치는 파도 등에 대한 사실적인 이펙트를 만듭니다.
툴세트는 아티스트 친화적으로 디자인되었으며, 시뮬레이션 스테이지, 재사용 가능한 모듈 및 강력한 데이터 인터페이스를 활용하는 실험용 오픈 플랫폼입니다.
아티스트는 몇 개의 파라미터만 수정해 실시간으로 원하는 결과를 얻을 수 있고, 고급 사용자와 R&D 엔지니어는 시뮬레이터를 활용해 새 알고리즘을 시험할 수 있습니다.
다음 문서에서 플루이드 시뮬레이션에 대해 자세히 알아볼 수 있습니다.
플루이드 시뮬레이션
언리얼 엔진 5에는 실시간으로 플루이드 이펙트를 시뮬레이션하는 툴세트가 포함되어 있습니다.
헤어 피직스
언리얼 엔진의 헤어 렌더링 및 시뮬레이션 시스템은 스트랜드 기반 워크플로를 사용하여 각 헤어 스트랜드를 물리적으로 정확한 모션으로 렌더링합니다. 덕분에 아티스트가 DCC 패키지로 생성한 그룸으로 수십만 개 이상의 사실적인 헤어를 시뮬레이션 및 렌더링할 수 있습니다.
다음 문서에서 헤어 피직스에 대해 자세히 알아볼 수 있습니다.
헤어 피직스
언리얼 엔진의 헤어 피직스 시뮬레이션에 대해 알아봅니다.
카오스 플레시
카오스 플레시(Chaos Flesh) 시스템은 언리얼 엔진에서 디포메이션 가능한 소프트 바디의 고퀄리티 리얼타임 시뮬레이션을 제공합니다. 리지드 바디 시뮬레이션과 달리 소프트 바디의 셰이프는 시뮬레이션 동안 프로퍼티를 기반으로 변경할 수 있습니다.
카오스 플레시 시스템은 다양한 파라미터를 사용한 스태틱 및 스켈레탈 메시 시뮬레이션을 지원하므로 아티스트가 지금까지와는 전혀 다른 수준으로 최종 결과를 제어할 수 있게 해 줍니다. 이 시스템의 주요 초점은 스켈레탈 애니메이션 동안 캐릭터의 근육 디포메이션을 시뮬레이션하는 것입니다.
카오스 플레시 시스템은 런타임에서 저해상도 지오메트리를 시뮬레이션하고 고해상도 시네마틱 퀄리티 지오메트리의 오프라인 시뮬레이션에서 캐싱된 결과를 활용하여 높은 퍼포먼스를 구현합니다.
다음 문서에서 카오스 플레시에 대해 자세히 알아볼 수 있습니다.
카오스 플레시
언리얼 엔진의 카오스 플레시 시스템에 대해 알아봅니다.
데이터플로 그래프 시스템
데이터플로 그래프(Dataflow Graph) 시스템은 언리얼 엔진 에디터 내의 노드 기반 프로시저럴 에셋 생성 환경입니다.
데이터플로는 엔진에서 특정 에셋 타입을 생성할 때 반복작업 속도를 향상하도록 제작되었습니다. 동일한 데이터플로 그래프를 다수의 에셋에서 사용할 수 있으며 그래프 자체는 소스 에셋에서 제공된 입력에 따라 다양한 결과를 생성할 수 있습니다.
데이터플로는 카오스 클로스(Chaos Cloth), 카오스 플레시(Chaos Flesh), 지오메트리 컬렉션 프랙처링(Geometry Collection fracturing) 등 다양한 피직스 에셋 타입에 맞게 조정 가능한 범용 시스템입니다. 이 시스템은 C++를 사용하는 개발자에 의해 확장 가능하도록 설계되었습니다. 개발자는 특정 요구 사항에 맞게 이 시스템을 추가로 조정할 수 있습니다.
다음 문서에서 데이터플로에 대해 자세히 알아볼 수 있습니다.
데이터플로 그래프
언리얼 엔진의 데이터플로 그래프 툴 개요입니다.
기타 문서:
피지컬 머티리얼
물리 시뮬레이션 프리미티브에 바로 또는 머티리얼을 통해 적용하여, 시뮬레이션에 쓰이는 피지컬 프로퍼티를 설정하고 제어하는 애셋입니다.
피직스 서브스테핑
피직스 서브스테핑이란 무엇이며 언제 사용하는지에 대한 설명입니다.
보행가능 경사
보행가능 경사 오버라이드에 대해 알아보고 어떤 상황에서 사용되는지 알아봅니다.