블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
 
KinsgTool을 쓰면서 자주 쓰는 DoxyGen 주석을 적어논다.
쓰다보면 더 늘어날것도 같지만 우선 아래 몇가지는 종종 쓸거 같다.
필요할경우 적절히 수정해서 사용하면 된다.

Mainpage 설명용

/**

* \mainpage

KingsTool 사용 예제

* \section intro

소개

* : Kingstool을 사용하는 방법

* \section Program

프로그램 설명

* : KingsTool로 문서화 되는 모습을 보이기위한 간단한 프로그램

* \section CREATEINFO

작성정보

* 만든이 : ItsMe \n

* 작성일 : 2008-09-09

* \section MODIFYINFO

수정내역

* 수정자 / 수정일 : 수정내역등 \n

* ItsMe / 08.09.09 : KingsTool 사용방법 테스트 클래스 추가

*/

파일목록을 만들시
(
파일 상단에 위치시킨다.)

/**

* \file Animal.h

* \date 2008/9/9

* \author ItsMe

* \brief 테스트일겁니다.

*/

Class에 사용시
(
클래스 상단에 사용)


/**
* \date 2008-09-09
* \author ItsMe
* \brief
강아지에 대하여 나타내는 Class
*/
class CDog : public CAnimal

함수에 사용시
(
함수 상단에 사용)


