목차
게임에 필요한 상식
25.04.02
새 프로젝트 생성
- Editor Version : 2022.3.60f1
- Template : 3D (Built-In Render Pipeline)
- Unity Cloud 연결 해제
- Project Name : 3d-game-project
Knoll
>> Knoll에 사용될 Material을 생성하고 적용
: Knoll Body
>> 그 외 Material의 세부 설정
--> 원래는 Metallic과 Smoothness에 같이 적용되지만, Knoll이 URP 용으로 만들어진 소스라 Smoothness는 남아있음
>> Knoll Parts와 Tree도 생성하여 적용
1. Knoll Parts
: Equip과 Metal 둘다 KnollParts Material 적용
--> 강사님은 따로 'KnollMetal'이라는 이름으로 Material을 만들어서 KnollMetal을 'Gnoll Metal'에 적용하심
--> Knoll의 PosY를 0.7로 설정하면 Tree 위에 올라간다
2. Tree
Environment Lighting (환경광) 설정
--> 나온 Lighting 창을 Inspector 옆에 붙임
※ Light가 적용되지 않던 문제 해결
: 이렇게 설정하면 Scene 상에서도 아예 까맣게 돼야하는데 빛이 남아있었고 기본적으로 Plane도 흰색으로 설정했지만 푸르스름하게 보였다.
--> 아래 사진과 같이 전구 모양을 클릭하여 On 시켜주니 해결
>> Point Light 생성
--> 내 임의로 Position과 Color 조정
Animation
: Animator Controller 만들고 바인딩 --> 이름은 'KnollAnimatorController'
>> 'KnollAnimatorController'를 열어서 Animation 넣기
: 먼저 Animation에 Loop 적용
--> breath와 walk 둘다 적용
Baked Lighting
: Baking하기 위해 Lighting Settings 생성 --> 따로 Settings 폴더를 만든 뒤, 폴더를 선택한 다음 생성
--> 기본적으로 Baking 하는데 시간이 오래 걸리기 때문에 왼쪽과 같이 설정하여 간단하게 테스트
--> 오른쪽은 Baked Data 삭제하는 방법
>> Directional Light 조정
└ Static한 Object에 대한 Baking
>> 박스 만들기
: Cube를 활용하여 만들고, 빈 게임 오브젝트로 'Cubes'를 만들어 묶은 다음 Cubes를 Static으로 바꿔서 자식들 모두 Static으로 변경 --> 이후 Baking
1. Cube들 수치
--> 수업 때 맞춘 수치를 다 날려서 다시 임의로 만듦
2. Static 변경
※ Baking이 오래 걸리니 추가로 Resolution 조정
>> Material을 통해 색이 다른 두 Sphere를 만들고 Baking
--> RedSphere는 PosX가 2
>> 큰 Sphere 하나를 만들고 Spot Light를 활용
--> Sphere는 수업 때 맞춘 수치를 다 날려서 다시 임의로 만듦
--> 이후 Baking
>> Area Light
: Area Light는 Bake Only이다.
--> 색상은 임의로 설정, 이후 Baking
>> Area Light로 꾸미기
: Left Area Light는 PosX가 5, RotationY가 -90, Color가 (0, 0, 255, 255)
--> Indirect Multiplier를 늘리면 주변광이 더 늘어난다
>> Sphere가 빛을 반사하도록
: Sphere의 Material을 조정 --> Metallic, Smoothness
>> Reflection Probe
: 주변 환경을 반사하는 반사 이미지를 저장해둔다. --> 주변 환경을 미리 렌더링하여 이미지로 저장해두고, 동적 오브젝트가 리플렉션 프로브의 영역에 들어오면 반사 이미지를 스카이박스 대신 리플렉션 프로브의 이미지로 대체한다.
https://docs.unity3d.com/kr/2019.4/Manual/class-ReflectionProbe.html
반사 프로브 - Unity 매뉴얼
Reflection Probe 는 주변의 스피리컬 뷰를 모든 방향에서 캡처하는 카메라와 유사합니다. 캡처된 이미지는 반사 머티리얼이 있는 오브젝트에서 사용할 수 있는 Cubemap으로 저장됩니다. 특정 씬에는
docs.unity3d.com
>> 생성 후 세팅
--> 왼쪽 사진은 Reflection Probe 자체의 위치, 오른쪽 사진은 Reflection Probe가 반사 이미지를 대체할 Object의 위치
>> Baking 결과물
└ 움직이는 Object에 대한 Baking
>> Directional Light 설정
※ 놓친 Lighting 설정
>> Sphere, Reflection Probe를 삭제하고 Capsule 생성
--> 수업 때 맞춘 수치를 다 날려서 다시 임의로 만듦
>> Light Probe Group 생성
: 라이트 프로브는 라이트맵처럼 빛을 저장해 두었다가 런타임상에서 동적 오브젝트에 반영해줄 수 있는 기능
--> 라이트 프로브는 라이팅 지나가는 빈 공간의 지점을 저장해두었다가 그 공간에 들어온 동적 오브젝트에 라이팅을 반영합니다. 주변의 라이팅 결과를 미리 인코딩하여 저장해놓으며, 런타임상에서 디코딩하여 사용합니다. 미리 연산된 정보를 사용하기 때문에 실시간 라이팅보다는 훨씬 저렴한 비용으로 라이팅을 보강해줄 수 있습니다.
>> 아래 사진을 보면 Capsule의 그림자가 기존 그림자와 부자연스럽게 겹쳐있기에 이를 해결하기 위함
>> Light Probe Group Editing
: Gizmo를 눌러서 평면으로 앞, 옆을 보면서 하면 편함
--> 정면과 측면 수정
--> 2칸을 더 만들어서 3칸이 됐으면 다시 한번 3~5번을 반복하여 한 줄을 꽉 채우기
※ 예시 사진
: 복습하며 다시 만든거라 차이가 있음
>> 완성된 모습
>> Lighting 설정 변경
>> 최종 결과
: 그림자가 자연스럽게 섞여있다.
※ Baking 결과물이 너무 쨍한 것 수정
: Left도 동일하게 수정
--> 이후 다시 Baking
※ Model 내에서 자체적으로 Scale 수정 가능
좌표계
>> 교안
- 게임에 필요한 수학 상식
https://spice-theory-152.notion.site/1c4d3cfdca3480f0b2cef91667339361?pvs=73
게임에 필요한 수학 상식 | Notion
좌표계
spice-theory-152.notion.site
- 게임에 필요한 물리 엔진
https://spice-theory-152.notion.site/1c3d3cfdca348009bef4e5c65d090cbd
게임에 필요한 물리 엔진 | Notion
물리 엔진이 필요한 이유
spice-theory-152.notion.site
>> 좌표계 실습을 위한 사전 작업
1. Capsule을 생성
: Material도 만들어 적용한 다음 임의로 색상 변경, PosY를 1로 변경
2. Capsule의 자식으로 Cube 생성 후 위치 조정
3. 빈 게임 오브젝트로 'Player'를 만들고 Capsule을 그 자식으로 이동
: 이후 Player를 Prefab화하고 Position 변경
4. Player를 복사하여 'Enemy' 생성
: Player와 Enemy의 구분을 위해 'Capsule' Material을 복붙하여 각각 'CapsulePlayer', 'CapsuleEnemy'로 만들고 색상을 임의로 변경, Position 변경
5. Plane을 만들고 기존에 있던 'Plane' Material 적용 후, Material 조정
: 색상은 임의로 설정 (39, 39, 39, 255)
└ 좌표계 종류
- 스크린 좌표계
- 뷰포트 좌표계
- 데카르트 좌표계
- 극 좌표계
- 구면 좌표계
>> Exam01.cs 생성
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Exam01 : MonoBehaviour
{
private void Start()
{
Vector3 a = new Vector3(3, 0, 4);
Vector3 b = new Vector3(-2, 0, 2);
Vector3 c = a + b;
}
}
'Development > C#' 카테고리의 다른 글
멋쟁이사자처럼부트캠프 Unity 게임 개발 3기 89일차 (0) | 2025.04.04 |
---|---|
멋쟁이사자처럼부트캠프 Unity 게임 개발 3기 88일차 (0) | 2025.04.03 |
멋쟁이사자처럼부트캠프 Unity 게임 개발 3기 79, 80일차 (0) | 2025.03.21 |
멋쟁이사자처럼부트캠프 Unity 게임 개발 3기 78일차 (0) | 2025.03.20 |
멋쟁이사자처럼부트캠프 Unity 게임 개발 3기 77일차 (0) | 2025.03.19 |