언리얼 엔진 5 얼리 액세스 출시

언리얼 엔진 5 소식

https://www.unrealengine.com/ko/blog/unreal-engine-5-is-now-available-in-early-access

지난 5월 26일에 언리얼 엔진 5가 얼리 액세스로 출시되었다는 소식이 있었습니다.
얼리 액세스 전에 나왔던 영상에서도 많은 기대를 모았는데 어떤 기능들이 공개된 대로 동작할지 기대가됩니다.

지난 5월 13일에 공유된 영상

얼리 액세스 릴리스와 함께 공유된 영상

⭐️ 영상에서 리스트 버튼을 눌러보시면 언리얼 엔진 5의 기능 리스트를 볼 수 있습니다.

언리얼 엔진 5 신기능 소개

나나이트(Nanite)

  • 가상화된 마이크로폴리곤 지오메트리 시스템 (Virtualized MicroPolygon Geometry System)
  • 노멀 맵에 디테일을 베이크하거나 LOD를 직접 제작하는 것처럼 오래 걸리고 반복적인 작업을 생략함

루멘(Lumen)

  • 완전한 다이나믹 글로벌 일루미네이션 솔루션 (Fully dynamic global illumination solution)
  • 이를 통해 직사광, 지오메트리의 변화에 간접광이 실시간으로 반응하는 사실적인 다이나믹 씬을 제작할 수 있음
  • 라이트 맵 UV를 제작하거나 라이트 맵 굽기를 기다리거나 리플렉션 캡쳐를 배치하지 않아도 됨

월드 파티션 시스템(World Partition System)

  • 자동으로 월드를 그리드로 나누고, 필요에 따라 필수적인 셀을 스트리밍하는 기능

액터당 한개의 파일 시스템 - 협업을 원활히 할 수 있게 액터를 파일 단위로 하는 기능

데이터 레이어

  • 레이어로 특정 조건, 상태에 따라 월드에 다른 베리에이션을 동일한 공간에 존재하는 레이어로 제작할 수 있음

애니메이션

  • 컨트롤 릭(Control Rig) - Rig을 제작하고 다수 캐릭터에 공유, 포즈 취할 수 있도록 함
  • 포즈 브라우저(Pose browser) - 포즈를 애셋화하거나 적용함
  • 풀 바디 IK 솔버(Full body IK Solver) - 쉽게 동작 구현 도움
  • 모션 워핑(Motion Warping) - 캐릭터 루트 모션을 다수의 타깃에 정렬되도록 동적으로 조정 가능

메타사운드(MetaSounds)

  • 사운드 소스의 오디오 DSP 그래프 생성에 대한 완전한 제어를 제공

향상된 에디터 UI 및 워크플로우

  • 콘텐츠 브라우저 고정 기능, 에디터 탭을 축소할 수 있는 기능
  • 디테일 패널에서 자주 사용하는 프로퍼티를 빠르게 액세스할 수 있는 새로운 즐겨찾기 시스템
  • 월드에 액터를 손쉽게 배치하게 해주는 메인 툴바의 새로운 생성 버튼, 새로운 프로젝트 생성을 위해 보다 쉽고 간소화된 워크플로도 제공

언리얼 엔진 5 보러가기

언리얼 엔진 5는 에픽게임즈 런처를 통해 실행해볼 수 있습니다.

튜토리얼도 있으니 한번 보고 해봐야겠어요. 😸

https://www.unrealengine.com/ko/onlinelearning-courses/ue5-early-access-quickstart

소개는 여기까지 하겠습니다. 자세한 내용은 원문을 참고해주세요!

Perforce(P4V) Time lapse 기능

Time-lapse(타입 랩스) 기능?

P4V에는 파일의 변경 내역을 Slider를 이용해서 리비전, 체인지리스트 단위로 볼 수 있는 타입 랩스 기능이 있습니다.

타임랩스 기능을 보는 방법은 간단합니다. 파일에서 오른쪽 버튼을 누르고 Time-lapse View를 누르면 확인하실 수 있습니다.
위 화면은 Time-lapse view의 Single revision 모드의 화면입니다. 파일 리비전 단위로 슬라이드를 움직여 히스토리가 변경되는 것을 볼 수 있습니다.

아래에 있는 내용은 가이드 문서에 있는 Toolbar 설명 테이블 내용을 간단히 정리해보았습니다.

타임랩스 뷰 메뉴 설명

