언리얼 엔진 4.6 이 나왔습니다! 이번에는 다수의 라이팅 및 머티리얼 개선, 네트워크 데모 캡처 및 재생 지원, 루트 모션 블렌딩과 멀티 몽타주 지원을 비롯한 애니메이션 작업방식이 대거 업데이트되었습니다. 새로운 모바일 프리뷰 렌더링 모드에서는 모바일 디바이스에서 나타나는 그대로 씬을 확인하며 편집할 수 있습니다. 언리얼 모션 그래픽을 통한 UI 제작도 크게 향상되어, 상호작용형 UI 위젯을 3D 씬에 바로 넣을 수 있게 되었습니다. 여러가지 기능 및 버그 픽스를 포함해서 모바일과 콘솔 플랫폼에 대해서도 개발을 계속 해 오고 있습니다.
이번 출시에는 언리얼 엔진의 우월한 개발자 커뮤니티에서 제출된 변경사항 88 개가 포함되어 있습니다. 기여해 주신 분들께 감사의 마음 전하고자 합니다:
Alex Silkin (alexSilkin), alwei, Allegorithmic, Artem V. Navrotskiy (bozaro), Cengiz Terzibas (yaakuro), Flenzine, Gigantoad, Rama (EverNewJoy), Joel Riendeau (joelriendeau), Jakub Stasiak (jstasiak), Joe Hegarty (JoeHegarty), Marat Radchenko (slonopotamus), Michael Kösel (TheCodez), Michelle12188, Marcin Polaczyk (mpolaczyk), MyDigitalLife, mordentral, KazumasaOhashi, leobenaducci, Lukasz (iniside), Nicholas Hughes (piinecone), Sebastian Köcke (byte3), Salamanderrake, Stephen Whittle (stephenwhittle), Tomas Jedlicka (jedlickat), Rick Yorgason (Skrapion), Kyle Rocha (kylawl)
주요 신기능
실험단계: 3D 언리얼 모션 그래픽 UI
이제 UI 위젯을 컴포넌트에 붙여 3D 씬에 표시되도록 할 수 있습니다!
- UI 는 화면 밖 타겟에 렌더링한 다음, 액터에 붙은 3D 쿼드에 매핑됩니다. 입력도 지원되므로, 마우스 커서가 표시되는 게임의 경우 사용자는 버튼 클릭과 같은 동작이 가능할 것입니다.
- 이 기능을 사용하려면, 액터에 새 위젯 컴포넌트 를 추가한 다음 거기에 위젯 애셋을 할당해 주면 됩니다. 이 기능은 아직 실험단계 기능으로 간주되고 있지만, 곧 여러가지 개선 작업 및 기능 추가가 있을 예정입니다.
- 위젯 컴포넌트의 디테일 뷰에서 3D 위젯의 렌더링 세팅에 대한 환경설정이 가능합니다. UI 렌더링 대상이 되는 렌더 타겟 크기를 조절하는 "Draw Size" 설정도 잊지 마세요.
이미시브 머티리얼에서의 스태틱 라이팅
이미시브(발광) 머티리얼은 이제 주변 오브젝트를 바로 비출 수 있게 되었습니다!
- 이 기능을 켜려면 모빌리티를 스태틱으로 설정하고 섀도우 캐스팅 컴포넌트의 Use Emissive For Static Lighting (스태틱 라이팅에 이미시브 사용) 옵션을 사용하면 됩니다. 켜면, 라이트매스는 이미시브 텍스처 소스에서 구은 직사광을 생성합니다.
- 주: 이 기능은 이미시브 라이팅을 제한시킨 빠른 버전입니다. 직사광만 계산되지만 빌드 시간에는 영향이 없습니다. 다른 광원이 있는 씬에서 사용하는 것이 좋습니다.
폴리지의 스태틱 라이팅
폴리지 오브젝트와 인스턴싱된 메시에 미리계산된 빛과 그림자가 지원됩니다! 스테이셔너리 / 스태틱 라이트가 있는 씬의 매우 효율적인 렌더링이 가능합니다.
스태틱 라이팅은 중간 크기 레벨에 적당하지만 빌드 시간이나 메모리 요구량 면에서 커다란 씬에는 적합하지 않습니다. 여러 번 인스턴싱되는 메시에는 라이트맵 해상도를 아주 작게 하도록 하세요.
데모 녹화 (네트워크 리플레이 캡처)
게임플레이 '즉석 리플레이'를 저장할 수 있습니다! 게임의 네트워크 스트림을 '데모' 파일에 저장하여 나중에 재생하거나 다른 사람과 공유할 수 있습니다. 타임 워프를 통해 게임을 늦추거나 빠르게 돌릴 수도 있습니다.
데모 녹화 기능은 네트워킹이 켜진 언리얼 엔진 게임에서 자동으로 작동합니다.
- 녹화를 시작하는 콘솔 명령은 “DemoRec <리플레이 이름>” 입니다.
- 기존에 녹화된 게임을 재생하는 콘솔 명령은 “DemoPlay <리플레이 이름>” 입니다.
- 슬로모션 및 빨리감기 기능을 사용해 보세요! 콘솔 명령은 “Demo.TimeDilation <배수>” 입니다. 예를 들어 절반 속도 재생은 “Demo.TimeDilation 0.5” 입니다.
- ShooterGame 샘플에 새로운 "Demos" 게임내 메뉴를 사용하여 저장된 리플레이를 탐색하는 기능이 내장되었습니다. 확인해 보세요! (참고로 리플레이를 저장하려면 먼저 "DemoRec" 을 사용해야 합니다.)
실험단계 기능: 에디터에서 모바일 프리뷰
모바일 디바이스에서 씬이 어떻게 보일지 에디터 뷰포트에서 미리볼 수 있게 되었습니다! OpenGL ES2 의 모양과 느낌대로 셰이더 에뮬레이션을 자유자재로 매끄럽게 전환할 수 있습니다.
- 실험단계 기능 세팅에서 Feature Level Preview (피처 레벨 프리뷰)를 켜야 합니다.
- -메인 에디터 툴바에서 Settings (세팅) -> Feature Level Preview (피처 레벨 프리뷰) -> ES2 입니다.
실험단계 기능: 웹 브라우저 UI 위젯
새로운 웹 브라우저 UI 위젯을 사용하여 게임이나 에디터 툴 안에서 바로 웹 페이지를!
- 새로운 슬레이트용 웹 브라우저 위젯(SWebBrowser)을 사용하면 웹 페이지를 대화식으로 쉽게 탐색하고 UI 의 일부분으로 표시할 수도 있습니다. 임베딩된 크롬(Chromium) 웹 프레임워크(CEF3) 덕입니다. 이 기능은 현재 실험단계 기능으로, 윈도우 플랫폼에서만 지원됩니다.
블루프린트에서 스팀 온라인 세션
이제 언리얼에 블루프린트 스크립팅을 통한 온라인 세션 호스팅, 발견, 참가가 지원됩니다!
- 스팀은 물론 LAN 환경도 포함해서, 온라인 세션에 대한 호스팅, 참가, 종료, 검색을 위한 블루프린트 노드를 새로 추가했습니다.
- - 새로운 노드는 이렇습니다:
- Create Session: 네트워크에서 발견 가능한 세션을 호스팅합니다.
- Find Sessions: 네트워크에서 참가할 수 있는 세션을 검색합니다.
- Join Session: Find Sessions 에 검색된 세션에 참가합니다.
- Destroy Session: 기존에 생성 또는 참가했던 세션을 종료합니다.
새로운 머티리얼 시스템 기능
복수 텍스처 머티리얼
- 머티리얼은 새로운 '공유' 텍스처 샘플러를 사용하여 최대 128 개의 고유 텍스처를 사용 가능합니다. 이들은 SamplerSource 프로퍼티를 설정하는 것으로 TextureSample 노드에 설정됩니다. 기존에는 텍스처를 최대 13 개 까지만 사용할 수 있었습니다.
- 터레인, 하이 퀄리티 캐릭터 머티리얼, 고급 포워드 셰이딩 머티리얼과 같은 레이어 머티리얼의 품질 향상에 정말 중요한 부분입니다.
- DirectX 11 및 콘솔은 한 번에 128 개의 텍스처를 지원하지만, (윈도우나 맥의) OpenGL 렌더링 패쓰는 머티리얼당 텍스처가 여전히 13 개 까지로 제한됩니다. 이 제한을 넘는 경우 셰이더가 GL 컴파일에 실패합니다.
스칼라 및 벡터 파라미터 기본값 실시간 미리보기
- 이제 스칼라 또는 벡터 파라미터의 기본값을 변경하고 그 결과를 모든 3D 뷰포트에서 즉시 확인 가능합니다.
- 레이어를 구현하는 머티리얼 함수에 특히나 유용한 기능으로, 그 함수를 사용하는 씬에서 모든 머티리얼에 있는 레이어에 대한 트윅 결과를 확인할 수 있기 때문입니다. 우클릭으로 상수를 빠르게 파라미터로 변환한 다음 손쉽게 트윅 작업한 뒤, 완료 후 원상복구시킬 수 있습니다.
머티리얼 함수에서 파라미터 노출
- 이제 함수에 머티리얼 인스턴스 파라미터가 지원됩니다. 그 덕에 머티리얼 인스턴스에 파라미터를 노출시키기가 정말 쉬워졌습니다. 함수를 머티리얼과 동급으로 끌어내려서, 같은 노드 그래프를 어디서도 사용할 수 있게 된 것입니다. 유일한 예외라면, 원래부터 함수에만 있는 함수 입력과 출력 노드 정도입니다.
- 참고로 머티리얼 안에서 파라미터는 이름별로 설정되므로, 그 머티리얼이 레퍼런싱하는 각기 다른 함수에 'wetness' 라는 이름의 파라미터가 둘 있는 경우, 그 둘 다 머티리얼 인스턴스에서는 같은 값으로 덮어써집니다. 알고 쓴다면 의도적으로 쓸 수도 있지만, 파라미터를 공유하고 싶지 않다면 고유한 이름을 지어야 합니다.
애니메이션: 복수 몽타주 재생
지금까지는 스켈레탈 메시에 한 번에 하나의 몽타주만 재생 가능했습니다. 이제 원하는 갯수만큼 재생할 수 있게 되었습니다!
작동 원리는 이렇습니다:
- 애니메이션은 이제 그룹별로 체계가 잡힙니다. 그룹별로 하나의 몽타주를 재생할 수 있습니다. 동시에 다른 몽타주를 재생하고 싶다고요? 새 그룹만 하나 더 만들어 주면 됩니다.
- 슬롯 및 그룹 생성 기능을 페르소나에 새로 생긴 '애님 슬롯 매니저' 탭에 모아뒀습니다 (아래 참고).
- 유효 슬롯 선택을 위한 드롭다운 UI 가 새로 생겼습니다. 더이상 애니메이션 슬롯 이름을 직접 입력할 필요가 없습니다.
- 네트워크드 루트 모션 몽타주를 재생시에는 여전히 한 번에 하나의 몽타주만으로 제한됩니다.
- 새로운 몽타주 애셋과 슬롯 노드는 즉시 활용되도록 하나의 '디폴트 슬롯'으로 시작합니다.
애님 슬롯 매니저
- '애님 슬롯 매니저'에서는 슬롯과 그룹 이름을 관리합니다. 계층구조식 뷰를 통해 편집이 가능합니다.
- 그룹과 슬롯은 스켈레톤 애셋에 저장되어, 같은 패밀리의 모든 애님 블루프린트와 애님 몽타주는 같은 세팅을 사용합니다.
- 편리한 '저장' 버튼이 매니저에 추가되어, 변경할 때 스켈레톤 애셋을 저장하겠냐고 에디터가 묻는 것에 더이상 놀라지 않아도 됩니다.
- 슬롯 이름에 클릭하면, 맥락 메뉴를 통해서도 다른 그룹으로 옮길 수 있습니다:
몽타주 트랙에서 슬롯 편집하기
- 몽타주 에디터의 뷰는 이렇습니다. 트랙 오른쪽의 콤보 박스에 주목하세요. 해당 트랙에 사용가능한 모든 슬롯이 나열됩니다.
- 새로운 슬롯 또는 그룹 이름을 만들어야 하는 경우, 확대경이 애님 슬롯 매니저를 대령해 드립니다:
- 상단의 상태 바를 통해 몽타주가 속하는 그룹을 알 수 있습니다. 이것은 첫 트랙의 슬롯으로 결정됩니다.
- 슬롯이 여럿인 경우, 상태 바는 셋업에 문제가 있는지도 알려줍니다. 예를 들어 다른 그룹에 속하는 슬롯을 섞어 쓴 경우, 작은 경고창이 뜨며, 그 위에 커서를 올리면 문제점을 자세히 확인할 수 있습니다.
애님메이션 블루프린트에서 슬롯 편집하기
- 애님 그래프에서, 'Slot' 노드는 그 슬롯과 그룹 이름을 표시합니다:
- 노드를 선택한 채 디테일 패널에 보면 몽타주 트랙 뷰와 동일한 옵션을 확인할 수 있습니다:
- 여기서 콤보 박스를 사용하여 기존 슬롯 이름을 선택하고, 확대경을 사용하여 애님 슬롯 매니저를 열 수 있습니다.
- 주:
- 이 기능은 기존 셋업과의 하위 호환성을 위한 것입니다. 기존 슬롯이 'Default Group' 의 일부가 된 것 이외에는 아무런 변화도 없을 것입니다.
- '애님 슬롯 매니저'에서는 아직 슬롯/그룹 이름변경이나 삭제는 불가능하며, 나중에 추가될 예정입니다.
- 몽타주 블루프린트와 C++ API 가 몽타주 애셋 레퍼런스를 받을 수 있게 되었습니다. 그 덕에 다수의 몽타주를 동시에 재생할 수 있게 된 것입니다. 업데이트된 “Set Play Rate” 함수를 예제로 살펴보시기 바랍니다.
모두에서 루트 모션
이제 언리얼 엔진은 복수의 애니메이션에서 블렌딩된 루트 모션을 지원합니다!
- 애니메이션 블루프린트로 루트 모션 처리를 위한 여러가지 모드를 추가했습니다. 모드 설정은 애님 블루프린트 에디터의 "Root Motion Mode" (루트 모션 모드) 드롭 다운을 통해 가능합니다. 동적인 방식이 필요한 경우 코드에서 실행시간에 이 모드를 설정할 수도 있습니다.
- 옵션은 다음과 같습니다:
- No Root Motion Extraction 루트 모션 추출 없음 - 루트 모션이 (루트 본에 적용된 채) 그대로 남아있습니다.
- Ignore Root Motion 무르 모션 무시 - 무트 모션이 추출(되고 루트 본에서 제거)되지만, 캐릭터에 적용되지는 않습니다.
- Root Motion from Everything 모두에서 루트 모션 - 루트 모션 처리를 위한 새로운 메소드입니다 (아래 자세히 설명합니다).
- Root Motion from Montages Only 몽타주에서만 루트 모션 - 원래 루트 모션 방식(이자 모든 신규 블루프린트의 기본)입니다.
- 애셋의 루트 모션 셋업입니다:
- 애님 시퀸스에 새로 생긴 'Enable Root Motion' (루트 모션 켜기) 세팅이 있습니다. 이 옵션은 애님 몽타주에 있던 'Enable Root Motion Translation' / 'Enable Root Motion Rotation' 옵션을 대체합니다 (로드시 자동 업데이트됩니다)
- 주: 애님 몽타주의 원래 세팅도 여전히 존재하며, deprecated (폐기) 마킹도 되지 않았습니다. 의도적인 것으로, 애니메이션 시퀸스에 제대로 전파되도록 하기 위함입니다. 더이상 페르소나에서 편집은 불가능하며, 아무도 그것을 읽고/쓰는 코드를 작성해서는 안됩니다.
모두에서 루트 모션:
- 최종 캐릭터 포즈에 기여하는 각 애니메이션 애셋(시퀸스, 블렌드 스페이스, 몽타주 등)은 (루트 모션이 있는 것으로 설정된 경우) 그 루트 모션을 추출합니다. 추출된 루트 모션 각 조각은 포즈에 대한 소스 애셋의 기여 가중치에 따라 블렌딩됩니다.
- 예: 위 그래프에서 Jog_Loop_Fwd_RM 와 Jog_Loop_Right_RM 의 루트 모션은 각각 0.5 의 가중치로 블렌딩될 것입니다. 이 경우 결과 애니메이션은 사선 정방향으로 맵을 가로지르며 달리는 캐릭터가 됩니다.
- 주: 원래 시스템(현재 'Root Motion from Montages Only' 몽타주에서만 루트 모션)은 네트워크 게임을 염두에 두고 디자인된 것이기에 함수성이 제한되어 있습니다. '모두에서 루트 모션'은 완전 무제한인 것으로 디자인되었기에, 네트워크를 통해 애니메이션이 리플리케이트되지 않는 게임에서만 사용할 것을 권장하는 바입니다.
애니메이션: '인간형 릭' 빠른 선택
- 엔진에 내장된 Humanoid Rig (인간형 릭)을 선택하는 신기능이 페르소나에 추가되었습니다. 이 릭은 언리얼 엔진 마켓에서 접할 수 있는 애니메이션에 자주 사용됩니다.
새로운 블루프린트 에디터 메뉴
블루프린트 에디터 우클릭 메뉴의 검색 결과 정확도를 높이기 위해 작동방식 새롭게 디자인했습니다.
- 전과 마찬가지로 노드에서 끌어 놓으면 그 노드 유형에 직접 관련이 있는 노드가 표시되는 맥락 메뉴가 뜹니다. 블루프린트 에디터의 개인설정에 새로 생긴 옵션을 사용하여 이 기능에 대한 환경설정이 가능합니다:
더 커진 3D 월드
각 월드의 최대 크기가 대략 20 킬로미터에 달하도록 확장되었습니다. 이는 C++ 코드에서 ‘WORLD_MAX’ 상수로 정의됩니다. (기존 약 5km 였으니) 네 배 향상된 것입니다.
참고로 언리얼 엔진의 World Composition (월드 컴포지션) 기능을 사용하여 복수의 월드를 연결하면 어떤 크기의 월드도 만들 수 있습니다!
빨라진 패키징과 쿠킹
에디터 안에서 콘텐츠를 패키징하고 쿠킹하는 것이 훨씬 빨라졌습니다!
- 에디터 안에서 쿠킹할 때, 더이상 새로운 프로세스를 불러올 필요가 없습니다. 즉 에디터에 로드된 애셋을 메모리에서 바로 쿠킹하여 처리 속도가 대폭 향상되었다는 뜻입니다.
- 이 기능은 기본적으로 켜져있으나, 필요에 따라 'Disable Cook in Editor' 에디터에서 쿠킹 끄기 개인설정으로 예전 시스템으로 되돌아갈 수 있습니다.
내비게이션 메시 스트리밍
언리얼 엔진은 이제 미리계산된 내비게이션 데이터의 섹션을 요청에 따라 즉시 메모리에서 스트림 인/아웃 가능합니다.
- 스태틱 내비게이션 메시 데이터를 각기 다른 서브 레벨에 저장하면 엔진은 그 레벨과 함께 이 데이터를 스트리밍합니다.
- 기본적으로 내비게이션 볼륨과 교차되는 내비게이션 메시 부분은 그 볼륨이 배치된 서브 레벨에 저장됩니다.
언리얼 C++ 프로그래밍
- 단순화된 클래스 선언
- 이제 클래스에 'normal' 보통의 C++ 생성자를 정의하고 사용합니다. 이제 파라미터 없는 생성자도 사용 가능합니다!
- 프로퍼티를 에디터나 블루프린트에 노출시키는 데 더이상 카테고리를 지정할 필요가 없습니다. 이제 디폴트 카테고리가 생깁니다.
- FPostContructInitializeProperties 가 폐기(deprecated)되었습니다. FObjectInitializer 로 대체되었으며, 실제로 필요할 때만 지정해 주면 됩니다.
- 'GENERATED_BODY' 가 더이상 보호 레벨을 'public' 으로 리셋시키지 않고, 세팅을 보존합니다.
- 'GENERATED_UCLASS_BODY' 대신 새로운 "GENERATED_BODY" 지정자를 사용해 주세요. 다음과 같은 여러가지 신기능을 사용할 수 있게 됩니다!
단순화된 형변환
- 향상된 Cast() 함수를 사용하여 Unreal 클래스끼리 쉽게 형변환합니다. 심지어 인터페이스와 클래스 사이에도 형변환 가능합니다. 원한다면 Unreal 유형간의 형변환을 위한 dynamic_cast 도 지원합니다.
기타 C++ 개선사항
- 델리게이트가 있는 C++ 11 lambdas 가 새로이 지원(아래 참고)되며, 새로운 (경량 lambda wrapper 인) TFunction 클래스도 지원됩니다.
TSubobjectPtr 을 제거하고 있습니다. 이상하고 혼동을 유발했었습니다. 이제 서브 오브젝트에 그냥 보통 포인터를 사용하세요!- 소스 파일에 구조체와 열거형만 있는 경우, 더이상 '더미' UObject 를 합성할 필요가 없습니다.
UI: 게임 콘트롤러 지원
이제 조이스틱을 사용해서 UI 요소 사이를 이동 가능합니다!
- 기본적으로 화살표키, 방향 패드 또는 왼쪽 조이스틱으로 이동 가능합니다. 여전히 Tab 또는 Shift+Tab 도 사용할 수 있습니다. 슬레이트와 언리얼 모션 그래픽 양쪽에서 작동합니다.
- '키보드 포커스' 와 '콘트롤러 포커스' 개념을 '유저 포커스' 개념으로 통합시켰습니다. 유저 포커스를 바꾸면 해당 유저에 대한 모든 콘트롤러와 키보드에 영향을 끼칩니다.
UI: 컴포짓 폰트
슬레이트와 UMG 는 이제 폰트 패밀리와 컴포짓 폰트를 지원합니다. 이를 통해 실제로 다수의 서브 폰트로 구성된 폰트를 만들 수 있으며, 각 폰트를 각기 다른 글다 범위에 사용할 수 있습니다. 현지화된 텍스트 표시에 정말 유용합니다.
폰트 애셋
- 컴포짓 폰트와 거기에 연관된 TTF 또는 OTF 폰트 파일 데이터 임베딩이 지원되도록 폰트 애셋 유형이 업데이트되었습니다.
- 이제 폰트 애셋은 두 가지 캐시 방법을 지원합니다. 'Runtime' 실행시간은 새로운 컴포짓 폰트 방식이며, 'Offline' 오프라인은 기존의 미리계산된 폰트 아틀라스 방식입니다. 폰트 에디터에서 그 둘을 쉽게 전환할 수 있어, 기존 폰트 애셋을 대체하지 않고도 간단히 변환 가능합니다.
- 새 폰트 애셋을 만들면 기본으로 빈 컴포짓 폰트가 생성되며, 콘텐츠 브라우저에 TTF 또는 OTF 파일을 임포트하여 컴포짓 폰트 애셋을 만들 수도 있습니다.
폰트 에디터
- 폰트 에디터가 컴포짓 폰트 애셋을 생성할 수 있도록 업데이트되었습니다.
- 컴포짓 폰트는 항상 디폴트 폰트 패밀리를 포함하며, 주어진 글자 범위에 사용해야 할 서브 폰트 패밀리를 몇이든 포함시켜도 됩니다. 각 폰트 패밀리 자체는 스타일별로 이름이 다른 폰트 다수로 이루어집니다.
- 해당 글자 범위에 대해 폰트 패밀리에서 사용가능한 폰트에 따라 각 글자에 가장 적합한 폰트를 실행시간에 선택합니다.
- 위 미리보기에서 확인 가능하듯이, 일본어 텍스트는 일본어 폰트 패밀리 글자 범위 안에 해당하므로, Roboto 가 아닌 Source Han Sans 폰트로 렌더링됩니다. 서브 폰트 패밀리의 폰트는 Regular, Bold, Light 의 경우처럼 이름 일치에 따라 선택되는데, Bold Italic 의 경우처럼 기본 폰트의 특성에 따라 일치하는 것으로 대체될 수도 있습니다 (폰트에 Bold 특성이 들어있고, 가장 잘 맞기에 Bold Japanese 폰트를 자동으로 선택했습니다).
언리얼 모션 그래픽(UMG)에서의 폰트
- UMG 의 구형 인터페이스에 있던, 디스크에서 TTF 또는 OTF 파일을 지정하는 기능이 제거되고, 컴포짓 폰트 애셋을 선택한 다음 기본 폰트 패밀리에서 폰트를 선택하는 애셋 선택기로 대체되었습니다.
- 폰트 세팅에 따라 기존 파일을 잃게 되는 경우는 없지만, 앞으로는 UMG 에 폰트 애셋을 사용해야 합니다.
- UMG 는 현재 '런타임' 캐시된 폰트 애셋만 지원합니다.
슬레이트에서의 폰트
- C++ 기반 슬레이트 스타일 세트의 기존 폰트 코드도 정상 작동하나, 스타일 세트가 컴포짓 폰트의 이점을 활용하도록 업데이트해 보는 것도 좋습니다.
- C++ 슬레이트 코드에서 컴포짓 폰트를 처리할 때는 폰트 애셋보다는 FStandaloneCompositeFont 를 사용할 것을 추천합니다.
- 슬레이트 스타일 세트에 포함된 폰트 오브젝트가 가비지 콜렉터에 보이지 않기 때문입니다. 폰트 애셋을 직접 사용하면 FGCObject 같은 것을 사용해서 외부 레퍼런스를 직접 관리해야 합니다.
캔버스에서의 폰트
- 캔버스는 양쪽 폰트 애셋 캐시 유형을 모두 지원하나, 저희 툴 일부에 대한 현지화 지원을 개선시키기 위해서입니다.
- 신형 게임의 UI 에 캔버스를 쓰는 것은 추천하지 않으며, 그 대신 UMG 를 쓰시는 것이 좋습니다.
학습 자료
- 콘텐츠 예제 맵이 추가되었습니다! 언리얼 엔진 런처에 새로 생긴 학습 탭 에서 Content Examples 프로젝트와, 기타 학습 관련 프로젝트를 접할 수 있습니다!
-
- 언리얼 모션 그래픽
- 미디어 프레임워크 (동영상 재생)
- 스킨 렌더링 (서브서피스 머티리얼)
- 신규! 현지화
- 신규! 소스 콘트롤
- 신규! 게임내 분석
- 블루프린트 비법 추가
- 노드 배치
- 그래프 이동
- 액터 레퍼런스 변수 작업
- 그래프 접기
- 함수 만들기
- 블루프린트 기본 사용법
- 노드 연결
- 머티리얼 비법 추가
- 머티리얼 표현식과 함수 배치
- 머티리얼 함수 생성
- 머티리얼 파라미터 생성
- 범프 오프셋 사용
- 사람 피부 구성
- 글로우 사용
- 서브서피스 프로파일 사용
- 렌더링 문서 업데이트
- 서브서피스 스캐터링
- 모바일 플랫폼용 머티리얼 업데이트
- UMG 문서 업데이트
- 3D 위젯 컴포넌트
- 컴포짓 폰트 지원
- 스크린샷
에디터내 도움말
- 스켈레탈 에디터 길잡이 튜토리얼에서 창 포커스 관련 문제를 고쳤습니다.
API Document (미번역)
- New: Added some basic documentation to the stats system.
- Fix comments for ProjectileMovement substepping.
- Fix comment on Pawn::PossessedBy().
- Improved documentation for ACharacter::Landed() / OnLanded() indicating that movement mode is still "falling" during this time, and pointing out alternate OnMovementModeChanged() event.
- Added link for FString docs. Documented ESearchCase, ESearchDir.
- Add or fix class descriptions for multiple framework classes.
- Added comments/docs for FNavAgentProperties and FMovementProperties.
- Improved docs for FVector, FVector2D.
- Added/improved comments for ENetMode, EVariableReplication and linked to online doc pages.
- Cleaned up comments in Object.h (skeleton definitions for core object module).
- Added links to actual source files. Lots of times intellisense/VA will take you to the less helpful skeleton file rather than the actual source file.
- FTransform class comments expanded to include description of how transformations are applied and composed. Similar changes to KismetMathLibrary::ComposeTransforms() as well.
- Documentation for quaternions, explaining order of composition during multiplication.
업데이트 전체 목록은 여기를 클릭하세요!