/**

* \param 설정할 강아지타입
* \return
성공여부

*/
///
강아지 종류 설정bool SetDogType(int iSetDogType){

enum을 나타낼시
(
위치는 아무데나 상관없으나,
파일목록을 만드는주석 밑에 위치하는게 보기에 편할 듯 싶다.)


/**
* \enum CDog::DogType
* \brief enum
설명
*/

Enum 세부주석


class CDog : public CAnimal{
enum {
DOGTYPE_BEAGLE = 0, ///<
종류 : 비글



반응형

'Utility > Doxygen' 카테고리의 다른 글

[삽질] KingsTools 함수등 정보가 안보일 때..  (0) 2012.06.12
KingsTools VS2008 버전  (0) 2011.01.21
Posted by blueasa
, |

철권6 리리 기술표

Game / 2011. 6. 17. 02:50
반응형
Posted by blueasa
, |

JSON

Etc / 2011. 6. 16. 01:17

JSON(제이썬JavaScript Object Notation)은, 인터넷에서 자료를 주고받을 때 그 자료를 표현하는 방법이다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는 데 적합하다.

그 형식은 자바스크립트의 구문 형식을 따르지만, 프로그래밍 언어나 플랫폼에 독립적이므로 CC++C#자바자바스크립트,파이썬 등 많은 언어에서 이용할 수 있다.

RFC 4627로 규격화되었다.

목차

 [숨기기]

[편집]문법

JSON 문법은 자바스크립트 표준인 ECMA-262 3판의 객체 문법에 바탕을 두며, 인코딩은 유니코드로 한다. 표현할 수 있는 자료형에는 수, 문자열, 참/거짓이 있고, 또 배열과 객체도 표현할 수 있다.

배열은 대괄호로 나타낸다. 배열의 각 요소는 기본자료형이거나 배열, 객체이다.

 [10, {"v": 20}, [30, "마흔"]]

객체는 이름/값 쌍의 집합으로, 중괄호로 싼다. 이름은 문자열이기 때문에 반드시 따옴표를 하며, 값은 기본자료형이거나 배열, 객체이다. 각 쌍이 나오는 순서는 의미가 없다.

 {"name2": 50, "name3": "값3", "name1": true}

아래와 같이 이름에 따옴표를 쓰지 않아도 상관 없지만, 쓰는 편이 문자열과 숫자를 구분하기 좋다.

  {name2: 50, name3: "값3", name1: true}

JSON 메시지 단위는 배열이나 객체이다. 위의 두 예는 JSON 메시지가 될 수 있다.

[편집]예제

다음은 한 사람에 관한 정보를 갖는 JSON 객체이다.

 {
    "이름": "테스트",
    "나이": 25,
    "성별": "여",
    "기혼": true,
    "주소": "서울특별시 양천구 목동",
    "특기": ["농구", "도술"],
    "가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"}
    "회사": "경기 안양시 만안구 안양7동"
 }

[편집]장점

  • JSON은 텍스트로 이루어져 있으므로, 사람과 기계 모두 읽고 쓰기 쉽다.
  • 프로그래밍 언어와 플랫폼에 독립적이므로, 서로 다른 시스템간에 객체를 교환하기에 좋다.
  • 자바스크립트의 문법을 채용했기 때문에, 자바스크립트에서 eval 명령으로 곧바로 사용할 수 있다. 이런 특성은 자바스크립트를 자주 사용하는 웹 환경에서 유리하다. 그러나 실질적으로 eval 명령을 사용하면 외부에서 악성 코드가 유입될 수 있다.모질라 파이어폭스 3.5, 인터넷 익스플로러 8, 오페라 10.5, 사파리구글 크롬 등 대부분의 최신 웹 브라우저는 JSON 전용 파서 기능을 내장하고 있으므로 이런 기능을 사용하는 것이 더 안전할 뿐만 아니라 빠른 방법이다.

[편집]바깥 고리

반응형
Posted by blueasa
, |

소프트 파티클은 들인 노력과 비용에 비해서 큰 시각적 효과를 볼 수 있는 방법인 것 같다. 최근 엔진을 Deferred 시스템으로 엔진을 바꾸면서 소프트 파티클을 사용 하기가 쉬웠다( 비단 soft particle뿐 아니라 DOF, SSAO등 깊이 버퍼가 필요한 놈들은 죄다 ㅎㅎ).

연기나 불 등 여러개의 파티클을 사용하는 이펙트들이 오브젝트와 겹치면 좌측 이미지처럼 경계가 날카롭게 나타난다. 소프트 파티클은 이 칼같이 나타나는 경계를 우측처럼 스무스하게 바꿔 주는 것이 기본 목표이다.

알고리즘도 간단하다. PS단에서 파티클 깊이(카메라로부터의 거리)와 뒷 오브젝트의 깊이가 근접할 수록 알파를 더 빼주는 것이다.

더 빼주는 알파 값 D = saturate(( Z object - Z particle) * scale)

단, 그림과 같이 단순하게 위의 수식으로만으로는 덜 자연스럽게 페이드 아웃이 되어 엣지가 존재하기 떄문에 pow()를 걸어주어 좀 더 자연스러운 페이드 아웃이 되게 한다.

당연한 소리가 되겠지만 파티클의 깊이 정렬이 되어 있어야 자연스러운 모습이 나올 것이다. Volumetric Particles니 뭐니 해서 좀 더 귀찮게 하던데, 큰 시각적 차이도 없어 보이고 소팅만 제대로 되어 있으면 굳이 그렇게 까지 할 필요는 없어 보인다.

이 글을 당신 역시 언능 해보시라~ 야구동영상 볼 시간 조금만 아끼면 금방 해보거늘!!!
반응형

'Gamebryo > Shader' 카테고리의 다른 글

알파블렌딩 렌더 설정  (0) 2011.07.22
알파 텍스쳐 블렌딩 공식  (0) 2011.07.22
쉐이더  (0) 2011.04.04
HDR  (0) 2011.04.04
겜브리오 쉐이더 제작시 주의사항  (0) 2011.04.04
Posted by blueasa
, |

부산역 앞

Memories / 2011. 6. 11. 13:38



부산에서 KTX로 올라오는데 오랜만에 부산역 갔더니 공개된 분수시설..

애들이 분수속에서 시원하게 잘놀고있고..

무지개도 보이길래 한 컷..
반응형

'Memories' 카테고리의 다른 글

고메~ 빼때기죽~  (1) 2012.01.25
잘피(말잘피)  (1) 2012.01.08
시골갔다가 찍어온 인동  (0) 2011.06.11
으름  (0) 2011.02.12
남해/금남호/창선-삼천포 대교  (0) 2011.02.12
Posted by blueasa
, |



오랜만에 시골갔다가 보이길래 반가워서 찍어왔다.

어릴땐 이 꽃 피면 따서 꽃 뒤를 쪽쪽~ 빨아 먹었었는데..

꿀이 들어있어서 학교 걸어다니면서 보이면 빨아먹고 했었던 기억이..

6월초니깐..찔레순도 많이 따먹었는데..

오랜세월이 지났지만 아직도 이 꽃 이름은 모르네.. 



[추가]

우연히 1박 2일을 보다가 꽃이름을 알게 됐다. [인동] 이란 꽃이름..
 
흰색과 노란색 두가지가 따로 피는 줄 알았는데..

흰 꽃이 노란색으로 변하는 거였다니.. -ㅅ-;;

인동 정보 백과사전 링크 : http://dbplus.naver.com/dbplus.naver?where=plant&pkgid=200912071&query=%EC%9D%B8%EB%8F%99%EC%B4%88&id=000000054476 
반응형

'Memories' 카테고리의 다른 글

잘피(말잘피)  (1) 2012.01.08
부산역 앞  (0) 2011.06.11
으름  (0) 2011.02.12
남해/금남호/창선-삼천포 대교  (0) 2011.02.12
삐비  (0) 2011.02.12
Posted by blueasa
, |

체인 라이트닝 참 재미있는 이펙트이다.

 

MMORPG 에서 사용되는 대부분의 이펙트는 공격자->발사체->피격자 의 형태에 맞아 들어가는데

 

체인라이트닝은 이러한 구조가 여러가 엮어져 있는 형태이다.

 

 

 

 

100% 코드로 하기도 애매하고,

 

그렇다고 디자이너가 만들기도 애매한데,

 

결국 코드와 디자인을 반씩 섞어서 만드는 대표적인 이펙트가 "체인 라이트닝" 이펙트이다.

 

워크래프트3 와 와우를 보고서는 체인라이트닝 집어넣자고 기획자가 하루가 멀다하고 징징거린다.

 

참으로 큰일이지만 다른게임에서 되는거 안된다고 하기에는 내가 너무 무능해 보인다.

 

 

1) 첫 시도 -> 코드로 100% 생성을 시도하다.

 

체인라이트닝의 저러한 연출을 디자이너가 하기는 힘들다고 생각하고

코드로 연동하는것이 좋다고 생각했다.

 

게임 엔티티와 연동하는 저런 부분을 3dsMAX 에서 처리하기는 매우 힘들다고 생각했기 때문이다.

 

그래서 체인라이트닝의 번개부분을 노이즈함수 코드를 분석하면서 만들었는데

 

결과는 처참했다.

 

그냥 습작으로는 쓸만했지만 게임상에서 쓸만한 퀄리티가 아니였다.

 

솔직하게 말해서 프로그래머가 3dsMAX 로 번개를 만들어도 퀄리티가 엉망일텐데,

 

코드로 SetPosition 하면서 만든 번개가 퀄리티가 좋을리 없었다.

 

결국 코드로 100% 생성한 체인 라이트닝인 폐기 되었다.

 

 

2) 2차 시도, 체인라이트닝을 생각해보자.

