사용자 삽입 이미지


근래에Kickstarter에서 Sprite DLight라는 녀석을 알게되었는데
단순 이미지에서 노멀맵을 추출해주는 보조 프로그램으로
출력되는 노멀맵을 보면 상당히 괜찮게 나오는것같습니다.
라이트 버전은 $25 프로버전은 $40로 보통 유니티 에셋과 가격대네요.

차후에 프로젝트를 진행하면서 쓸일은 없겠지만 개인 프로젝트때 쓰게되면 상당히 좋은 연출을 줄수있을것같아서 노멀맵 추출하는 작업을 직접 한번 도전해보았습니다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

Art and sprites from the Dragon’s Crown (ドラゴンズクラウン, for PS3 and PS Vita) http://dragons-crown.com/

테스트 동영상



생각보다 원하는 퀄리티가 나오지않아서 Sprite Dlight의 동영상을 보니 노멀맵추출하는 알고리즘이
상당히 잘되어있다는 것을 깨달았습니다.

저는 단순히 edge추출해서 해당 엣지에 단순히 bump효과를 준거였는데 비하여
이 프로그램에서는 음영(gradient)을 검출해서(sobel algorithm) shape를 검출해주고
이의 볼륨감을 조정해줄수있게 되어있는데 전체볼륨과 디테일볼륨을 따로 조절할수있고
선명도 조정이라던지 단순히 이미지에서 추출하는 노멀맵이라 하기엔
상당히 좋은 퀄리티를 뽑아낼수있는것같습니다.

사용자 삽입 이미지



1.Original sprite by AlbertoV (DYA Games)
2.Normal map created by the GIMP plugin (same as PS plugin)
3.Normal map created by a common normal map generator with the original
sprite used as height map, followed by shape enhancement
4.Normal map created by Sprite DLight in one click
3. is the best result you can achieve with current automatic normal
map generators combined with clever techniques, although the result
is still pretty poor, it's more of a bevel effect, which is randomly
concave or convex, particularly at the edges of the shape.

결론은 좋은게 나와있으면 구입해서 사용해봅시다.
Posted by 랜스.

Leave your greetings here.

이전 스프라이트툴 을 만들고 어언 수개월 (3개월밖에않됬다니..) 동안 써보니
몇가지의 문제점을 알게되었습니다.

문제점

이전 스프라이트툴 같은경우에는 그림파일+애니메이션영역값의 식으로 파일에 저장이됩니다.
용량이 그림파일의용량+애니메이션정보의용량 이런식으로 되겠죠.
그렇다면 아래의 사진들을 봅시다.  
아래의 사진들을 보면 두사진의 애니메이션영역의 값이 항상 같습니다.

사진 1-1 RPG만들기

사용자 삽입 이미지

사진 1-2 RPG만들기

만약 게임이 이런식으로 일정한 애니메이션영역의 정보를 사용하게 된다면
불필요하게 같은 정보를 저장하여 메모리를 낭비하게될수도있습니다.

문제의 해결방법

뭐 개인적으로 생각한 방법인데 그림파일의 정보와 애니메이션 영역의 정보를
각각 분리시켜서 저장하는것입니다.
뭐 물론 리소스의 패킹은 셀프죠 ㅎ_ㅎ...
뭐 이런식으로 저장하면 프로그래밍소스 혹은 스크립트 레벨상에서
그림파일과 영역파일을 알아서 연결할수있게 구성해주면될것같습니다.

이런식으로 하면 만약 다른 그림파일로 같은 애니메이션의 영역정보를
쓰는경우가 많은경우에 이전의 스프라이트툴 보다 많은 용량 절감을 할수있다고 생각합니다.

추가밑 변경될 사항

그리고 기존의 스프라이트툴은 확대해서 RECT값을 드래그로 딴후 중점정보를 바꾸는등의
노가다(드래그로RECT값따는게 제일노가다)로 애니메이션을 완성햇어야했는데
최근에 GNEX SDK 속에 있는 ImageMaster라는 툴을 사용해봤는데
처음 보는 방식으로 RECT 값을 따내길래 신기해 하였습니다. =ㅇ=
뭐 비슷하긴 하지만 편의성이 UP 될듯한 기능이더라구요.

밑의 사진처럼 그냥 스프라이트를 포함한 일정영역을 드래그시 딱 스프라이트의 크기에
RECT을 맞춰주는겁니다... 우왕굳 ... 뭔가 알고리즘 적인 부분이 들어갔을듯한데
사용자 삽입 이미지
대략 무지한 저로선 ㅠ_ㅠ...

이것들 이외에 추가밑 변경될 사항들이 더있는데 포스팅하다 졸려서 자야겠군요 =ㅇ=..
음음 새로만들어질 스프라이트툴은 앞으로 다시 만들어지는일이없길 빌며..
[##_kaAmo_##]

Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/49
  2. 날자고도 2009/04/20 13:56  Modify/Delete  Reply  Address

    픽셀을 검사해서 알파값이 0이면 라인을 줄여나가는 방식입니다.

  3. 닭도난다 2009/04/20 16:13  Modify/Delete  Reply  Address

    날자고도님 의견에 한표, 픽셀 값 계산을 해주면 될듯요.

  4. 랜스 2009/04/20 16:50  Modify/Delete  Reply  Address

    아앗...이렇게도 할수있겟군요~~ GPG 에 질문올렸었는데 답변떠서 날자고도님 답변보기전에 이미 그방법으로 해결했다는.. 감사합니다!

  5. 날자고도 2009/04/20 19:59  Modify/Delete  Reply  Address

    같은 말이죠.
    알파값이 0이면 아닐때까지 찾거나,
    투명한색을 제외한 색을 찾거나..

  6. 나무 2009/04/21 15:31  Modify/Delete  Reply  Address

    두가지 방법으로 다하는게 좋습니다. 영역을 죽이면서 이미지영역을 따는 방법과 이미지부분을 클릭시 점점 확대하면서 이미지영역을 따는방법으로요 그리고 이미지 임포터에서 자동으로 적용하여 이미지를 불러드리는 적시 줄어들며 영역을 따는것도 있으면 편합니다.
    생각하기 나름이긴하지만 최대한 사용상 편의가 가장중요한게 툴이기도하고
    데이타를 쓰기쉽게 구조화하는것도 필요하겠죠. 게임상에서 계산할것을 최대한 줄이는
    응용기능들은 미덕이죠: )
    전 아직 10년전에 만든 스프라이트툴을 쓰고있는데 툴이란게 잘만들어두면 두고두고 유용한거같아요.

  7. 나무 2009/04/21 15:33  Modify/Delete  Reply  Address

    아 3D로 오고나서 조각이미지를많이 만드는게 좀 위험해쪘죠. 텍스쳐를 만드는 갯수가 많아지면 퍼포먼스가 많이 낮아집니다. 특히나 텍스쳐를 생성할시나 해제시에요. 작고 많은 수의 텍스쳐보단 큰 몇개의 텍스쳐가 용의하다는 : )

  8. 랜스 2009/04/23 16:08  Modify/Delete  Reply  Address

    오오.. 날자고도님 나무님 답변모두 감사합니다.~