FunctionsDescriptions
Mode얼마나 많은 리비전을 보여줄지 결정하는 옵션입니다.
- Single revision: 한번에 하나의 리비전을 보여줍니다.
- Incremental diffs: 2개의 인접한 리비전의 변경된 것을 강조해서 보여줍니다.
- Multiple revisions: 특정 범위 리비전의 변경된 것을 강조해서 보여줍니다.
Content range시작과 끝 리비전을 정의합니다.
Scale시점 단위를 체인지리스트로 볼 것인지, 날짜, 리비전으로 볼 것인지 정의합니다.
User 수정한 유저를 보여줍니다.
Aging 수정 사항이 얼마나 오래되었는지 색으로 보여줍니다.
Line numbers 줄 번호를 보여줍니다.
Lifetimes 파일에 인접한 텍스트 청크가 얼마나 오래 같이 있었는지 그래픽 너비(width)를 통해 수명을 보여줍니다.
Direct history 브랜치 히스토리를 제외하고 파일 리비전 히스토리를 보여줍니다.
Branch history 브랜치 히스토리(머지, 인테그레이션)를 보여줍니다. 브랜치 정보는 타임라인 밑에 나타납니다.
Originating changelist 각 리비전의 원래 체인지리스트에 대한 정보를 보여줍니다.
Find 파일에서 텍스트 기반으로 검색한 결과를 보여줍니다.
Go to line number 지금 보이는 코드 라인을 지정해서 봅니다.
Go to Next diff 다음 변경 사항
Go to Previous diff 이전 변경 사항
Line ending 줄바꿈 관련 설정

Incremental diffs mode

Incremental diffs 모드는 인접해있는 2개의 리비전의 변화를 볼 수 있는 모드입니다.
현재 리비전과 직전의 리비전의 차이와 어떤 것이 변경되었는지 빠르게 볼 수 있을 것 같네요.
2개의 리비전 정보도 같이 볼 수 있어서 변경 사항을 파악하는데 유용해보입니다.

Multiple revisions mode

이 모드는 설정한 범위 내의 리비전 변화를 볼 수 있습니다.
특정 범위 내에서 변경 사항을 확인하고 어떤 사람이 어떤 변경을 했는지 집중해서 확인하기에 좋을 것 같네요.

이미지 타임랩스 뷰

이미지의 경우 타임랩스 뷰를 통해 변화되는 것을 볼 수 있습니다.

https://www.perforce.com/manuals/p4v/Content/P4V/advanced_files.timelapse_image.html

가이드 문서나 비디오에서도 기능에 대한 스크린샷이 없네요. 😂
실제 테스트 해보니 이미지 변화를 페이드인/아웃해서 보여줍니다. (이미지가 크면 메모리 많이 먹겠다는 생각이 드네요 ㅎㅎ)
어지간한 이미지 파일 형식은 다 지원하는 것 같습니다.

타입랩스 뷰 소개 마무리

타임랩스 뷰 기능에 대해 간단히 살펴보았습니다.
코드 변경된 내용을 확인하는 데에는 좋은 것 같은데 언어에 따라 포맷팅해주지는 못하는 것 같아 아쉽긴하네요. (P4V 기능 대부분 그런 것 같긴하지만 말이죠 😂)

이만 포스트 마칩니다.

Perforce(P4V) Revision Graph(리비전 그래프) 기능

P4V 리비전 그래프 기능

P4V User Guide: Viewing codeline history in the revision graph

P4V의 리비전 그래프 기능은 파일이 어떻게 변경되어왔는지 한눈에 볼 수 있는 기능입니다.
리비전 그래프 기능은 파일이나 폴더를 선택하고 오른쪽 버튼으로 Revision graph를 선택하면 볼 수 있습니다.
단축키는 Mac은 Cmd + Shift + r / Windows는 Ctrl + Shift + r 입니다.

리비전 그래프에서 그래프 선의 의미

리비전 그래프에서 각 리비전 블록과 화살표를 보실 수 있을텐데요.
각 화살표의 의미는 리비전 그래프 오른쪽 하단의 Legend에서 확인하실 수 있습니다.

Legend에서 보실 수 있듯이 색과 선의 형태에 따라 의미하는 것이 다르네요.

저도 정리하면서 어렴풋이 알던 내용을 정리한 느낌이라 좋군요. 😸

Branch, Merge, Edit 등 내용은 이름만 봐도 알 수 있을 것 같으니 이런 것이 있다 정도로 보고 넘어가겠습니다.

리비전 그래프 기능 상세

리비전 그래프에서는 리비전 상세 내용에서 어떤 Integration에 의해 생성된 리비전인지, Label이 있는지, 코드 수정 사항이라면 짧게 Preview도 볼 수 있습니다.

  • Details - 리비전의 상세 내용을 알 수 있습니다. 서밋 날짜, changelist, 설명 등이 포함되어있습니다.
  • Integrations - 리비전이 어떤 Integration에 의해 만들어졌는지 알 수 있습니다. (그냥 서밋이면 해당 항목은 보이지 않습니다.)
  • Labels - 해당 리비전에 설정된 레이블을 보여줍니다.
  • Preview - 파일의 프리뷰를 보여줍니다. 파일이 크거나 바이너리일 경우에는 볼 수 없습니다.

마무리

리비전 그래프를 볼 수 있다는 점에서 소스트리 커밋 그래프와 비슷하지만 파일 단위의 히스토리 그래프를 볼 수 있다는 점에서 특장점이 있는 것 같습니다.
파일이 어떻게 머지되고 브랜치에 포함되었는지 볼 수 있어서 편리한 기능이라고 생각합니다.
리비전 그래프 기능 자체가 직관적이라 간단하게 소개해도 내용은 충분했을 것 같네요.
다음에는 타임 랩스 기능을 포스트해보겠습니다.

