출처 :  playsnd 코드 강좌 - M.U.G.E.N. 마이너 갤러리 (dcinside.com) 

작성자 : SAE


이번에는 playsnd 코드 강좌를 올려볼거임.


하나 말할게 있다면 이 다음에 올릴 강좌가 이펙트를 추가하는데 쓰이는 explod강좌인데 그거까지 올린 강좌를 어느 정도 이해했다면 일단 간단한 기술 하나 정도 만들 수 있는 실력은 됐다는 얘기임. 나머지는 노가다임. 계속 테스트해보고 굴려가면서 적절한 값을 찾아 보면서 조정하는 일이 대부분임. 굳이 하나 더 있다면 헬퍼라는 코드도 있긴 하지만.


이건 코드도 너무 간단해서 굳이 강의같은거 쓸 필요도 없지만 그래도 모르는 사람도 있으니까. 이건 글보다는 사진을 올리면서 쓰는 것이 더 설명하기 편할 듯. 알바야 이건 잘라 먹을 것도 없을거니까 제발 자르지마. 글 여러번 쓰기 힘들다 ㅠㅠ





간단하게 설명 말하면 snd파일에 넣어둔 사운드 파일을 statedef에 적용시키는 역할을 해주는 코드임.


[State 0, PlaySnd]

type = PlaySnd

trigger1 = animelem =

이것도 trigger를 animelem이나 time으로 설정하면 됨. 그럼 해당 프레임에 가면 알아서 소리가 재생될 거임.


value = S그룹(숫자),인덱스(숫자)





snd파일에 있는 사운드를 적용시킬 수 있음. 무조건 써야겠지? 사실 이거 쓰는 법만 알아도 이 playsnd 코드는 다 익힌거임.

내가 알기 쉽게 저렇게 그룹, 인덱스라고 따로 써놨음. 예를 들어 내가 추가할 사운드 번호가 그룹 4고 인덱스가 0이라면 value = S4,0이 된다는 말임.


앞에 S는 안 써도 상관없는데 나는 씀. F를 붙여서 쓸 수 있는데 그러면 캐릭터가 아닌 무겐 스크린팩에 내장된 common.snd에 있는 사운드를 꺼내서 사용한다는 의미가 됨.



volumescale = 정수

사운드 소리 크기를 배율로 설정할 수 있음. 기본값은 0. 한때 volume이라는 파라미터가 있었던 것 같은데 이걸로 대체된 듯함. volume라고 써도 딱히 오류가 생기지는 않음.


channel = 정수

사운드의 채널을 설정하는 거라는데 나는 거의 안 써봄. 안 써도 딱히 문제없어서. 음수값 사용되고 애초에 기본값이 -1임. 근데 아래 loop를 0 이외의 값을 주고 Stopsnd라는 코드를 사용해서 별도로 정지시키는 방법을 사용할 경우에는 꼭 써야 됨.


[State 0, StopSnd]

type = StopSnd

trigger1 =

channel =


stopsnd의 기본 코드는 이러하니 참고하고.



lowpriority = 정수

써본적이 한번도 없어서 이건 ihoo강좌 내용으로 올리겠음.


이값은 채널이 -1이 아닌경우만 쓸모있습니다.

0이 아닌값을 줄 경우 같은 채널의 사운드가 이미 출력되고 있는 경우 이 사운드에

의해 중지되지 않습니다.

예를들어 channel=4인 사운드가 나는중에 또 channel=4인 사운드를 내면

lowpriority값이 정해지지 않으면 나중에 나는 사운드만 나지만 lowpriority 값을 주면

먼저의 사운드만 나게 됩니다.



freqmul = 실수

소리의 주기값. 값이 낮출수록 소리가 굵어지며 높일수록 가늘어지는 소리가 나온다 함. 음성 작업해봤다면 무슨 얘기인지 알듯. 1.0이 기본값.



loop = 정수

반복 재생을 설정함. 기본값이 0이고 1이상의 값으로 하면 계속 반복해서 재생함.



더 있지만 나머지는 ㅈ도 쓸일 없어서 안 적음.



근데 이렇게 뭔가 있는 것처럼 거창하게 썼는데 위에서 말했듯이 뭐가 1도 없는 존나간단한 코드임.


그냥


[State 00];

type = PlaySnd

trigger1 = animelem = 2

value = 300,0


대충 이런 식으로 쓴다는 것만 알아도 잘 작동되는 코드고.