체인 라이트닝 이펙트 자체를 분석하면서

 

체인라이트닝에서 실질적으로 연동해야 하는 부분은

결국 A->B->C->D 로 개별 장거리공격이 연장되는 요소밖에 없다는것을 알게 되었다.

 

그렇다면 개별요소 A->B, B->C, C->D 로 가는 개별 이펙트 자체는

얼마든지 맥스에서 제작할수 있었다.

 

맥스에서 체인라이트닝의 한토막만 만들고 코드로는 연결시키는것이다.

 

 

 

체인라이트닝의 애니메이션은 3부분으로 구성된다.

 

팽창기 : 번개가 공격자에서 피격자로 팽창하는 부분.

지속시간 : 번개가 지글지글 거리는 부분

수축기 : 번개가 공격자부분에서 소멸하기 시작하여 소멸하는 부분.

 

 

문제는 지금까지의 이펙트 렌더링 모듈이 키프레임 애니메이션밖에 지원하지 않아서

번개의 표현하기 위해서는 VertexAnimation 과 텍스춰 애니메이션을 추가로 지원해야 했다.

 

다른게 아니라, 디자이너가 번개를 표현하기 위해서는 맥스에 있는

Noise Modifier 를 반드시 사용해야 하는데 이를 추출할 방법이 VertexAnimation 밖에 없었다.

 

 

 

