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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

연 잎 2021. 7. 14. 06:12

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

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

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

유니티 카메라 배경 - yuniti kamela baegyeong
이런식으로! 

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

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

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

유니티 카메라 배경 - yuniti kamela baegyeong
카메라에 보이고싶은 레이어를 모두 체크해주면됨.

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

유니티 카메라 배경 - yuniti kamela baegyeong
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(높이):캠 크기 조정

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

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

기본값 -1

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

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

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

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

유니티 카메라 배경 - yuniti kamela baegyeong
cam에서는 plane에 가려져 보이지 않는다.

그러나 subcam 한대를 추가하고

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

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

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

유니티 카메라 배경 - yuniti kamela baegyeong
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를 초기화시켜주면  

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

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

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