[ONScripter] 나는 이렇게 컨버터를 제작했다. #020 bgm모드를 만들어보쟈 강의이야기 | Posted on 2011. 9. 9. 23:27
이 강의는 MPPC (미소녀 & PocketPC)의 Pure Ani에게 저작권이 있습니다.
이번에는 오마케중 bgm모드를 만들어보겠습니다.
BGM모드 관련 코드는 많지만, 필요한 부분만 찍었습니다.
그럼 만들어보겠습니다.
일단 상단에 numalias sbgm,13를 추가함으로써 변수 sbgm에 현재 재생중인 bgm의 번호를 저장하도록 했습니다.
그리고 numalias title,206의 경우는 앞에 ;를 적음으로서 주석처리했습니다.
타이틀에서 재생되는것은 넣을 필요가 없다고 판단했습니다.
0.txt에서 재생되는 bgm은 모두 mov %sbgm,7와 같이 변수 sbgm에 번호가 저장되게했습니다.
*obgm
; bgm 모드 라벨
bg "image\bgm@bg.png",1
; bgm모드 배경
if %opening == 1 lsp 1,"image\bgm@list1_0.png",215,129
; 만일 오프닝을 들었다면 오프닝의 제목을 표시.
if %opening == 0 lsp 1,"image\bgm@unread.png",215,129
; 만일 오프닝을 듣지 않았다면 알수없음을 표시.
if %opening == 1 lsp 21,"image\bgm@list1_1.png",215,129
; 만일 오프닝을 들었다면 마우스커서가 오프닝 제목위에 올라가거나 현재 오프닝을 듣고 있을때 표시될 이미지를 스프라이트번호 21번이 가지고있게합니다.
*obgm_btn
; bgm모드 버튼 라벨
if %sbgm == 1 exbtn_d "C1P2P3P4P5P6P7P8P9P10P11P12P13P14P15P16P17P18P19P20P21C22C23C24C25C26C27C28C29C30C31C32C33C34C35C36C37C38C39C40"
; 만일 현재 재생중인게 오프닝이라면, 스프라이트1번을 비표시로 하고, 21번을 표시로 합니다.
; C는 비표시, P는 표시입니다.
if %opening == 1 && %sbgm != 1 exbtn 1,1,"C1P21"
; 오프닝을 들었고, 현재 오프닝이 재생중이 아니라면, 오프닝제목에 마우스커서를 가져다 대었을때 스프라이트 1번을 비표시, 21번을 표시합니다.
btnwait %0
if %0 == 1 bgm "bgm\opening.ogg":mov %sbgm,1:goto *obgm_btn
; 만일 1번스프라이트가 눌렸다면, 오프닝을 재생하고, 변수sbgm에 1번을 넣고 bgm 버튼라벨로 이동합니다.
goto *obgm_btn
일단 오프닝만을 가지고 설명했습니다.
전체 소스의 부분적인것은 이런 느낌입니다.
컨버터의 소스중 오프닝을 재생하는 소스 다음에 오프닝을 봤다는 표시를 해줍니다.
print OUT "mpegplay \"video\\op.mjpg\", 1\n";
print OUT "mov %opening,1\n";
# 추가된 부분.
# mov %opening,1을 작성합니다.
작성자 Pure Ani
출 처 MPPC (미소녀 & PocketPC)
이번에는 오마케중 bgm모드를 만들어보겠습니다.
BGM모드 관련 코드는 많지만, 필요한 부분만 찍었습니다.
그럼 만들어보겠습니다.
일단 상단에 numalias sbgm,13를 추가함으로써 변수 sbgm에 현재 재생중인 bgm의 번호를 저장하도록 했습니다.
그리고 numalias title,206의 경우는 앞에 ;를 적음으로서 주석처리했습니다.
타이틀에서 재생되는것은 넣을 필요가 없다고 판단했습니다.
0.txt에서 재생되는 bgm은 모두 mov %sbgm,7와 같이 변수 sbgm에 번호가 저장되게했습니다.
*obgm
; bgm 모드 라벨
bg "image\bgm@bg.png",1
; bgm모드 배경
if %opening == 1 lsp 1,"image\bgm@list1_0.png",215,129
; 만일 오프닝을 들었다면 오프닝의 제목을 표시.
if %opening == 0 lsp 1,"image\bgm@unread.png",215,129
; 만일 오프닝을 듣지 않았다면 알수없음을 표시.
if %opening == 1 lsp 21,"image\bgm@list1_1.png",215,129
; 만일 오프닝을 들었다면 마우스커서가 오프닝 제목위에 올라가거나 현재 오프닝을 듣고 있을때 표시될 이미지를 스프라이트번호 21번이 가지고있게합니다.
*obgm_btn
; bgm모드 버튼 라벨
if %sbgm == 1 exbtn_d "C1P2P3P4P5P6P7P8P9P10P11P12P13P14P15P16P17P18P19P20P21C22C23C24C25C26C27C28C29C30C31C32C33C34C35C36C37C38C39C40"
; 만일 현재 재생중인게 오프닝이라면, 스프라이트1번을 비표시로 하고, 21번을 표시로 합니다.
; C는 비표시, P는 표시입니다.
if %opening == 1 && %sbgm != 1 exbtn 1,1,"C1P21"
; 오프닝을 들었고, 현재 오프닝이 재생중이 아니라면, 오프닝제목에 마우스커서를 가져다 대었을때 스프라이트 1번을 비표시, 21번을 표시합니다.
btnwait %0
if %0 == 1 bgm "bgm\opening.ogg":mov %sbgm,1:goto *obgm_btn
; 만일 1번스프라이트가 눌렸다면, 오프닝을 재생하고, 변수sbgm에 1번을 넣고 bgm 버튼라벨로 이동합니다.
goto *obgm_btn
일단 오프닝만을 가지고 설명했습니다.
전체 소스의 부분적인것은 이런 느낌입니다.
컨버터의 소스중 오프닝을 재생하는 소스 다음에 오프닝을 봤다는 표시를 해줍니다.
print OUT "mpegplay \"video\\op.mjpg\", 1\n";
print OUT "mov %opening,1\n";
# 추가된 부분.
# mov %opening,1을 작성합니다.
작성자 Pure Ani
출 처 MPPC (미소녀 & PocketPC)