위도우 메이커는 궁극기를 쓰면 벽 뒤에있는 적들의 실루엣을 볼 수 있다. 3D 게임에서 벽 뒤에있는 물체를 볼 수 없는 이유는 렌더링을 할 때 카메라와의 거리를 계산해서 더 가까이에 있는 물체를 그리기 때문이다. 너무 당연한 자연현상이지만, 이 자연의 법칙을 무시하고 벽을 투시하는 위도우 메이커의 시야를 디지털 세계에서 간접적으로 경험해보자. 벽 뒤에있는 물체를 화면에 그리기 위해서 Custom Depth라는 값을 사용할것이다. 3D 세상의 모든 물체들은 그것이 벽 뒤에있더라도, 좌표를 가지고있다. 그리고 엔진은 이 좌표들을 현재 카메라의 위치를 기준으로 계산하여 화면에 그리는데 이 때 카메라와 카메라에 보이는 물체(pixel) 사이의 거리를 Scene Depth라고 한다. 기본적으로 모든 물체는 Sce..
대부분의 게임에는 Save/Load 시스템이 있다. 로그라이크 장르처럼 세이브가 없는 게임도 있지만 그런 게임들도 클리어 횟수라던지 해금요소들이 저장되어 게임을 실행할 때마다 저장파일을 불러오기도 한다. UE4에서 게임을 어떻게 저장하는지 알아보자. 데이터를 저장하고 불러오는 등 단순한 기능은 blueprint로 구현할 수 있도록 되어있다. 물론 복잡한 저장데이터를 저장하거나 저장하고 불러올 때 특별한 처리를 해야한다면 c++코드가 필요할 수도 있지만 단순한 기능만 먼저 알아보자. SaveGame 기본적으로 SaveGame이라는 클래스의 인스턴스를 저장하고 불러온다. 이 SaveGame은 UObject 클래스로 blueprint로 만들 수 있다 사용자는 어떤 데이터를 저장할지 변수 형태로 추가하면 된다...
Masking Material에 대해 알아보자. 원하는 결과물을 정하고 그 결과가 나오도록 공부하면 이해하기가 쉬운데, 서서히 화면에서 사라지는 효과를 만들면서 기본적인 원리와 사용법에 대해 알아볼 수 있다. 기본적으로 제공되는 Material 종류중에 Traslucent를 사용하면 Opacity값을 조정해서 서서히 안보이게 할 수 있지만 이렇게 할 경우 Normal Map도 쓸 수 없고 Emissive Color밖에 못쓰기떄문에 별로인것 같다. 그래서 Masked Material을 사용하는데, 이 material을 선택하면 Opacity Mask라는 입력이 활성화되는것을 알 수 있다. 이건 어떤 값을 입력해야할까? 먼저 상수값을 입력해서 어떻게 보이는지 테스트해보자. 아 0.3부터는 안보이고 그보다 작..
Actor가 배치될 수 있는 최상위 오브젝트이다. World보다 하위 개념이지만 world에 최소한 1개의 Level이 존대하기 때문에 해당 world에 하나의 level만 있다면 같은 의미로 사용될 수도 있다. 새로운 world를 생성하는게 new world가 아니라 new level인것도 이 때문이다. world에 처음 생성된, 가장 상위 level을 Persistent Level이라고 한다. 항상 유지되기 때문에 전역으로 보여지는 환경을 배치하기에 적합하다. 예를들면 태양광원이나 대기효과 등이 Persistent Level에 추가하기에 적합한 actor들이라고 할 수 있다. world에는 여러개의 level이 존재할 수 있는데 각 level은 자기자신만의 Level Blueprint를 가지고 있기 ..
z-depth fog는 높이에 따라 안개를 생성하는 것으로 높은 건물, 깊은 지하를 표현할 때 사용할 수 있는 기법이다. 사진처럼 사선으로 바라보는 깊은 지하를 그리기 위해서는 생각보다 오브젝트의 크기가 커야되는데, 짧은 오브젝트의 바닥면이 보인다면 깊이감이 줄어들 것이다. z-depth fog를 적용시키면 오브젝트의 크기도 크지않게 만들고 깊이감도 줄 수 있다. 과정 Post Process Volume 사용한다. 에디터에서 월드에 Post Process Volume을 추가하고 unbound를 체크한다. volume의 크기에 상관없이 모든 world에 해당 process가 적용되도록 하는 옵션이다. content browser에서 material을 만든다. Material Domain을 Post Proc..
BlockGrid게임이 시작되면 블록을 생성하고 활성화된 볼록으로 score를 계산해서 화면에 표시하는 actor. headerScoreSizeBlockSpacingscore를 나타내거나 block의 간격을 설정할 수 있는 초기값.Size, BlockSpacing은 특히 에디터에서 편집할 수 있도록 UPROPERTY로 설정되었다. BeginPlay게임이 시작되고 actor가 활성화되면 가장 먼저 호출되는 초기화함수 AddScorescore수치를 변경시키도록 명령하는 함수 cpp블록 생성설정한 초기값을 바탕으로 블록을 생성하고 초기화한다. score 증가Score값을 1 증가시키고 text render component의 내용을 최신화한다. Block실제 마우스나 VR기기 같은 입력장치로 클릭할 수 있는 ..
개요언리얼 엔진으로 프로젝트를 생성하면 다양한 종류의 프로젝트를 쉽게 시작할 수 있도록 시작 프로젝트를 지원한다. 이번 포스팅에서는 퍼즐 시작프로젝트를 생성하고 내용을 보면서 공부해보자. 구성 요소프로젝트를 생성하면 화면에 기본적으로 놓여있는 actor들이 어떤 것들이 있는지 알아보자. Lighting과 RenderFX는 이 프로젝트와 직접적인 관계가 없는 actor들이므로 생략. Camera게임 화면을 촬영하는 카메라. 퍼즐 보드를 바라보고 있다.CubeMesh바닥을 표현하는 static mesh actorPuzzleBlockGrid기본 블럭들을 생성하고, 스코어를 나타내는 text render component가 포함된 actorTemplateLabelUI용 text render actorSkySph..
- Total
- Today
- Yesterday
- DesignPattern
- SwiftUI
- 국내여행
- rxswift
- C++
- 드라마
- 운영체제
- C/C++
- 알고리즘
- JSP
- database
- scala
- 자료구조
- SOCKET
- 데이터베이스
- Cocos2d-x
- 수학
- game
- OS
- machine learing
- Spring
- C
- mongoDB
- Git
- ue4
- ios
- SHADER
- Java
- winsock
- swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |