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

일단 사담을 살짝 하자면..

제가 만든 컨버터로 컨버팅을 해보신분이 계실지 모르겠지만..

개인적으로 저는 효과를 마구 넣는거 싫어합니다.

게임의 속도 저하 및 팅김의 원인이 되는 주요 문제라..;;


그렇기 때문에 화면을 흔드는 명령어인 위의 명령어는 생략합니다.

배경에도 타치에 명령어가 있어서 사용한적이 있으니 이번은 편하게 가능합니다.

그냥 복사해서 붙여넣기 하면 되는 문제니까요.

소스가 길기 때문에, 한파트만 올립니다.

  elsif ($line =~ /^\[m_p(\d*)(l|r|)\]$/)
# 만일 라인에 [m_p숫자(l 혹은 r 혹은 빈칸)] 일경우.
# ^의 경우는 맨앞, $의 경우는 맨 뒤를 지칭합니다.
# ^$의 경우 맨앞바로 뒤에 맨뒤가 있으니 빈라인을 말합니다.
  {
   my $number = $1;
# number 변수에 $1의 값을 넣습니다.
   if ($2 =~ /l/)
# 만일 $2에 l이 존재할경우.
   {
    print OUT "ld l,\"image\\miu".$number."\.png\"\nprint 1\n";
# ld l,"image\miu숫자.png" 줄바꿈 print 1을 작성합니다.
   }
   elsif ($2 =~ /r/)
# 만일 $2에 r이 존재할 경우.
   {
    print OUT "ld r,\"image\\miu".$number."\.png\"\nprint 1\n";
# ld r,"image\miu숫자.png" 줄바꿈 print 1을 작성합니다.
   }
   else
# $2에 l도 r도 없는 경우.
   {
    print OUT "ld c,\"image\\miu".$number."\.png\"\nprint 1\n";
# ld c,"image\miu숫자.png" 줄바꿈 print 1을 작성합니다.
   }
  }


한 화면에 다 보이지 않지만 저렇게 됩니다.
(참고로 현재 제가 작성한 컨버터 라인은 총 380라인.)

하지만 스크립트를 계속 훝다보면 지우는 명령어도 저렇게 존재를 하게 되는데..


오른쪽에 표시된 타치에를 지우는 명령어군요.

근데 저 한줄만으로는 어디를 지우는지 잘 모르겠네요.

그래서 지금까지 코딩한 타치에 코드를 수정을 하겠습니다.

전 강의에서 if ($bg[$i] =~ /m_hide|z_hide|s_hide/)로 작성했던것을 모두 지우고 이렇게 바꿉니다.

    if ($bg[$i] =~ /(\S)_hide/)
# 만일 변수bg[$i]에 hide가 존재한다면 앞의 문자 하나를 변수 $1에 넣는다.
    {
     print OUT "cl ";
# cl 를 작성한다.
# 일단 지우는 구문으로 들어오게 되니 먼저 cl 을 작성합니다.
# 나중에 코드 전체를 작성해도 좋습니다.
     if ($1 =~ /m/)
# 만일 변수 $1에 m이 존재한다면..
     {
      if ($tm == 1)
# 만일 변수 $tm에 1이 들어가있다면..
# 타치에의 약자 t를 줘서 각 캐릭터가 어디에 출력되어있는지 저장할 변수입니다.
# 1은 왼쪽, 2는 오른쪽, 3은 중앙, 0은 미출력 입니다.
      {
       print OUT "l\nprint 1\n";
# l 줄바꿈 print 1을 작성합니다.
      }
      elsif ($tm == 2)
# 만일 변수 $tm에 2가 들어가 있다면..
      {
       print OUT "r\nprint 1\n";
# r 줄바꿈 print 1을 작성합니다.
      }
      else
# $tm의 변수에 1과 2 모두 안들어가있을때.
# 일단 지우는 명령어는 화면에 출력된것을 지운다는것을 가정, 바꿔말해 $tm에는 1, 2, 3중 하나의 값이 꼭 들어가있다고 가정하였으니, 1과 2가 없다면 자동적으로 3이 됩니다.
      {
       print OUT "c\nprint 1\n"
# c 줄바꿈 print 1을 작성합니다.
      }
      $tm = 0;
# 화면의 출력된 이미지를 지웠으니 변수 $tm에 0을 넣습니다.
     }
     elsif ($1 =~ /z/)
     {
      if ($tz == 1)
      {
       print OUT "l\nprint 1\n";
      }
      elsif ($tz == 2)
      {
       print OUT "r\nprint 1\n";
      }
      else
      {
       print OUT "c\nprint 1\n"
      }
      $tz = 0;
     }
     elsif ($1 =~ /s/)
     {
      if ($ts == 1)
      {
       print OUT "l\nprint 1\n";
      }
      elsif ($ts == 2)
      {
       print OUT "r\nprint 1\n";
      }
      else
      {
       print OUT "c\nprint 1\n"
      }
      $ts = 0;
     }
    }

중간 중복적인 사항은 주석 패스합니다.
(전부다 일일이 달다가는 끝이 안날듯하니;;)

그런다음 타치에 출력명령어에는 아래의 라인처럼 추가를 했습니다.

  elsif ($line =~ /^\[s_k(\d*)(l|r|)\]$/)
  {
   my $number = $1;
   if ($2 =~ /l/)
   {
    print OUT "ld l,\"image\\mis_k".$number."\.png\"\nprint 1\n";
    $ts = 1;
# 타치에 변수중 하나인 $ts에 1을 넣습니다.
   }
   elsif ($2 =~ /r/)
   {
    print OUT "ld r,\"image\\mis_k".$number."\.png\"\nprint 1\n";
    $ts = 2;
# 타치에 변수중 하나인 $ts에 2을 넣습니다.
   }
   else
   {
    print OUT "ld c,\"image\\mis_k".$number."\.png\"\nprint 1\n";
    $ts = 3;
# 타치에 변수중 하나인 $ts에 3을 넣습니다.
   }
  }


대충 이러한 느낌으로..

스크립트를 살펴보면 타치에 명령어가 한가지 더 있는데 그건 이러한 방식입니다.


이것을 작성해보겠습니다.

참고로 출력과 삭제 둘다 저 방식으로 존재를 하더군요.

  elsif ($line =~ /^\[autochar (.*)\]$/)
# 만일 라인에 [autochar 문자들]이 존재할경우
  {
   my @ta = split(/ /,$1);
# 배열변수 ta에 문자들을 스페이스바 기준으로 나눠서 저장한다.
   
   for (my $i=0; $i < @ta; $i++)
# 변수 $i가 0에서부터 배열변수 @ta가 끝날때까지 돈다.
   {
    if ($ta[$i] =~ /(\S)_hide/)
    {

이 이후는 elsif ($line =~ /\[cross storage=(.*)\]/) 파트를 그대로 작성합니다.


작성자 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