블로그 이미지
자신의 단점을 메꾸는 것을 단(鍛)이라 하고 자신의 강점을 갈고 닦는 것을 련(鍊)이라 하여, 두가지를 합친 것을 단련이라고 부른다. 붕대마음

카테고리

전체목록 (624)
참고사이트 (9)
Goal (3)
Travel (10)
My Life (86)
Game (36)
Game Review (7)
Game Plan (0)
Books (5)
English (1)
Optimizing (11)
Study (208)
유용한 것들_etc (44)
유용한 것들_func (20)
Unity (45)
Unreal (87)
작업장 (45)
RenderMonkey (6)
정리요망 (1)
따라잡기 시리즈 (0)
링크용 (0)
Total281,421
Today61
Yesterday65

책 제목 : 유니티로 게임을 만드는 10가지 방법

저자 : 가토 마사키

출판년도 : 2017-02-01




책의 구성은 초반에는 유니티 자체에 대한 이해를 돕기 위해 유니티에서 사용되는 용어들과

개념들, 그리고 유니티의 간단한 활용방법과 프로젝트 관리법에 대해 이야기 한다.

하지만 독자가 기본적으로 C#이나 JavaScript와 같은 언어에 익숙하다고 가정하며

게임 제작 실습에 목적을 두고 있는 책이기 때문에 다른 게임 프로그래머를 위한 책 처럼

3D API, 게임 리소스에 대한 이해, 기본 수학, 기본 물리, 엔진 설계에 대한 내용은 없으며,

게임 제작 실습을 위해 사용되는 유니티에 대한 간단한 설명을 제외 하고는 순수하게

게임제작 메카니즘에 대한 내용만을 다룬다.


책의 전반적인 내용은 일반적으로 많이 접하는 게임장르인 횡스크롤 클릭 액션 게임, 조각 그림 퍼즐 게임,

도트 던전 게임, 리듬 액션 게임, 레이싱 게임등의 기초 제작부분이다.

게임제작에 사용되는 리소스들을 다운받을 수 있어 책을 교재삼아 하나씩 따라 하다 보면

금방 간단한 게임이 만들어 진다.

게임을 만들기 전에 생각 노트처럼 만들려는 게임의 장르의 기본 규칙들을 나열하고,

그 규칙들로 인해 생기는 문제들과 이를 보완하기 위한 방법들을 정리한다.

마치 게임을 만들기 위한 아주 간단한 기획서와 같다.

이를 통해 독자는 게임을 만들기 위한 생각 전개 방식과 어떤 식으로 

생각들을 정리해서 제작으로 옮기는지에 대해 배울 수 있다.


책을 읽으면서 저자가 독자에게 제작 방법을 알기 쉽고 흥미롭게 설명하기 위해 

얼마나 많은 노력을 했는지, 중간중간에 나오는 개념설명들을 통해 알수 있다.

이해가 쉽게 글보다는 그림 설명들을 많이 추가되어 있어 책 읽기가 편하다.

다른 책과 같이 게임을 만드는 방식만 설명하는 것이 아니라 이 게임을 만들기 위해 어떤 식으로

게임규칙들을 세우는지, 그리고 그규칙들을 실제로 구현하는 방법들과 그에 따른 문제점들,

문제점들을 보완하기 위한 방법들을 생각노트처럼 적어둔 것이 인상적이었다.


이 책에서는 독자가 기본적으로 프로그래밍을 어느정도 할 수 있다고 가정하고, 

내용을 전개해 나가므로 유니티 프로그래밍에 무리가 없고 여러가지 게임 장르의

메카니즘을 알고자 하는 사람에게 좋은 지침서가 되어 줄 것이다.


책에대한 상세 내용이나 목차는 아래 링크에서 확인할 수 있다.

도서 상세 페이지 : http://www.hanbit.co.kr/store/books/look.php?p_code=B9496563101

예제를 받을 수 있는 책 웹사이트 : http://www.d3dcoder.net/



저작자 표시 비영리 변경 금지
신고
Posted by 붕대마음

1. 빈 프로젝트를 하나 만든다.

2. 스크립트를 하나 만든다.

3. 스크립트에 아래와 같이 AnimationCurve를 아래이름으로 만든다.

public class NewBehaviourScriptf : MonoBehaviour {


public AnimationCurve rgbUR_ = AnimationCurve.Linear(0, 0, 1, 1);

public AnimationCurve rgbVB_ = AnimationCurve.Linear(0, 0, 1, 1);

}

4. 인스펙터창 비교


위와 같이 두개의 속성값이 생기는데 위의 값을 변경하면 아래 값도 자동으로 바뀐다.

위의 값을 위와 같이 대충 바꿔주면

이렇게 아래값도 위의 값과 같이 바뀌었다.

하지만 아래값을 실제로 눌러보면 아래와 같이 정상적으로 표현된다.



머지 이현상은..

실제로 값도 정상적으로 반영된다. 단지 인스펙터창에서만 이상하게 보일 뿐.

변수 이름을 좀 바꾸면 괜찮던데 변수 이름을 저렇게 두면 이런 버그가 생긴다. 

