스프라이트 에니메이션 에디터 Notia Ver. beta
방금 만들어 뜨끈 뜨끈~~ 버그가 스물 스물~~~
간단한 사용 설명입니다.. 에디터 자체에서 계속 헬프기능이 돌아 가기 때문에(??)
대강 훑어 보세요.. 쓰읍 최대한 편하게 하려구 했는데.. 귀찮아서 기냥 만들었네요..
먼저 에니메이션 편집 창입니다.
1. 에니메이션 창으로 들어 가면 자동적으로 커서에 스프라이트가 나타 납니다.
z,x 키나 창 오른쪽 바닥에 있는 화살표로 선택합니다.
2. 에니메이션 창에서 오른쪽 버튼을 누르면 좌표선의 위치를 옮길수 ? 笭윱求?.
3. 에니메이션 창 왼쪽 아래 양방향 화살표는 에니메이션 토글 버튼입니다.
에니메이션을 반복해서 보여 줍니다.
4. 에니메이션 창 오른쪽 바닥 위에 화살표 들은 에니메이션의 프레임을 바꿔 줍
니다.
5. q,w 키는 편집중인 에니메이션 프레임수를 조절합니다.
6. a,s 키는 에니메이션 프레임을 선택합니다.
7. 스페이스바를 누르면 Pcx화일에서 스프라이트를 복사해 옵니다.
8. 마우스 버튼 두개를 동시에 누르면 Pcx 화일에서 스프라이트를 복사해 옵니다.
9. 팔레트를 선택하면'.plt' 화일을 불러 옵니다.
10.에니메이션 지연 값은 에니메이션 속도를 조절합니다.
11.스프라이트 창에서 왼쪽 버튼을 누르고 있으면 스프라이트가 마우스에 붙습니다(?)
이때 움직여서 원하는 위치로 옮길수 있습니다.
12.스프라이트 창에서 오른쪽 버튼을 누르면 해당 스프라이트를 삭제 합니다.
ZPS,ANM 부르기 저장하기 메뉴.. 말 그대로 입니다.
NEW ZPS,ANM 현재까지 작업한걸 모두 없애고 초기화 합니다.
Capture PCX 화일을 불러 들여 스프라이트를 복사해 옵니다.
F1 키는 헬프 메시지를 토글 시킵? 求?.
F2 키는 에니메이션 스프라이트 모두 저장합니다.
F3 키는 에니메이션 스프라이트 모두 불러 옵니다.
다음 PCX에서 스프라이트를 복사해오는 방법입니다.
1. 마우스 왼쪽 버튼을 누르고 움직이면 박스가 생긴다. 정확하게 하지 않아도 255번을
체크해서 사각형을 만들어 줍니다.
2. 마우스 오른쪽 버튼을 누르면 PCX화일을 불러 옵니다.
3. 화면 왼쪽 바닥에 RETRUN버튼은 에니메이션 편집창으로 복귀합니다.
4. F1키는 역쉬 헬프 토글입니다.
5. 스페이스바를 누르거나 버튼 두개를 같이 누르면 에니메이션 편집창으로 돌아 간다.
6. F3키를 누르면 PCX화일을 불러 옵니다.
7. F2키를 누르면 현제 팔레트를 .plt 화일로 저장 합니다.
8. 스프라이트는 255번 압축 방식으로 저장 됩니다.
아직 제대로 제대로 사용 안해봐서 버그가 있는지는 잘 모르겠네요.. 그럼.. 이만..
/././. 소나기
프로그래밍엔 가속도가 붙는 다는 말이 사실인가 보네요.. 삼사일 예상하구 시작한건데..
놀면서 후다닥 끝나다니.. 버그 난무일쥐두.. --
3개의 스프라이트와 에니메이션을 예제로 넣어 놨습니다. FF6의 에드가, 로크, 글구 쵸코보..
확실히.. 쵸코보가 크기 땜시 에니메이션 같은 기분이 들더 군요.. 이게 돼긴 돼는건가 보고
싶은 분들은.. 메뉴 'ZPS 부르기' 에서 'chocobo.zps' 선택후.. '팔레트'에서 'sprite.plt'
를 선택하고.. 'ANM 부르기'에서 'chocobo.anm'을 선택한후.. 에니메이션 창 왼쪽 아래 있는
양방향 화살표 '<->'를 선택하시면 ?遮求?.. 글구.. '정보창' 에니메이션 번호에서 'INC'를
선택하면 에니메이션이 바뀝니다.(뭔소린지.. --
/// //////////////////////////////////////////////////////////////////////////////////
이거 역시 전에 올렸는데 조합형으로 올려서 글자가 안 나오더 군요.. 전에꺼 지우고 다시
올립니다.. 다른건 아무것도 없으니 전에 받은 분은 받지 마세요..
////////////////////////////////////////////////////////////////////////////////////
잡다한 설명 없이 에니메이션 화일 저장 루틴과 스프라이트 저장 루틴을 올립니다.
void
cSedit::SaveAnm() // 애니메이션 저장 루틴입니다.
{
FILE *fp;
char fn[20];
i nt i,j;
if (SprCnt<=0) {_Text->Msg(1,"얼래.. 스프라이트 두 없는디...");return;}
strcpy(fn,AFn);
if (_Text->QuestBox("화일 저장..","화일 이름을 입력 하세요 : ",fn,12)==NULL)
{_Text->Msg(1,"취소 돼었습니다.");return;}
strcpy(AFn,fn);
fp=fopen(AFn,"wb");
fwrite(&AnmCount;,4,1,fp); // 에니메이션 갯수.. 4바이트 저장..
for (i=0;i<anmcount><anm><=0) {_Text->Msg(1,"얼래.. 잡아논 이미지가 없네요..");return;}
strcpy(fn,Fn);
if (_Text->QuestBox("화일 저장..","화일 이름을 입력 하세요 : ",fn,12)==NULL)
{_Text->Msg(1,"취소 돼었습니다.");return;}
strcpy(Fn,fn);
if (strcmp(AFn,"NewANM.anm")==0)
{
for (i=0;i<13;i++)
{
if (Fn[i]=='.')
{
AFn[i++]='.';AFn[i++]='a';AFn[i++]='n';AFn[i++]='m';
AFn[i++]=NULL;
break;
}
else AFn[i]=Fn[i];
}
}
fp=fopen(fn,"wb");
fwrite(&SprCnt;,4,1,fp); // 스프라이트 갯수 4바이트 저장입니다.
for (i=0;i<sprcnt>Msg(1,"O.K %d개의 압축 스프라이트가 '%s' 이름으로 저장 돼었습니다.",SprCnt,fn);
}
// 이미지를 255번 압축하는 루틴입니다.. data에 이미지를 skip에 스킵할 번호를 넣으면 ?遮求?.
void Encode(char *data, int xs, int ys,char *spr,char skip)
{
int size, i, j, n, m ,addr=8,dp=0,k;
*(int *)spr =xs; //4바이트 XSize
*(int *)(spr+4)=ys; //4바이트 YSize
for(i=0; i<ys><xs></xs><xs></xs><xs><= x1 || y2 <= y1) return;
spr+=8;
for(; y1<y2><x2> xa)
memcpy(vVRam+y1*640+xa,spr-(xa-(xp-putbyte)),xb-xa);
spr+=putbyte; //위에껀 곱하기를 더하기로 바꿔야 빨라 지겠죠..
} //vVRam은 버퍼랍니? ?..
}
}
}
함수 이름에서나 변수에서 느껴지듯.. 디코드와 출력 루틴은 성익님 LSP에 있던거 더블 버퍼링용으로
뜯어 고친거랍니다. 쓰읍.. 어셈 루틴이 있긴한데.. 보기 나쁠거 같아서..
</x2></y2></xs></ys></sprcnt></anm></anmcount>