몇가지 문제가 있었다.

 

맥스에서 만든것을 단지 단순하게 공격자->피격자 거리에 따라서

늘려주기만 할뿐이니 거리에 따라서 이펙트가 왜곡되는 문제도 있었다.

 

이를 해결하는 꽁수 비슷한 방법으로

거리에 따라서 아예 이펙트를 3벌 만들었다.

 

근거리/중거리/원거리 이렇게 미리 이펙트를 3벌 만들어서 거리에 따라서

가장 비슷한 형태의 이펙트를 공격자->피격자를 연결하는데 사용했다.

 

물론 이러한 문제는 이펙트를 "코딩" 으로 제작했다면 발생하지 않는 문제이다.

하지만 "코드" 로는 디자이너의 섬세한 디자인역시 기대할수 없다는 점이 문제이다.

 

결국 맥스로 만든 이펙트를 여러벌 들고 있는것으로 타협을 보았다.

 

체인 라이트닝 이펙트는 좀 "랜덤"스러운 맛이 있어야 하는데,

 

이 부분역시 그냥 이펙트를 여러벌 들고 있는것으로 해결했다.

실제로 체인 라이트닝 이펙트는 거리당 3개, 랜덤속성을 묘사하기 위해서 추가로 3벌씩

도합 3*3 = 9 개의 이펙트가 존재했다.

 

실제로 체인라이트닝이라는 이펙트 하나를 만들기 위해서 상당한양의 리소스가 소비되었지만

그만한 가치는 있다고 판단한다.

 

내가 과연 옳은 방향으로 해결한것일까?

 

이펙트 제작에 있어서 모범 해답은 없다.

결과를 만드는것 자체가 빠듯한 상황에서 모범해답까지 찾을 사치까지 누리고 싶지는 않다.

 

글로는 한방에 스윽하고 적었지만, 게임에서 쓸수 있는 상태의 "체인라이트닝" 을 만들기 위해서

"한달" 동안 디자이너와 삽질을 해야했다.

 

디자이너가 맥스파일을 넘기면 시험삼아서 적용해보고 수정요청하고 다시 코드수정하고

맥스파일 다시 수정요청하고, 이런식으로 10번정도 반복하면 되는데,

 

아무 체계도 없는 막막한 상황에서 삽질로 하나씩 하나씩 완성하는것이니.

디자이너 입장에서도 고역이다.

 

"체인라이트닝" 한번 만들더니 "이펙트 담당할사람 따로 뽑아라" 라고 파업선언을 하더니

더이상 이펙트작업을 하지 않았다.

애니메이터에게 이펙트작업을 시킨것부터가 약간은 무리수가 있었지만 빠듯한 상황에서는 어쩔수가 없다.

 

다른사람들은 어떻게 작업하는지 궁금하다.


출처 : http://blog.daum.net/gdocument/29

반응형
Posted by blueasa
, |



출처 : stnzone.com/gboard/blog/download.php?mb_id=neojzs&id=1135
반응형
Posted by blueasa
, |
1. download : http://code.google.com/p/syntaxhighlighter/

