유니티 카메라 배경 - yuniti kamela baegyeong

유니티에서 카메라 뷰에 스카이박스 배경 설정하기(skybox)

카메라에 스카이박스(skybox) 컴포넌트를 추가하여 카메라 뷰 배경을 설정하는 방법

1)유니티에서 스카이박스의 배경으로 설정한 텍스처를 가져오기한다(import)

2)texture shape에서 cube를 선택한다.

3)apply를 클릭하면 하단 미리보기에서 텍스처 맵핑 결과를 확인할수있다.

4)새로운 재질을 생성한다. 재질의 쉐이더로 skybox의 cubemap를 선택한다.

5)cubemap에 배경으로 사용할 텍스처를 설정한다.

6)스카이박스 배경을 설정할 카메라를 선택한다.

7)카메라의 clear flags가 스카이박스(skybox)로 설정되어있는지 확인한다.

8)카메라 오브젝트에 skybox 컴포넌트를 추가한다.

9)추가된 스카이박스의 custom skybox에 스카이박스 재질을 참조한다.

10)씬의 camera preview 또는 game view에서 개별 카메라 오브젝트의 스카이박스 배경이 설정된것을 확인할수있다.

연 잎 2021. 7. 14. 06:12

clear Flags : 여백을 어떻게 처리할건지 결정해줌

skybox(하늘)/soild color(단일 색상)/Depth only(투명배경)/Don't clear (이전 프레임을 지우지 않음 ->잔상이 남음)

이런식으로! 

그 예전에 크아에 움직일때 잔상이 남는 캐시 아이템이 있었는데 이름이 샤샤샥이었나.. 그거랑 비슷하다고 보면 될거같ㄷㅏ..ㅎㅎ

Background: 앞선 clear flag를 soild color로 선택할경우, 선택할 배경색상.

Culling Mask : 특정 레이어만 보여주고싶을때.

카메라에 보이고싶은 레이어를 모두 체크해주면됨.

Q.레이어설정은 어떻게?

Add Layer를 통해 Layer를 추가 시키는것도 가능하다!

Projection :원근감설정. perspective(원근감 o,3차원공간) /orthographic(원근감x.2차원 공간)

Field of View : 시야범위

Physical Camera : 실제 카메라 모델을 기반으로 카메라가 설정됨. 별로 쓸일 x

Clippong Plane :특정거리에 있는 걸 잘라냄.

near :최솟값 /Far:최댓값 

=>near ~Far 범위 내에 있는 것만 카메라에 그려냄

즉 ,near보다 작거나 Far보다 클경우 잘라냄.

ViewPort  Rect:찍고있는 카메라의 위치,크기 조정.

->이걸 이용해 화면을 분할해서 여러대의 카메라가 작동하도록 보여줄수 O

ex) 미니맵 만들때 활용가능.

x,y: 캠 위치조정

w(너비),h(높이):캠 크기 조정

Depth :카메라의 우선순위. 숫자가 클수록 맨위로 옴.

기본값 -1

두개의 카메라의 Depth값이 같을경우는 Hierarchy창에서 밑으로 갈수록 우선순위가 높아짐.

<Depth와 Depth only를 이용해서 가려진 object보이게하기> 

원래는 scene창에서 이런식으로 object를 배치해두면

cam에서는 plane에 가려져 보이지 않는다.

그러나 subcam 한대를 추가하고

main카메라와 겹치게 한다음.

capsule의 레이어를 지정해놓고 subcam에서 culling mask를 이용하여 그 레이어만 보이도록 한다음,

main캠보다 우선순위를 높게하면! 

plane에 가려져있던 capsule이 보이는 magic.

Rendering Path :

Target  Texsture:

Occlusion culling :카메라가 비추지 않는 부분은 rendering하지않음 (자원절약)

Allow HDR : 대비효과. 밝으면 더밝게 어두우면 더 어둡게.

Allow MSAA : Anti aliasing

높은 해상도의 신호를 낮은 해상도에서 나타낼 때 생기는 계단 현상(깨진 패턴)을 최소화하는 방법

Allow Dynamic Reso : 해상도낮춤. cpu부담을 줄임.

Target Display :듀얼모니터 활용시. 몇번째 모니터에 띄울것인지.

<특정 대상을 따라다니는 카메라 script>

using System.Collections; using System.Collections.Generic; using UnityEngine; public class FollowPlayer : MonoBehaviour { // Start is called before the first frame update [SerializeField] private GameObject go_Target; [SerializeField] private float speed; [SerializeField] Vector3 difValue; //플레이어와 캠과의 거리 void Start() { difValue = transform.position - go_Target.transform.position; //카메라위치-타겟위치 difValue = new Vector3(Mathf.Abs(difValue.x),Mathf.Abs(difValue.y), Mathf.Abs(difValue.z)); //음수가 나올수도 있으므로 절댓값 처리 } // Update is called once per frame void Update() { this.transform.position = Vector3.Lerp(this.transform.position, go_Target.transform.position + difValue, speed); } }

본 script를 카메라에 적용시키고, target를 초기화시켜주면  

speed값이 커질수록 카메라가 플레이어를 따라오는 속도가 빨라짐. 값을 너무 크게 주면 화면이 자연스럽지못하고 끊기는느낌.

이런식으로 플레이어를 따라오는 Cam 완성!

Toplist

최신 우편물

태그