Featured image of post Global Light 제어 스크립트

Global Light 제어 스크립트

정확히 얘기하면 “Global Fake Light Control Script” 쯤 되려나요.
쉐이더에서 사용하는 각종 조합을 위한 색상값들을 유동적으로 조절할 수 있는 스크립트입니다.

사실은 삼품에서 사용하려고 만들었는데 …. 명조가 Self illumination 값을 0.5로 바꿨어 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
ㅋㅋㅋㅋㅋㅋㅋ 1이었잖아 ㅋㅋㅋㅋㅋㅋ 1일때에는 주변 라이트의 색상값 영향이 너무 적어서 캐릭터 혼자 튀는 경우가 생기기 때문에, 1을 유지할 생각이었으면 그 상태에서 맵에다가 색상값을 지정해 illumination에 저장해 주자라고 생각하고 있었는데 0.5로 바꾸니까 별 필요가 없게 되었습니다.
하지만 모르지요. 글로벌 라이트는 언젠가 쓰일 수 있는 녀석이기 때문에 만들어 두는게 좋습니다.
특히 AT2 의 캐릭터 쉐이더를 위해서는 꼭 만들어져야 하는 스크립트입니다.

개념은 이런 개념이지요.
따로 설명하기 보다 이걸 보는게 편리하겠네요.

테라에서 사용된 환경광 기법.

여기서는 IBL (이미지 기반 라이팅) 기법을 사용했습니다만, 저희는 그것보다 좀 더 심플한 Hemosphere Light (반구조명) 기법을 이용했습죠. 덕분에 각 맵마다 필요한 값은 상/하 2개의 색상. 물론 우리도 수작업은 필수입니다.

즉 이 스크립트가 없었을 때에는, 캐릭터 제작할때 셋팅해 놓은 반구조명 색상이 그대로 적용되었기 때문에, 어떤 배경에 가더라도 같은 느낌의 색상만 난다는 문제가 있었습니다.

예를 들어 이런거나

이런 것처럼

파란 하늘도 아닌데 파란 하늘이 느껴지는 라이팅 설정들이 생긴다는 거지요. 처음 설정이 푸르샤프라 지방에서 맞춰놓은 설정이라서 말이지요.

그래서 두 개의 스크립트가 제작되었습니다.

하나는 _GameManager 안에 컴포넌트로 넣어져 있으며, 이름은 Ts Scene Ambient Color 입니다.
이건 맵마다의 글로벌 라이트 설정을 제어하는 메니져이지요.

 그리고 또하나는 Ts Global Light Color 스크립트로, 이것은 캐릭터를 넣으실 때 각 파츠마다 컴포넌트로 삽입시켜 주셔야 합니다. 이것은 Ts Scene Ambient Color  에서 지정한 색상을 , 여기 있는 쉐이더의 색상에 대입시켜주도록 연결시켜주는 스크립트입니다. Ts Scene Ambient Color 는 이미 들어가 있으므로, 캐릭터를 제작하실때 Ts Global Light Color 스크립트만 넣어주시면 됩니다.

(혹은 글로벌 라이트 효과로부터 독립해서 만들고 싶으시면 이 스크립트를 안 넣으시면 됩니다)

이렇게 만들어 놓고 플레이를 누르면,

미리 설정해놓았던 쉐이더의 칼라값은 무시되고 ,맵의 루트에 있는 게임 메니져의 Ts Scene Ambient Color에 의해 칼라값이 제어받게 됩니다. 

즉 처음 실행하면 초기값이 검은색/ 검은색 이기 때문에 이렇게 됩니다. 
여기서 맵에 알맞은 색상을 등록해 놓으면

맵별로 어울리는 칼라로 셋팅해 놓으면, 연결된 쉐이더들의 색상이 자동으로 바뀌므로 맵에 어울리는 칼라로 자동으로 변하게 됩니다.
물론 필요하면 삼품에서도 사용할 수 있으며, 현재 AT2에 커밋되어 있습니다.
일단 맵별로 대충 칼라는 제가 다 잡아놨구요. 빼먹은거나 새로 제작되는 맵에는 만들어 주시면 되겠습니다.

글만 보고는 조금 어려우므로 자세한 사용법은 문의!

ps. 현재는 작업의 편의성을 위해 실시간 수정을 열어놓았는데요, 나중에는 최적화를 위해 실시간 수정을 막겠습니다.
스페셜 땡스 투 조명근 스승님

Hugo로 만듦
JimmyStack 테마 사용 중