2. 설치 
 다운로드 받은 파일을 압축해제후 scripts, styles 폴더 안에 있는 파일들을 스킨-직접 올리기에서 모두 올린다.
 그런 후에 아래 내용을 스킨-html/css 에서 html 태그중 </body> 위에 아래 내용을 추가한다.
  1. <!-- Syntax Highlighter start -->  
  2. <link type="text/css" rel="stylesheet" href="./images/SyntaxHighlighter.css"></link>  
  3. <script language="javascript" src="./images/shCore.js"></script>  
  4. <script language="javascript" src="./images/shBrushCpp.js"></script>  
  5. <script language="javascript" src="./images/shBrushCSharp.js"></script>  
  6. <script language="javascript" src="./images/shBrushCss.js"></script>  
  7. <script language="javascript" src="./images/shBrushDelphi.js"></script>  
  8. <script language="javascript" src="./images/shBrushJava.js"></script>  
  9. <script language="javascript" src="./images/shBrushJScript.js"></script>  
  10. <script language="javascript" src="./images/shBrushPhp.js"></script>  
  11. <script language="javascript" src="./images/shBrushPython.js"></script>  
  12. <script language="javascript" src="./images/shBrushRuby.js"></script>  
  13. <script language="javascript" src="./images/shBrushSql.js"></script>  
  14. <script language="javascript" src="./images/shBrushVb.js"></script>  
  15. <script language="javascript" src="./images/shBrushXml.js"></script>  
  16. <script language="javascript">  
  17. dp.SyntaxHighlighter.ClipboardSwf = 'http://your_address/images/clipboard.swf';  
  18. dp.SyntaxHighlighter.HighlightAll('code');  
  19. </script>  
  20. <!-- Syntax Highlighter start -->  


3. 사용법

  1. tag중 pre와 textarea에 대한 : http://code.google.com/p/syntaxhighlighter/wiki/PreAndTextarea
  2. 사용법에 대한 : http://code.google.com/p/syntaxhighlighter/wiki/Usage
  3. 사용 가능한 언어 : http://code.google.com/p/syntaxhighlighter/wiki/Languages
  4. 설정 : http://code.google.com/p/syntaxhighlighter/wiki/Configuration



    출처 : 
    http://srand.tistory.com/8 



Usage

Placing the code

Place your code on the page and surround it with <pre> tag. Set name attribute to code and class attribute to one of the language aliases you wish to use.

<pre name="code" class="c-sharp">
... some code here ...
</pre>

NOTE: One important thing to watch out for is opening triangular bracket <. It must be replaced with an HTML equivalent of &lt; in all cases. Failure to do won't break the page, but might break the source code displayed.

An alternative to <pre> is to use <textarea> tag. There are no problems with < character in that case. The main problem is that it doesn't look as good as <pre> tag if for some reason JavaScript didn't work (in RSS feed for example).

<textarea name="code" class="c#" cols="60" rows="10">
... some code here ...
</textarea>

Extended configuration

There's a way to pass a few configuration options to the code block. It's done via colon separated arguments.

<pre name="code" class="html:collapse">
... some code here ...
</pre>

Making it work

Finally, to get the whole thing to render properly on the page, you have to add JavaScript to the page.

<link type="text/css" rel="stylesheet" href="css/SyntaxHighlighter.css"></link>
<script language="javascript" src="js/shCore.js"></script>
<script language="javascript" src="js/shBrushCSharp.js"></script>
<script language="javascript" src="js/shBrushXml.js"></script>
<script language="javascript">
dp
.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf';
dp
.SyntaxHighlighter.HighlightAll('code');
</script>

For optimal result, place this code at the very end of your page. Check HighlightAll for more details about the function.

반응형
Posted by blueasa
, |
@err,hr

VS 로 디버깅할때 watch 창에 저렇게 적어주면 GetLastError() 값이 에러 문자열로 변경되어 화면에 출력됩니다. 
편하죠 ^^

반응형
Posted by blueasa
, |