대충 탑다운 롤플레잉 게임을 만들려고 레벨 디자인 연습을 하려고 함. 실사 같은 에셋도 진짜 많은데, 사실 실사보다는 약간 유니티스럽고 캐주얼스러운 느낌을 주고 싶어서 그런 느낌의 에셋을 찾아다녔고, 괜찮은 언리얼용 무료 에셋을 발견함. Hand Painted Environment in Environments - UE Marketplace (unrealengine.com) Hand Painted Environment in Environments - UE Marketplace This pack contains a wide range of vegetation, buildings, obstacles, ancient ruins and other props. www.unrealengine.com 캐주얼 게임에서 ..
저번에 만들었던 지형 생성에 이어서, 이번에는 강과 바다를 채워보기 위해서 UE5에서 제공하는 Water System을 활용해보려고 한다. 다음과 같은 레퍼런스를 참고했다. Water System in Unreal Engine | Unreal Engine 5.0 Documentation Unreal Engine 5: Water System in UE5 Tutorial - YouTube (1) 플러그인 Settings > Plugins 메뉴를 선택해서 플러그인 창을 연다. 검색 창에 Water를 검색하고, 결과에서 옆에 체크 표시를 눌러서 플러그인을 설치한다. 실험 단계의 플러그인이기 때문에 경고가 나타난다. Yes를 누른다. Restart Now를 눌러 에디터를 재시작한다. 재시작 할 때, 셰이더 컴파일..
UE5에서 간단하게 쓸만한 로그 출력의 종류는 총 두 가지가 있다. 꽤 여러 용도로 자주 쓰일 기능이라서, 하나씩 복습 겸 포스팅. 참고 자료 Logging | Unreal Engine Community Wiki (unrealcommunity.wiki) FString | Unreal Engine 4.27 Documentation UEngine::AddOnScreenDebugMessage | Unreal Engine Documentation (1) UE_LOG 매크로를 사용한 로그 UE_LOG(LogTemp, Warning, TEXT("Hello")); UE_LOG 매크로를 활용한다. 세 개의 각 인자의 의미는 각각 LogCategory, Verbosity, FormatString 이다. Verbosity..
대충 블록으로 쌓는 맵도 봤으니, Landscape툴을 사용한 야외 레벨 디자인도 한 번 시도. 어차피 아래의 언리얼 엔진 공식 매뉴얼에 잘 설명되어 있는 부분이지만, 복습을 겸해서 포스팅. Landscape Quick Start Guide | Unreal Engine Documentation (1) 기반 지형 생성 먼저 Landscape 모드로 전환해야 한다 :) 적당한 사이즈의 Landscape 액터를 생성하는게 먼저이다. 머티리얼이 대충 M_Ground로 지정되어 있기는 한데, 사실 별 의미없더라. 어차피 Landscape용 Material을 만들어야 한다. (2) Landscape 머티리얼 만들기 새로운 Landscape용으로 사용할 머티리얼을 생성한다. 1. LandscapeLayerBlend ..
본격적으로 뭔가를 개발하려면 C++든 블루프린트든, 아무튼 게임 로직 구현을 위해서 스크립팅을 하는 방법을 알아야 한다. 애초에 블루프린트는 애초에 워낙 간단하기도 하고, 나는 이미 UE4 시절 가끔가다 언리얼4를 깔아서 찍먹도 해본 상태였다. 즉, 아무튼 '블루프린트'라는 방식 자체는 나중에 배워도 어렵지 않을 것 같아서, 일단 C++를 도전해보기로 했다. 먼저, C++로 언리얼 엔진 게임 개발을 어떻게 하는지 영상을 좀 찾아봤다. How To Make YOUR OWN Action RPG! | Unreal and C++ Tutorial, Part 1 (Basic RPG Stats and Elements) Intro to Unreal Engine C++ Tutorial 대충 어떻게 만드는지 처음부터 쭉 ..
(1) 레벨 디자인 연습중.. 시작용 콘텐츠를 가지고 레벨 디자인을 연습해보고 있다. 엄청 투박한 큐브만으로 뚝딱뚝딱 하고 있는거긴 한데, 시작용 콘텐츠에 포함된 머티리얼 애셋이 워낙에 퀄이 좋아서, 그냥 갖다만 써도 굉장히 그럴듯해 보인다. -_-ㅋㅋ 그런데 이제 건물을 하나 세우고, 문을 달아보고 싶은데... 어떻게 해야할지 감이 안잡힌다. (2) 텍스처 & 머티리얼 일단 무작정 문짝 텍스쳐를 구해본다. 대충 적당한 문짝을 하나 구했다. 그리고 큐브를 적당히 문짝처럼 만들어서 머티리얼을 넣어보았다. ... 그런데, 상,좌우의 하얀색 여백 때문에 상당히 거슬린다. 정면에서 보니까 이것이 더욱 더 두드러져보인다. (3) UV 오프셋 조정 일단 여기 TextureCoord 노드에서, 유니티처럼 UV Off..
(1) 서론 사실 이거도 이거인데.. C++ 개발 환경을 세팅하는거부터가 난관이었다. 유니티는 그냥 Visual Studio + Unity 3D 깔면 알아서 다 세팅되어서 그냥 쓰면 됐는데, 얘는 C++라서 그런건지... 엄청 신경쓰이게시리 Visual Studio 상에서 컴파일 에러가 나오고 난리난다. 결국 Rider 2022를 깔아버렸다. 요새 Rider가 Unreal Engine을 완벽히 지원하게 나왔다고 해서, 가지고 있던 Jetbrains 교육용 라이센스를 가지고 무료로 설치했다. 컴파일 에러가 안나니까, 싱글벙글 타이핑하고 컴파일을 돌리려는 찰나... 컴파일 에러가 나온다! -_- 이에 대한 컴파일 오류 해결에 대해서도 삽질이 시작되었다. [UE5] Live Coding 컴파일 fatal er..
'***' 파일을 열 수 없습니다. 라는 에러가 미친듯이 쏟아져 나온다. 아무것도 안했는데 이러니까 미치고 팔짝 뛸 노릇. 파일에 접근 권한이 없거나, 아니면 이미 해당 파일이 사용중일때 나오는 에러인건 이미 알고 있다. 근데 니가 여기서 이러면 안되지... 엄청나게 검색을 해댔다. 그리고 나온 해결책은 다음과 같다. (1) 첫 번째 해결책 컴파일 할 때는 UE5 에디터를 종료하라. (2) 두 번째 해결책 \Binaries\Win64 안에 있는 파일들을 모두 삭제하라. 일단, 첫 번째 해결책인 '컴파일 할 때는 UE5 에디터를 종료하라.' 는, 컴파일 할 때 마다 매번 에디터를 끄라는 소리인가? 로 들려서, 뭔가 썩 마음에 들지 않았다. 따라서, 두 번째 해결책을 먼저 시도해보기로 했다. 엥 -_- 삭제..
(1) 다음 작업? 벽면까지 텍스처를 칠하고, 맵 정중앙에 플레이어 스타트를 놓는 것으로 간단하게 맵 제작이 끝났다. 이제 뭘 할지를 생각해보다가, UI를 만들어 보면 어떨까 싶었다. 인벤토리 같은 복잡한 UI보다, 그냥 HP와 MP를 표시하는 정도의 HUD만 만들어보도록 해야겠다. UMG UI 디자이너 퀵스타트 가이드 | 언리얼 엔진 5.0 문서 (unrealengine.com) UMG UI 디자이너 퀵스타트 가이드 언리얼 엔진 4 에서 언리얼 모션 그래픽 사용 시작 안내입니다. docs.unrealengine.com 항상 느끼는거지만, 언리얼 엔진은 문서화 및 튜토리얼이 정말 잘 되어있다. 유니티하다가 언리얼 하니까 문서의 질차이가 확 느껴진다. 위 튜토리얼에서도 Health, Energy, Ammo..
(1) 문제 대충 언리얼엔진5 공부하면서, 작은 맵이나 하나 만들고 연습하려고 하는 중.. 바닥 텍스처가 너무 밋밋해서, 시작용 콘텐츠에서 적당한 텍스처를 골라서 바꿔봤는데.. 이게 웬걸.... 바닥에 꽉 차버렸다. 이건 너무 크다.. 진짜 타일처럼, 바닥에 작게 바둑판처럼 그려지는걸 원했는데. (2) ... 사실 이런거 할 때 항상 느끼는건데, 이런 건 도대체 키워드를 어떻게 잡아야 할 지 모르겠다. 일단 '구글 신'을 믿고, 생각나는 키워드를 검색어로 조진다. 나는 'unreal engine5 texture tiling' 이라고 검색했다. 그리고 뭔가 나랑 의미가 통할 것 같은 검색 결과를 발견했다. 내용을 확인하니, 다음과 같다. 디퓨즈의 UV 입력부에 TextureCoordinate 노드를 연결하..
마우스 왼클릭이 객체 선택으로 설정된 기준. (Blender3 기본값) 2022-11-07 기능 키 뷰포트 이동 휠클릭 + 마우스 이동 뷰포트 패닝 이동 Shift + 휠클릭 + 마우스 이동 시점 변경 단축키 넘버키패드 1, 3, 7, 9 시점 변경 파이 메뉴 ` (백쿼트) 객체 선택 마우스 왼클릭 Loop Select (같은 Loop 레벨을 선택함) Alt + 마우스 왼클릭 Box Select (파일 탐색기 처럼 드래그해서 선택하는 방식) B Circle Selection (클릭하고 문지르면 모두 선택함) C 따로 따로 선택 (윈도우 파일 탐색기의 Ctrl선택과 동일) Shift + 마우스 왼클릭 이동 G 회전 R 스케일 S 이동/회전/스케일 + 축 G/R/S + X/Y/Z 이동/회전/스케일 + 축 제..
1. State를 Square 각각에서 Board로 올리기. (1) Board의 state에 squares 배열 추가하기. class Board extends React.Component { constructor(props) { super(props); this.state = { squares: Array(9).fill(null), }; } } 먼저 이러한 형태로 만들라고 하고 있다. Board 컴포넌트의 state에 모든 Square의 상태를 저장할 것을 요구한다. 이전에 했던 대로, Board컴포넌트의 State에 들어갈 값을 미리 인터페이스로 정의하는 과정이 필요하다. type BoardStateElement = string | null; type BoardState = { squares: Arra..