
10일간의 결과물 완성.
기능적으로는 SIS-Animator 툴하고 아주 흡사한 물건입니다..
만들어진 스프라이트 그림들을 불러들여 게임 화면처럼 구성하면, 프로그램 소스에 바로 적용할 수 있는 배열이나 pseudo code를 생성할 수 있습니다.
여러장의 스프라이트가 한 장으로 합쳐진 것을 불러들여 크롭된 별개의 리소스로 재등록하는 것도 가능.
하나의 리소스로 복수의 레이어를 생성할 수 있습니다.
동일한 리소스를 사용하는 레이어라도 레이어 별로 상하, 좌우 플립이나 10~500% 사이에서 확대축소를 별도로 적용할 수 있어, 기본적으로는 피처폰 게임이나 SDL 게임 등에서 사용하기 위한 툴이지만, 스마트폰이나 저사양 콘솔 게임용으로도 사용 가능합니다. (현재 회전기능은 미구현)
이미지 변환 옵션은 레이어 단위로 이루어져서 리소스에 대한 영향은 없음.
만들다보니까 이런저런 구현이 들어가서 제법 프로그램처럼 되었네요..
java.awt로 만들어진 프로그램이니 아마 맥에서도 돌릴 수 있을 듯.
※스크린샷의 데이터를 그대로 써서 export한 의사 코드
-------------------------------------------
Title_INIT(){
//Resource
image[title_bg]=createImage("C:\work\rsc\title_bg.png","title_bg");
image[logo]=createImage("C:\work\rsc\vk_logo.png","logo");
image[corp_logo]=createImage("C:\work\rsc\mgcook_1.png","corp_logo");
image[rate]=createImage("C:\work\rsc\all.png","rate");
image[etc]=createImage("C:\work\rsc\eft_ellec.png","etc");
image[etc_c0,0]=createImage("C:\work\rsc\eft_ellec.png","etc_c0,0", 0,0, 28,19);
}
//
Title_DRAW(){
//Layer
drawImage(image[title_bg],0,0, 0, 0, 100, 0);
drawImage(image[etc_c0,0],196,193, 0,0, 28,19, 4, 1, 200, 0);
drawImage(image[logo],120,189, 4, 0, 100, 0);
drawImage(image[corp_logo],120,282, 4, 0, 100, 0);
drawImage(image[rate],238,2, 2, 0, 100, 0);
drawImage(image[etc_c0,0],20,197, 0,0, 28,19, 4, 0, 100, 0);
drawImage(image[etc_c0,0],92,153, 0,0, 28,19, 0, 2, 150, 0);
}
-------------------------------------------
개인작업으로 개발한 거지만 일단 회사 내에서 돌려 써보고 차후로 기능을 추가하다가 공개하거나..
일단 직후에 추가할 내용은, 레이어 별로 회전 적용(360도 자유회전)과, 프레임 단위 관리를 가능하게 해서, 일종의 애니메이션 메이커처럼 쓸 수 있는 기능 되겠군요..
초반엔 awt 다루는데 서툴러서 고전하고 소스도 막 꼬였지만, 10일간 작업하고 나니 이건 이것대로 익숙해져서 웬만한 건 뭐든지 할 수 있겠습니다..

프로그램상에서 곧바로 애니메이션을 돌리지는 못하지만 프레임 탐색 기능으로 애니메이션 흉내는 가능. 레이어 복제 기능 정도는 추가해야 할지도..
frame_test_INIT() {
//Resource
image[e1]=createImage("C:\work\valen\rsc\enemy_01.png","e1");
image[e2]=createImage("C:\work\valen\rsc\enemy_02.png","e2");
image[e3]=createImage("C:\work\valen\rsc\enemy_03.png","e3");
image[e5]=createImage("C:\work\valen\rsc\enemy_05.png","e5");
image[e4]=createImage("C:\work\valen\rsc\enemy_04.png","e4");
image[e6]=createImage("C:\work\valen\rsc\enemy_06.png","e6");
image[e7]=createImage("C:\work\valen\rsc\enemy_07.png","e7");
image[e8]=createImage("C:\work\valen\rsc\enemy_08.png","e8");
image[e9]=createImage("C:\work\valen\rsc\enemy_09.png","e9");
image[e10]=createImage("C:\work\valen\rsc\enemy_10.png","e10");
image[e11]=createImage("C:\work\valen\rsc\enemy_11.png","e11");
image[e12]=createImage("C:\work\valen\rsc\enemy_12.png","e12");
image[e13]=createImage("C:\work\valen\rsc\enemy_13.png","e13");
image[e14]=createImage("C:\work\valen\rsc\enemy_14.png","e14");
}
//
//Layer
frame_test_DRAW() {
switch(frame){
case 0://Frame 0
drawImage(image[e1],50,50, 4, 0, 100, 0);
break;
case 1://Frame 1
drawImage(image[e2],50,50, 4, 0, 100, 0);
break;
case 2://Frame 2
drawImage(image[e3],50,50, 4, 0, 100, 0);
break;
case 3://Frame 3
drawImage(image[e2],50,50, 4, 0, 100, 0);
break;
}
}
프레임이 적용된 코드 export 기능 테스트.


댓글을 달아 주세요
댓글 RSS 주소 : http://www.modelisland.pe.kr/blog/rss/comment/218