테스트는 아무것도 없는 빈 프로젝트를 만들어서 스크립트를 생성해 위의 코드만 추가해서 테스트 하였다.


저작자 표시 비영리 변경 금지
신고

'Unity > Unity Study' 카테고리의 다른 글

Inspector에서 AnimationCurve 버그  (0) 2017.07.21
unity에서 shader를 짤때..  (0) 2017.07.10
ARB_precision_hint_fastest  (0) 2017.07.10
RenderQueue  (0) 2017.06.21
There are inconsistent line endings  (0) 2017.06.20
assetbundle building, change file  (0) 2017.06.03
Posted by 붕대마음

이전에 PC시절에는 HLSL을 사용했고 언렬3에서는 glsl을 사용했는데 유니티로 넘어와서는

처음에는 surface shader를 사용하다가 뭔가 찜찜하고 애매하고, 새 문법도 자주 까먹고,

내가 surface shader로 짜도 유니티가 vertex, fragment로 자동으로 변환해 주는데 이 과정도 없었으면 좋겠고 해서,

그냥 cg로 짜다보니 그냥 맘편히 계속 cg로 짜게 되었다.

다른 사람은 surface가 편하다고 하는데 나도 옛날 마인드인가 그냥 손에익은게 편한듯...


실제로 surface shader로 만들어진 shader 파일을 보면 인스펙터 창에 아래와 같이 generated code 버튼이 있다.

이 버튼을 누르면 자동으로 vertex, fragment shader로 변환된 코드를 보여준다.


surface shader를 사용하지 않고 vertex, fragment shader로 구현한 shader 파일은 아래와 같이 보인다.


surface shader는 실제 cg라기 보다는 unity 매크로로 이루어진 거라 cg로 한번 변환이 들어간다.

어차피 이 변환이 게임 성능이나 퍼포먼스에는 영향이 미치지 않겠지만 만들어준 코드를 보면

그냥 내가 내입맞대로 잘 짜는게 더 좋을것 같다.

그래도 surface shader는 입맛에 맞다면 나름 좋은 방식인 것 같다.

겉으로는 코드가 단순해지고 코딩 시간이 줄기 때문이다.


출처 : unity shader system


위 이미지는 cg/hlsl을 glsl로 변환하는 과정을 도식화 한 것이다.

cg로 shader를 짜면 이를 중간중간에 들어간 shaderlab 코드를 cg로 만들어 주고 이를 다시 hlsl로 만들어 준다.

그리고 다시 이를 glsl로 변환하고 최적화를 두번 해 준다.


여기서 드는 생각.

1. Cg랑 HLSL이랑 이 두 언어는 분명 다른언어인데 유니티는 왜 똑같이 취급할까?

간단하게 정리하자면 Cg랑 HLSL이랑 문법이 거의 똑같고 호환이 잘되서 걍 하나라고 말하는 듯 하다.

실제로는 Cg는 nvidia, hlsl은 microsoft거니까.. 자세히 알아보길 원한다면 아래 참고사이트를 보면 굳굳.

cg == hlsl or cg != hlsl

cg vs glsl 비교

셰이더 종류


2. 완벽하게 내입맛대로 유니티가 자동르로 바꾸는 구문없는 shader를 만들기 위해 glsl로 짜는게 좋을까?

유니티에서는 shader를 작성할 때 cg처럼 glsl도 가능하다.

CGPROGRAM 처럼 GLSLPROGRAM을 지원한다.

하지만 raw GLSL은 테스트 목적으로만 권장하며 특정 디바이스에 맞게 사용할 때만 사용해야 한다.

위의 이미지를 보면 cg/hlsl -> glsl의 변환은 지원을 하지만 glsl -> cg/hlsl의 변환은 지원하지 않는다.


유니티 도큐먼트를 보면..

"ShaderLab 내의 Shader들은 CG/HLSL 프로그래밍 언어로 작성되었다.

Cg와 Dx9-Styile HLSL 은 실제로 하나이고 같은 언어이며, 그래서 CG와 HLSL을 교대해서 쓸 수 있다.

(자세한 내용은 이곳을 참조하세요.)


Reference Link

- What would you choose to write unity shaders GLSL, HLSL/CG or Surface lang?

- unit doc, GLSL 쉐이더 프로그램

- unity doc, Shader Compilation for Multiple Platforms

- unity doc, Shading Language used in Unity

- unity shader system

- cg == hlsl or cg != hlsl

- cg vs glsl 비교

- 셰이더 종류

- Shader Compilation for Multiple Platforms

-

저작자 표시 비영리 변경 금지
신고

'Unity > Unity Study' 카테고리의 다른 글

Inspector에서 AnimationCurve 버그  (0) 2017.07.21
unity에서 shader를 짤때..  (0) 2017.07.10
ARB_precision_hint_fastest  (0) 2017.07.10
RenderQueue  (0) 2017.06.21
There are inconsistent line endings  (0) 2017.06.20
assetbundle building, change file  (0) 2017.06.03
Posted by 붕대마음

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

티스토리 툴바