포트나이트 언리얼 에디터(Unreal Editor for Fortnite, UEFN)의 피직스(Physics)는 콜리전, 폭발 등에서 물리적 힘의 영향과 오브젝트의 모션을 시뮬레이션합니다. 시뮬레이션을 통해 낙하 시 얼마나 빨리 가속하는지 또는 한 오브젝트가 다른 오브젝트와 충돌할 때 어떻게 상호작용하는지를 계산합니다.
UEFN에서 피직스가 베타로 출시되었습니다. 이제 피직스가 적용된 프로젝트를 퍼블리싱할 수 있지만, 툴은 자주 업데이트되어 UEFN 섬에 영향을 줄 수 있다는 점을 참고해 주세요. 37.40 출시 노트에서 알려진 문제 목록을 확인하시기 바랍니다.
피직스로 할 수 있는 일
플레이어는 다음과 같이 피직스 오브젝트와 상호작용할 수 있습니다.
물리 기반 플레이어 캐릭터와 함께 이동합니다.
곡괭이로 공격하거나 무기로 쏩니다(수류탄 투척 포함).
사물 이동 장치를 사용하여 이동하거나 회전시킵니다.
장치를 사용합니다.
피직스가 활성화된 장치
다음 장치는 피직스 사물을 사용하여 테스트되었으며 안정적으로 작동합니다.
피직스 활성화
이 베타 기능을 켜려면 프로젝트 세팅에서 피직스를 활성화해야 합니다.
UEFN을 열고 새 프로젝트 또는 기존 프로젝트를 선택합니다.
프로젝트 > 프로젝트 세팅으로 이동합니다.
베타 액세스에서 피직스 옆의 체크 박스를 선택합니다.
브랜드 템플릿의 경우 현재 피직스가 지원되지 않습니다.
물리 모션
게임 환경에서 피직스 오브젝트는 뉴턴의 운동 제2법칙인 F=ma에서 기술된 자연력에 동일하게 구속을 받습니다. 여기서 힘(Force, F)은 질량(Mass, m) x 가속도(Acceleration, a)의 값과 같습니다.
힘
힘은 물체의 운동을 지속하거나, 변경하거나, 왜곡합니다. 비디오 게임에서 이 힘은 무기, 그 외 움직이는 오브젝트, 장치, 폭발 등에 의해 캐릭터와 오브젝트에 적용될 수 있습니다.
질량
질량은 모든 물질의 핵심 성질이며, 힘이 가해질 때 물체가 속력 또는 위치의 변화에 대해 얼마나 저항하는지를 나타냅니다. 질량이 클수록 힘이 가할 수 있는 변화가 작습니다. 게임에서 물리적 성질이 있는 오브젝트에는 질량이 설정되어 있습니다. 질량이 큰 오브젝트는 움직이기가 더 어렵고, 다른 오브젝트와 상호작용한 후 이동하는 거리가 더 짧습니다.
가속도
가속도는 물체 운동 시의 속도 변화율입니다. 이 값은 속력과 방향을 고려하여 계산됩니다. 게임에서 가속도는 핀볼 범퍼가 상호작용하는 오브젝트에게 가하는 속도 변화율이라고 할 수 있습니다.
사물에 피직스 추가
피직스가 활성화된 프로젝트의 모든 포트나이트 사물은 피직스를 시뮬레이션하도록 설정할 수 있습니다. 이를 위해서는 피직스 컴포넌트를 사물에 추가해야 합니다.
사물의 디테일 패널에서 + 추가(+ Add)를 클릭하고 Fort Physics를 선택합니다.
피직스 시뮬레이션(Simulate Physics)을 선택하고 기타 세팅을 적절하게 수정합니다.
축구 게임 만들기 튜토리얼에서 커스텀 사물을 임포트하고 콜리전을 추가하는 방법에 대해 자세히 알아보세요.
사용자 옵션
질량(Mass)을 통해서는 사물의 무게를 결정할 수 있습니다. 사물이 무거울수록 사물에 미치는 힘의 영향이 작습니다. 아래 예시에서는 질량이 왼쪽 상자는 100으로, 오른쪽 상자는 25로 설정되었습니다.
중력 활성화(Enable Gravity)는 오브젝트에 중력이 적용되는지 여부를 결정합니다.
깨우기 시작(Start Awake)을 통해서는 피직스 사물이 게임 시작 시 또는 오브젝트가 해당 사물과 접촉 시 시뮬레이션되는지 여부를 선택할 수 있습니다. 선택하지 않으면 피직스 오브젝트에 힘이 가해질 때까지 시뮬레이션되지 않습니다. 아래 예시에서 모든 상자의 깨우기 시작 옵션은 선택 해제되었으며 명중 후에만 낙하합니다.
선형 댐핑(Linear Damping)은 시간 경과에 따라 오브젝트의 속도를 늦춥니다. 아래 예시에서는 선형 댐핑의 값이 왼쪽 풍선은 0.5로, 오른쪽 풍선은 0.01로 설정되었습니다.
각도 댐핑(Angular Damping)은 시간 경과에 따라 오브젝트의 회전 속도를 늦춥니다. 이 주제에 대한 자세한 내용은 언리얼 엔진 문서의 피직스 댐핑을 확인하세요. 아래 예시에서는 각도 댐핑의 값이 왼쪽 삼각형은 0.6으로, 오른쪽 삼각형은 0.1로 설정되었습니다.
적중 시 충격량 배수(Impulse on Hit Multiplier)를 통해서는 적중 시 오브젝트에 적용되는 힘을 증대시킬 수 있습니다. 기본값은 1이지만, -5와 5 사이의 원하는 값으로 설정할 수 있습니다. 아래 예시에서는 배수가 왼쪽 축구공은 1.0으로, 오른쪽 축구공은 3.0으로 설정되었습니다.
스케치팹에 있는 tinmanjuggernaut의 Soccer Ball로, 스케치팹 스탠더드 라이선스에 따라 사용 허가되었습니다.
컨스트레인트
사물에 회전 및 이동 컨스트레인트를 추가하여 사물이 특정 축을 따라 이동하지 못하도록 할 수 있습니다. 컨스트레인트에 대한 자세한 내용은 언리얼 엔진 문서의 피직스 컨스트레인트 레퍼런스를 확인하세요.
자주 묻는 질문
다음은 이 신규 기능을 사용해 볼 때 생길 수 있는 궁금증에 대한 일부 답변 목록입니다. 궁금한 점에 대한 답변이 이 섹션에 없는 경우 최신 포트나이트 에코시스템 업데이트 및 출시 노트에서 업데이트 사항을 확인해 보세요.
기존 프로젝트에서 피직스를 활성화할 수 있나요?
네. 피직스는 기존 프로젝트에서 활성화할 수 있지만, 피직스를 켜기 전에 프로젝트의 사본을 만드는 것이 좋습니다. 실험단계 기능을 사용하는 프로젝트는 퍼블리싱할 수 없습니다. 언제든지 피직스 실험단계 기능을 비활성화하여 섬을 퍼블리싱할 수 있습니다.
시퀀서로 애니메이션이 적용된 오브젝트는 피직스 오브젝트와 상호작용할 수 있나요?
아니요. 시퀀스가 적용된 오브젝트는 서버의 게임 스레드에서 실행됩니다. 이 스레드에는 피직스 스레드와 다른 프로퍼티가 있으며 물리적 상호작용에 필요한 변경사항을 적용하지 않습니다. 기본적으로 시퀀서는 피직스와 함께 사용하는 용도가 아닙니다. 사물 이동 장치를 사용하는 것이 좋습니다. 사물 이동 장치를 사용하여 이동하는 사물은 피직스 오브젝트와 상호작용할 수 있습니다.
모든 플레이어 이동 모드에서 피직스를 사용할 수 있나요?
걷기, 달리기, 전력질주, 전력질주 점프, 점프, 낙하, 수영, 웅크리기, 웅크려 걷기, 웅크린 채 점프, 글라이딩, 스카이다이빙 등의 기본적인 플레이어 이동은 예상대로 작동합니다. 하지만 매달리기, 슬라이딩, 집라인 타기, 그라인드 레일, 빈사 상태는 현재 사용할 수 없습니다.
모든 무기가 지원되나요?
피직스 베타로 대부분 무기가 지원됩니다. 툴세트 성능이 더욱 향상되면 더 많은 무기에 피직스가 적용될 것입니다.
피직스가 활성화된 섬에서 탈것이 작동하나요?
탈것은 지원되지 않으며, 섬의 안정성을 떨어트립니다. 게임의 일부에 문제가 생길 수 있으므로 탈것은 사용하지 않는 것이 좋습니다.
프로젝트에서 피직스 오브젝트를 몇 개까지 사용할 수 있나요?
크리에이터는 프로젝트의 피직스 오브젝트 개수를 모니터링해야 합니다. 물리적으로 시뮬레이션된 단순 셰이프(박스 또는 스피어)가 50개를 초과하면 섬 퍼포먼스에 영향을 미칠 수 있습니다. 복잡한 피직스 셰이프는 단순 셰이프보다 퍼포먼스에 더 큰 영향을 미칩니다. 환경과 시뮬레이션하는 오브젝트의 복잡도에 따라 결과가 달라질 수 있습니다.
포크리에서 피직스가 작동하나요?
현재 피직스는 UEFN에서만 사용할 수 있습니다.
볼륨 장치 API
피직스 오브젝트의 존재를 탐지할 수 있도록, 두 가지 이벤트 OnPhysicsEnter와 OnPhysicsExit가 장치에 추가되었습니다.
이 이벤트의 페이로드는 Creative_Prop입니다.
Verse API
PropEntersEvent와 PropExitsEvent가 추가되었습니다. 아래 스니펫을 사용하여 에이전트가 볼륨에 들어가고 나가는 시점을 추적할 수 있습니다.
volume_device<public> := class<concrete><final>(creative_device_base):
PropEntersEvent<public>:listenable(creative_prop) = external {}
PropExitsEvent<public>:listenable(creative_prop) = external {}