📘 TIL – Unity 강의 정리 (Light, AnimationCurve)
🔦 Light
**라이트(Light)**는 게임 혹은 3D 렌더링에서 씬에 광원을 추가하는 데 사용되는 요소로, 씬 내 오브젝트의 조명 효과 및 그림자 표현에 중요한 역할을 한다.
✅ 주요 라이트 유형
- 점 광원 (Point Light)
한 지점을 기준으로 모든 방향으로 빛을 발산하는 광원. - 방향성 라이트 (Directional Light)
멀리서 오는 평행한 광선을 나타내며, 주로 태양빛처럼 한 방향으로 빛을 쏘는 데 사용됨. - 스포트라이트 (Spot Light)
특정 지점에서 원뿔 형태로 빛을 쏘는 광원. 손전등이나 스테이지 조명에 적합. - 면 광원 (Area Light)
일정 면적(사각형)의 한 면에서 균일하게 빛을 발산. 리얼리즘이 중요할 때 사용되며 성능 부담이 큼 (렌더링 비용이 크므로 주로 베이킹용).
✅ 라이트 속성
- 위치 (position)
- 방향 (direction)
- 강도 (intensity)
- 색상 (color)
- 범위 (range)
- 각도 (angle)
✅ 그림자
- 라이트가 오브젝트에 닿을 때, 그 뒤쪽에 그림자가 생긴다.
- 그림자를 사용할수록 성능에 영향이 큼 → 최적화 필요.
✅ 성능 관련 요소
- 라이트는 렌더링에 부담을 주는 요소이며, 특히 실시간 그림자는 성능 저하의 주범이 될 수 있음.
- 효율적인 광원 사용 및 베이크 처리로 성능 최적화 필요.
✅ 주요 설정값
- Lighting Intensity Multiplier: 전체 광원의 밝기를 조정.
- Reflecting Intensity Multiplier: 반사되는 빛의 강도 조정.
🎞️ AnimationCurve
**AnimationCurve**는 시간에 따른 값을 키프레임 기반으로 보간(interpolation)해주는 Unity 클래스이다. 움직임, 크기, 회전 등 다양한 속성의 변화에 활용 가능하다.
✅ 구성 요소
- 키프레임 (Keyframe):
시간(t)과 그에 대응하는 값(value)으로 구성된 점. - 보간 방식 (Interpolation Mode):
키프레임 간의 값 변화를 정의하는 방식 (기본적으로 부드러운 곡선(Cubic Bezier)).
✅ 주요 메서드 및 사용법
csharp
복사편집
using UnityEngine; public class ExampleScript : MonoBehaviour { private AnimationCurve curve; private void Start() { // 새 커브 생성 및 키 추가 curve = new AnimationCurve(); curve.AddKey(0f, 0f); curve.AddKey(1f, 1f); } private void Update() { // 시간에 따른 값을 평가 (보간) float time = Time.time; float value = curve.Evaluate(time); Debug.Log("Time: " + time + ", Value: " + value); } }
- AddKey(time, value): 새로운 키프레임 추가
- Evaluate(time): 해당 시간에 대한 보간된 값 반환
- keys: 전체 키프레임 배열에 접근 (수정, 삭제 가능)
✅ 사용 예시
- 오브젝트 움직임 패턴 제어
- 애니메이션 속도 변화
- 점프나 대미지 그래프 조정 등 다양한 게임 메커니즘에 활용
✍️ 느낀 점
- 라이트의 종류와 특성을 이해하면, 보다 현실감 있는 씬 연출이 가능하다는 걸 배움.
- AnimationCurve는 단순한 애니메이션 이상의 기능을 제공해, 시간에 따른 값 제어를 정교하게 할 수 있어 매우 유용하다는 것을 느낌.
- 라이트와 커브 모두 성능과 직결되기 때문에, 연출과 최적화의 균형이 중요함을 인지함.
'[내일배움캠프 Unity 9기]' 카테고리의 다른 글
| 05/21 TIL (0) | 2025.05.21 |
|---|---|
| 05/20 트러블 슈팅 및 개인 과제 시작 (1) | 2025.05.20 |
| 05/16 TIL - 유니티 프로젝트 숙련 강의 수강 (1) | 2025.05.16 |
| 05/15 TIL 프로젝트 마무리 및 Unity 실전 팁 (0) | 2025.05.15 |
| 05/14 TIL - 람다식 클로저, RigidBody 없는 Collider의 트리거 (0) | 2025.05.14 |