Perforce(P4V) Search(검색) 기능

P4V 검색 기능

이번 포스트에서는 P4V에서 검색 기능을 알아보려합니다.
가이드 문서: P4V User Guide: Searching and filtering

P4V 검색 기능 가이드 문서를 간단히 요약하면,
파일, changelist, workspace, branch, stream, job, label을 필터를 통해 검색할 수 있습니다.
Cmd+F(Ctrl+F)를 통해서 검색도 가능합니다.

changelist description 검색 기능

사실 저나 대부분의 사용자는 submit된 changelist에서 설명으로 입력된 내용을 검색을 원할 것 같은데
P4V에는 Ctrl+F 기능을 통해서 간단하게 제공하고 있습니다. (너무 간단해요)
Find File 기능도 사실 Changelist 조건이 있어서 설명 검색이 가능하지 않을까해서 보았는데 숫자로만 검색이 가능한 상태입니다.
(탭 이름도 파일 찾는 탭이니 그럴 수 있다고는 생각합니다.)

검색할 때 필터를 사용하라고 하지만 필터에도 description으로 필터링해서 보여주는 것은 없어요. 🤯
이참에 p4vjs로 커스텀 html tab을 만드는게 낫겠다 싶어서 검색 페이지를 만들어보았습니다.

p4v custom html tab을 통한 검색 기능 설정

https://github.com/pineoc/p4v-html-utils

가이드에 맞춰 설정해주시고 Run Queries 메뉴를 눌러보시면 아래와 같은 화면으로 검색해보실 수 있습니다.


한번 사용해보셔요 😈

마무리

P4V 검색 기능을 소개하려했는데 사실 기본적으로 제공하는 검색 기능이 크게 도움이 되는지는 모르겠습니다. 😂
제가 모르는 기능이 있을지는 모르겠지만.. PM으로 업무를 하면서 사용해본 P4V에는 검색 기능이 좋지는 않은 것 같아요.
그래서 custom html tab까지 만들어서 사용해보고 있는데 나름 만족하고 있습니다.

제가 P4V를 완전히 깊게 사용하지 못해서 모르는 부분이 있을 수 있으니 정정이 필요한 부분이 있다면 댓글로 남겨주세요!

향후 업데이트에 검색 기능이 강화될 수 있지만.. 현재는 원하는 changelist를 검색하기가 어려운 상태이긴합니다.
description으로 필터링하는 기능이 생기기를 기원하며 마치겠습니다.
감사합니다 😸

다른 Perforce 가이드 문서들

Flutter 2.0 업데이트 소식

Flutter?

EN: https://flutter.dev/
KO: https://flutter-ko.dev/

Flutter(플러터)는 구글에서 만든 개발 프레임워크로 기존에는 모바일 앱을 개발할 수 있었으나 2.0으로 업데이트되면서 데스크탑 앱(Windows, Mac, Linux), 웹 앱까지 stable로 지원하는 개발 프레임워크가 되었습니다.

홈페이지에는 플러터를 아래와 같이 설명하고 있네요.

Flutter(플러터)는 하나의 코드베이스로 모바일, 웹, 데스크톱에서 네이티브로 컴파일 되는 구글의 아름다운 UI 툴킷입니다.

플러터는 Dart라는 언어를 사용하여 앱을 개발할 수 있으며 이 언어도 구글에서 만들었습니다.
앱을 개발할 때는 Android Studio, IntelliJ, VS Code, Emacs에 플러그인을 설치하고 가능하다고 합니다.
(iOS, Android, 데스크탑 앱 모두를 개발하고자 한다면 VS Code로 하는게 좋겠네요 😈)

2.0 업데이트 소식

https://medium.com/flutter/whats-new-in-flutter-2-0-fe8e95ecc65

이번에 업데이트된 내용을 살짝 요약해보면

  1. Mobile Framework -> Portable Framework
    • 데스크탑 앱(Mac OS, Windows, Linux), Web(beta to stable) 지원!
  2. Dart Null Safety
  3. Flutter Fix를 통해 2.0 업데이트 이후 deprecated된 것 수정 가능
  4. DevTool 업데이트
    • 평균 FPS, 메모리 뷰 차트, 디버거 업데이트 등
    • 자세한 내용은 DevTools 2.0

짧은 정찰 마무리

Flutter를 이용한 앱 개발은 해보지 않아서 이번에 업데이트 소식을 들은 김에 튜토리얼해보면서 앱을 한번 빌드해보는 것도 재미있을 것 같네요.
(Dart 언어도 한번 찍어먹어볼겸..)

앱 개발 강의에서도 요즘 심심치 않게 등장하고 있는 프레임워크인데 조만간 튜토리얼 돌려보고 내용 정리해봐야겠습니다. 😈