행렬
- 선형변환
- 비례
- 회전
- 합성 S(비례행렬)R(회전행렬)T(이동행렬)
- 역행렬 (* 나중에 더 채워넣어야 함.*)
ㄴ 역행렬<무언갈 검출할 때 사용>
ㄴ 간단한 값의 역행렬은 행렬과 단위 행렬이라고 할 수 있지만
복잡한 행렬은 역행렬을 가진다. (거친다. -> 연산량 줄일 때)
ㄴ 웬만하면 필요 없을 것 같지만 역행렬이 있기 때문에
로컬 -> 월드 -> 뷰 -> 모니터에서 다시 역순으로 돌아갈 수 있다.
벡터
- 좌표계
ㄴ 왼손잡이(DX) - 엄지(Z) 위, 검지(X) 앞, 중지(Y) 오른쪽을 향함.
ㄴ 오른손잡이(OpenGL) - 엄지(Z) 위, 검지(X) 앞, 중지(Y) 왼쪽을 향함.
- 내적
ㄴ 계산식: A * B * cos(theta)
ㄴ 결과: 기준 벡터에 투영한 값.
- 외적
ㄴ 계산식: A x B * sin(theta)
ㄴ 결과: 두 벡터에 수직한 방향의 벡터
- 직교화
ㄴ 그람-슈미트 직교화
- 기본 단계;: w0 = v0 설정
- 입력 집합에서 벡터 Vi를 택하고, 그 벡터에서 이미 직교 벡터 집합에 들어 있는 다르벡터 (w0, w1 ... wi-1)들의 방향
으로의 부분을 빼서 그 벡터들과 직교가 되게 만들고, 그 결과를 직교벡터 집합에 추가한다. 이 과정을 집합의
모든 벡터가 직교가 될 때까지 반복한 후, 집합의 모든 벡터를 정규화한다.
▶ 언리얼 엔진
- 언리얼 엔진 파트
ㄴ 아트: 캐릭터, 배경, 액터 등을 제작하고 배치 + 레벨의 비주얼 작업
ㄴ 프로그래밍: 이외 나머지에 대한 처리를 구현
- 기본적으로 엔진을 잘 다룬다는 건 아트 + 프로그래밍 영역을 모두 소화 할 수 있다는 말
ㄴ 서로 상호보완적인 관계가 있지만 근본적으로 플밍을 잘해야 한다.
- 뷰포트 좌표계는 일반적으로 좌하단을 기준으로 랜더링한다.
ㄴ 엔진에서도 API가 들어가 있기 때문에 2D / 3D 구분없이 UI를 표현할 때는 API좌표계를 사용한다.
- DX3D (왼손) / OpenGL (오른손)
ㄴ DX3D: 결합 순서 (SRT)
ㄴ OpenGL: 결합 순서 (TRS)
ㆍ 언리얼 엔진
- 장점
ㄴ 멀티 플랫폼 지원
ㄴ 통합 개발 환경 지원
ㄴ 통합 에셋 관리 시스템 지원
ㄴ 스크립팅 시스템 지원 (런 / 에디터)
ㄴ 파티클 시스템 지원
ㄴ 2D 시스템 지원 (타일 맵, 페이어 2D)
ㄴ 렌더링 시스템 지원
ㄴ 셰이더 시스템 지원
ㄴ 사운드 시스템 지원
ㄴ 물리 시스템 지원
ㄴ 지형 시스템 지원
ㄴ 프로파일링 시스템 지원
ㄴ 마켓 플레이스 지원
ㄴ 애니메이션 시스템 지원 (레거시 / 블.스)
- 단점
ㄴ 무겁다.
ㄴ 입문 난이도가 높다.
ㄴ 개발 기간이 평균이상으로 책정되어야 한다.
ㄴ 원활한 개발을 위해서는 숙달된 프로그래머가 반드시 포함되어야 한다.
▶ 컴포넌트 프로그래밍?
- 상속 기반 프로그래밍에서의 단점을 극복하기 위해 나온 프로그래밍 방식
ㄴ 물체를 1개 이상 정의하고 그 물체의 기능을 확장해 나가는 식으로 작업을 하는 개념
ㄴ 컴포넌트 기반 프로그래밍은 기본적으로 덕 타이핑 개념으로 이해하면 될 것 같다.
◈ 덕 타이핑 (Duck Typing)
ㄴ 동적 타이핑의 한 종류
ㄴ 객체의 변수 및 메서드의 집합이 객체의 타입을 결정한다는 뜻
- 장점
ㄴ 유연하다.
ㄴ 유지보수가 아주 훌륭하다.
ㄴ 설계단계에서 비교적 수월하다.
- 단점
ㄴ 컴포넌트 기반으로 동작을 하기 때문에 이를 엮어줄 기능 / 로직이 반드시 필요하다.
ㄴ 엮어줄 기능 / 로직이 필요하기 때문에 필연적으로 퍼포먼스 측면에서는 떨어진다.
▷ 언리얼 엔진에서의 컴포넌트 기반 프로그래밍
- 언리얼 엔진인 컴테이너에 해당하는 게임 객체 (Actor>와 EngineCore 클래스를 통해 컴포넌트
방식을 제어하는 매커니즘을 구현 할 수 있다.
- 커스텀 스크립트 컴포넌트는 반드시 Engine / EngineCore / CoreMinimal 셋 중 1개를 반드시
받아야 언리얼 객체에서 지원하는 기능을 활용 할 수 있다.
config -> 프로젝트 설정값
content -> 에셋부터 모든 데이터가 들어가는 곳이 content
derivedDataCache -> 프로젝트가 크러시나고 실행이 안될 때 보는 파일
intermediate -> 임시 데이터 덩어리 파일지워 질 시 셰이더를 다시 함.
saved -> 오토 세이브 기능
Uproject -> 연결 되어 있는 모든 파일을 vs로 실행하고 반환
'Unreal' 카테고리의 다른 글
Unreal UI (0) | 2023.10.06 |
---|---|
Unreal 타임라인, 프렉쳐, 보간 (0) | 2023.10.05 |
Unreal 트랜스폼 (0) | 2023.09.27 |
Unreal 블루프린트 (0) | 2023.09.25 |
Unreal 시작 (0) | 2023.09.20 |