목록전체 글 (56)
보키_기록용

SVN으로 언리얼 프로젝트를 개발하다보면, 비프로그래머(아트, 기획)직군을 위해 프로그래머가 소스코드를 올릴 때 항상 바이너리 파일들을 같이 올려줘야했다. Unreal Game Sync(UGS)는 이런 과정을 자동으로 해주는 툴이다. UGS 사용 이점 개발자 개발자는 변경목록(ChangeLists : CL)을 제출하자마자 동기화할 수 있으므로, 그 CL 에 맞는 소스 코드를 로컬에서 바로 컴파일할 수 있다. 각 변경 사항에 코멘트를 추가하거나, 해당 빌드가 좋고 나쁜지 플래그를 설정하여 다른 개발자에게 알릴 수 있다. 엔지니어가 깨진 빌드에 대한 수정 작업을 할 때, 플래그를 설정하여 수정 중이라는 사실을 나머지 팀원에게 알릴 수 있다. 개발자는 버전이 없는 애셋을 제출할 필요 없이 로컬 빌드에서 안전하..
ACharacter를 상속한 파생클래스의 BeginPlay에서 GetController()는 nullptr를 반환하고 GetPlayerController()는 제대로 반환되어서 둘의 차이를 알아보고자 한다. PlayerController가 Controller의 자식이지만, BeginPlay 시점에서 Controller가 캐릭터의 소유 상태가 아닐 수도 있다. (호출 시점에 따라 다르다.) 처음 게임 시작 시 PlayerContoller와 PlayerState 객체를 얻을때, 이 시점에서 캐릭터는 없지만 PlayerController가 UI를 처리하므로 로그인 위젯 등을 수행할 수 있다. 어느 시점에서 게임 모드가 캐릭터를 생성하고 BeginPlay를 실행하며, 다시 여기에 컨트롤러가 아직 설정되어 있지 ..
[VSC] 이미 있는 프로젝트를 깃허브 레파지토리에 업로드하기 (velog.io) [VSC] 이미 있는 프로젝트를 깃허브 레파지토리에 업로드하기 !youtube1I3hMwQU6GU비주얼 스튜디오 코드를 열어서 File - Open Folder로 깃허브와 연동시킬 폴더를 연다.ctrl + shift + \` 단축키로 새 터미널 창을 연다2-1. 터미널 창이 git bash로 설정되어있지 않다면 참고 velog.io [TIL] github의 파일/폴더 삭제하기 (velog.io) [TIL] github의 파일/폴더 삭제하기 파일 삭제하기, 폴더 삭제하기 모두 터미널 창 또는 cmd를 켠 뒤 삭제하고자 파일/폴더가 있는 위치로 이동해서 실행하기! velog.io + ) 언리얼 프로젝트 github에 올릴시 ...

해당 방식은 Lyra 프로젝트를 참고했다. 1. 에디터 상단 편집 > 플러그인에서 추가버튼 클릭 2. 게임피처(콘텐츠 전용)으로 플러그인 생성 3. 콘텐츠 브라우저 > Plugins 폴더에 만든 게임피처플러그인 이름으로 콘텐츠가 생성되어있다. 콘텐츠 브라우저에 Plugins 폴더가 안보일 경우 4. 에디터 상단 편집 > 프로젝트 세팅 > 게임 > Game Features에 Game Feature Project Policy Class를 사진처럼 변경해준다.(기존은 None으로 되어있음) 5. 에디터에서 생성한 GameFeatureData를 설정한다. 이후 Enhanced Input 시스템과 연관된 글 C++에서 Enhanced Input System 사용하기 Lyra에서 Input Mapping Conte..
분명 대학생때 공부할땐 Try-Catch문을 배운거같은데 현업에서 일하거나 언리얼 엔진 코드내에서도 쓰는 걸 못봐서 이유를 찾아봤다. 언리얼 엔진 등의 인지도가 있는 제품에는 C++ Exception을 쓰지 말라고 되어 있는데 왜 그런 걸까요? (gamecodi.com) 언리얼 엔진 등의 인지도가 있는 제품에는 C++ Exception을 쓰지 말라고 되어 있는데 왜 그런 걸까요 언리얼엔진 및 구글 코딩 규약을 보게 되면 C++ Exception 쓰지마라 라는 내용을 담고 있는거 같은데..쓰라고 만들어 놓은건데 왜 쓰지 말라고 하는 건지... lab.gamecodi.com 새로운 프로젝트에서는 Exception을 써서 이점이 더 많지만 기존에 Exception을 고려하지 않고 설계한 프로젝트들은 사실상 불..

시작하기에 앞서, 기본 클래스들을 만들어야 한다. Enghanced Input 시작하기를 참조. Input Mapping Context : 사용자 입력을 입력 작업에 매핑하며 각 사용자에 대해 동적으로 추가, 제거 또는 우선 순위를 지정할 수 있다. 기존에는 그냥 간단하게 PlayerControllerBP에다 AddMappingContext를 했다. Lyra에서는 어떻게 적용하는지 살펴보려고 한다. Lyra는 기능 간의 종속성을 피하기 위해 GameFeature로 독립형 기능을 만들어서 사용한다. 이 GameFeature의 Actin에서 AddInputConfig를 정의해서 사용한다. 이것을 위해서 GameFeature플러그인을 추가해야한다. 아래 링크는 추가하는 법있는 공식문서 Game Features..

언리얼 엔진의 고급 유저 인터페이스를 위한 일반 UI 플러그인 | 언리얼 엔진 5.0 문서 (unrealengine.com) 일반 UI 일반 UI 플러그인으로 복잡한 멀티 레이어 유저 인터페이스를 생성하세요. docs.unrealengine.com 여러 레이어로 쌓인 UI 중 어떤 위젯에 포커스를 줘서 입력을 받는 부분 처리, 플랫폼별로 버튼 다르게 쓰는 등에 장점이 있음. 언리얼 예제 프로그램인 Lyra에서는 이걸 기반으로 하고있다. 포트나이트에서도 썼다고 함. Enhanced Input System 붙여보다가 #include "CommonInputBaseTypes.h" 라는게 나왔는데 찾다가 Common UI에서 나온거라는걸 알게됨. 목적이 저 헤더파일이라 제대로 쓰는건 나중에 할 예정. 1. 편집(..