이 강의는 MPPC (미소녀 & PocketPC)Pure Ani에게 저작권이 있습니다.

이번에는 대사를 작성해보려고 합니다.



를 보시게 되면 대사가 살짝 이상한걸 느끼실 수 있을겁니다.

뭐가 이상하냐 하면, 「가 존재하지 않습니다.

대채 무슨일일까요?

시스템파일들을 찾습니다.


이 이미지를 보시게 되면, m4와 number에 대한 정의가 나와있습니다.

m4의 경우 이름은 출력하지 않고, 「만 화면에 출력을 하도록 하는군요.

number은 그냥 변수에 집어만 넣습니다.

그러면 보이스에 대한 정보는 어떻게 캐치하는 걸까요?

또, 시스템 파일을 뒤져봅니다.


위의 이미지는 보이스를 출력하기 위한 파트입니다.

일단 name변수에 무언가가 존재하는지 확인합니다.
(if (elm.name~)

존재하지 않을경우 넘버를 확인하는데, 넘버에는 방금전에 입력받은 1이 들어가있습니다.
(if (elm.number~)

그것이 함수 getVoice~로 가게되는데..

그 파트는 아래와 같습니다.


타입을 찾습니다.

2번째 이미지에서 보시면 type=m이 존재합니다.

그때 타입변수에 m이 들어가게 된건데.

그것을 기준으로 살펴보면.

만일 타입이 m일경우 현재는 "m_001"을 되돌려줍니다.

※ %03d는 숫자를 세자리수로 표현하는데 앞에 0을 붙이는 방식입니다.
1의 경우 001, 2의 경우는 002 라는 느낌으로..

즉, 맨 처음 재생되어야할 파일은 m_001.wav 입니다.

보이스 폴더를 가서 존재하는지 확인해보겠습니다.


존재합니다.

그렇다면 그 다음의 대사는 number로 명시안되어있는데 어떻게 알까요?

3번째 이미지의 하단에 보시면 ++f.voice~가 존재하는데, 이곳에서 하는 일은 특정 캐릭터의 보이스 변수를 1 증가시키는 작업입니다.

즉, 다음에 재생될 보이스는 숫자가 하나 더 늘어나니까, m_002.wav가 됩니다.

그러면 [p2]는 뭘까요?

이 게임에서는 화면 전환 직전에 멈추는 명령어로 사용되고 있습니다.

온스크립터로 따지면 \와 같은 명령어입니다.

그러면 위의 1번째 이미지에 보여진 대사를 변경해보겠습니다.

  elsif ($line =~ /(.*)\[p2\]/)
# 만일 라인에 [p2]가 존재할경우 [p2]앞의 데이터를 전부 $1에 넣는다.
  {
   if ($1 =~ /\[(\S*) number=(\d*)\](\S*)/)
# $1에 number이 존재할 경우 앞의 문자는 $1에, 뒤의 숫자는 $2에, ]뒤의 문자는 $3에 넣는다.
   {
    if ($1 =~ /m4/)
# 만일 $1에 m4가 존재한다면..
    {
     $m = $2;
# 변수m에 $2의 내용을 넣는다.
# 여기서는 1이겠지요?
     printf OUT ("dwave 0,\"voice\\m_%03d\.ogg\"\n",$2);
# dwave 0,"voice\m_$2(빈칸을 0으로 채운 3자리 숫자).ogg"를 작성합니다.
# 여기서는 이 작업을 하면 dwave 0,"voice\m_001.ogg"가 됩니다.
     print OUT "「".$3."\\\n";
# 「$3\을 작성합니다.
    }
   }
   elsif ($1 =~ /\[(\S*)\](\S*)/)
# 변수1에 [문자]문자가 존재할 경우
   {
    my $text = $2;
# 변수text에 $2를 넣는다.
    if ($1 =~ /m4/)
# 만일 $1이 m4라면..
    {
     $m += 1;
# 변수m에 1을 추가.
     printf OUT ("dwave 0,\"voice\\m_%03d\.ogg\"\n",$m);
# dwave 0,"voice\m_$m(빈칸을 0으로 채운 3자리 숫자).ogg"를 작성.
     print OUT "「".$text."\\\n";
# 「$text를 작성.
    }
    elsif ($1 =~ /u/)
# 만일 변수1이 u라면..
    {
     print OUT "裏葉\n「".$text."\\\n";
# 裏葉줄바꿈「$text를 작성한다.
    }
   }
   else
# []가 존재하지 않을 경우
   {
    print OUT $1."\\\n";
# $1\를 작성합니다.
   }
  }

이것을 추가해서 나온 결과물입니다.


작성자 Pure Ani
출 처 MPPC (미소녀 & PocketPC)
Posted by Pure Ani

RE:D Cherish! -Eternity Blood- CRYSTALiA

放課後シンデレラ2 HOOKSOFT

花鐘カナデ*グラム NanaWind

フタマタ恋愛 ASa Project

スタディ§ステディ2 ま~まれぇど

リンパにATATA! ~メス牡蠣ミルクどぴゅらっしゅ~ Hending

創作彼女の恋愛公式 Aino+Links

流星ワールドアクター Heliodor

Secret Agent~騎士学園の忍びなるもの~ ensemble

天冥のコンキスタ エウシュリー

HaremKingdom -ハーレムキングダム- SMEE

ラズベリーキューブ まどそふと

ノラと皇女と野良猫ハート2 -Nora, Princess, and Crying Cat.- HARUKAZE

『ノラと皇女と野良猫ハート2』応援中♪

ピュアソングガーデン PULLTOP

はにデビ! Honey&Devil eufonie

姫繰三六五 HIMEKURI365

姫繰三六五 公式ウェブサイト

はるるみなもに! クロシェット

死に逝く君、館に芽吹く憎悪 バグシステム

Sanguinea-サングイネア- すにぃる

麗華の館 しすたーそふと

カスタムメイドオンライン KISS