티스토리 뷰

지난 포스트에서 XNA/GIF Library로 gif파일도 편법을 써서 XNA에서 돌릴 수 있는 방법에 대해서 언급을 해봤습니다. 

2012/10/29 - [About Kinect] - [Kinect with XNA] XNA에서 GIF 애니메이션 구현


그런데 그 포스트 후미에서도 이야기 했었지만 색이 개체 본래의 색이 아닌 이상한 색으로 매핑이 되어서 참 지저분하게 보였습니다. 그런데 조금 자료를 찾다보니까 그것도 원래의 색으로 바꿀 수 있는 게 있더군요. 그 방법을 소개해드리고자 합니다.


일단 수정할 것은 저번에 추가한 gifAnimation 프로젝트안에 들어있는 GifAnimationContentTypeReader.cs입니다.



이걸 열면 처음에는 이렇게 되어있을겁니다.



물론 코드로 뭐라고 막 써져있긴 한데 우리가 수정할 부분은 첫번째 for 루프 안입니다. 거기를 다음과 같이 수정해주세요.



몇번 키넥트할 때 나온 이야기기도 하지만 색깔은 byte형 배열에 들어가고 그 순서는 RGBARGBA 이런 형식으로 된다고 했습니다. 그래서 임의의 tempByte를 만들어놓고 일일히 색상을 넣은 후에 SetData를 한 거지요. 기존에는 그냥 input을 통해서 ReadByte만 했기 때문에 처음 받은 색 그 색으로만 표현이 되었던 것이고요. 저렇게 하고 다시 컴파일 해보면 이렇게 색깔이 제대로 나오게 됩니다.



여기에다가 다른 포스트에서 소개한 GIMP라는 툴을 활용해서 불이 일렁이는 gif 파일을 손에 올려봤습니다. 그 결과는 다음과 같습니다.



한번 키넥트와 XNA를 활용해서 마술사가 되어보는 걸 어떨까요? 그럼 저기에 제스처도 필요하겠지요. 손을 내뻗으면 불이 나간다거나. 그런걸로 캐릭터를 무찌르는 건 어떨까요? 상상은 얼마든지 할 수 있습니다 ㅎ

댓글