시리즈 블루아카이브 구상 개발

[몰루K 개발강의] 구상제작 2편  - 「만나러간다」의 시작과 종료 대사

목차

1. 코드 전체 스샷

2. 함수 설명

3. 「만나러간다」 시작 시 대사

4. 「만나러간다」 종료 시 대사

5. 번외 - 호칭 설정, 조사 처리, 랜덤 출력 대사

6. 마치며


구상제작 글 모음



1. 코드 전체 스샷

KOJO_A_K(캐릭터번호).ERB 파일


「만나러간다」시작 시




「만나러간다」종료 시



복잡해 보이지만 크게 어렵지 않다

 


2. 함수 설명


몰루K에서 같은 세력, 동생 세력, 무소속 캐릭터를 「만나러간다」를 통해 만나 대화, 스킨쉽, 훈련 등을 할 수 있다.



「만나러간다」에서 시작, 종료 대사는 KOJO_A_K(캐릭터번호) 파일에 두 가지 함수로 구성되어 있다.


1. @KOJO_TRAIN_START_A1_K(캐릭터번호) - 「만나러간다」의 시작 시 출력되는 대사 (구상 템플릿 기준 24번째줄)

  - 해당 캐릭터를 만날 때 마다 실행되는 함수이다.

2. @KOJO_TRAIN_END_A1_K(캐릭터번호) - 「만나러간다」의 종료 시 출력되는 대사 (구상 템플릿 기준 93번째줄)

  - 해당 캐릭터와 헤어질 때 실행되는 함수이다.



3. 「만나러간다」 시작 시 대사


ㄱ. [공허] 특성 보유 시 대사 출력 X

[공허]([붕괴] 포함) 특성을 가지고 있다면 대사 출력을 하지 않고 종료한다.


만약 캐릭터의 망가진 대사를 적고 싶다면 RETURN 위에 대사를 적으면 된다.

이렇게 작성하면

이렇게 출력된다.


ㄴ. 「만나러간다」의 첫 실행 시

만약 해당 캐릭터의 「만나러간다」가 처음이라면(CFLAG:200이 0이라면)

  ○ 첫 만남 처리를 하고(CFLAG:200을 1로 만든다.)

  ○ 만약 안면이 없는 경우라면(CFLAG:17이 1이 아니라면)

    □ 처음 본 상황으로 구상을 작성

  ○ 이미 만났던 적이 있다면(ELSE)

    □ 「만나러간다」에선 처음 보지만 서로 알고 있었던 상황으로 구상을 작성

      - 동아리방문, 기타 등으로 안면이 있다는 설정




그냥 처음으로 만났을 때


[안면]을 얻고 처음 만났을 때


이렇게 나온다.


ㄷ. 1회만 출력하는 대사

첫 만남(CFLAG:200 == 1) 이후 특정 조건을 만족하면 나오는 일회성 대사이다.


우선순위 1. 연모이상이면서 [합의]가 있을 때

우선순위 2. 인연이 된 다음에

우선순위 3. 첫 키스를 하고 만났을 때

우선순위 4. 키스경험 없이 연모를 획득하고 만날 때


우선순위 1번을 먼저 봤다면 2~4번은 나오지 않는다. 만약 이게 맘에 안든다면


이렇게 수정하면 조건만 맞다면 4,3,2,1번 순서대로 출력이 될거임



ㄹ. 일반 대사


ㄱ ~ ㄷ 상황 외에 항상 출력되는 대사임


맨날 나오는 대사라 SELECTCASE RAND:XX등을 이용해 대사 가짓수를 늘리는게 좋다



이렇게 작성하면 저 4개 중에 하나가 무작위로 출력된다.


이렇게



4. 「만나러간다」 종료 시 대사

전체적인 틀은 3번과 동일한데 

기절, 만취, 피로에 의한 대사스킵 혹은 대응대사가 있는데 이걸 빼고 싶다면 IF/ELSEIF 앞에 ;를 붙이면 됨 (대신 다음 ELSEIF를 IF로 바꿔야한다.)



5. 번외 - 호칭 설정, 조사 처리, 랜덤 출력 대사

1) 호칭설정

  - 아나타가 [선생] 소질이 있을 때 '선생님'이라고 부름

  - [복종]이 있다면 '주인님'이라고 부름

  - 그 외엔 이름으로 부름

이렇게 부르게 하고 싶다면

함수 시작 바로 아래에 이런 구문을 넣으면 된다.

대신 대사 작성할 때 %ANAME(MASTER)% 대신 %LOCALS:0%을 써야한다.


2) 조사 처리

대사를 쓸 때 'PRINTFORMW 아이리가 %LOCALS:0%을 만났다.'를 작성했다면

  - LOCALS:0이 '당신'이라면 '아이리가 당신을 만났다.'라고 잘 출력된다.

  - LOCALS:0이 '센세'라면 '아이리가 센세을 만났다.'라고 어색하게 출력된다.

그렇다고 '아이리가 센세을(를) 만났다.' 라고 적기엔 보기에 좋지 않다.


그럴 때 사용하는게 조사처리 함수다.

위의 경우라면 %LOCALS:0% 대신 %조사처리(LOCALS:0,"을")%로 작성을 하게 된다면

  - LOCALS:0이 '당신'이라면 '아이리가 당신을 만났다.'라고 출력된다.

  - LOCALS:0이 '센세'라면 '아이리가 센세를 만났다.'라고 출력된다.

"을/를" 말고도 여러 가지 있으니까 잘 사용하면 될 듯.


3) 랜덤 출력 대사

어떤 상황에서 대사를 여러 종류 두고 싶다면

이렇게 SELECTCASE와 RAND:XX 를 사용해 대사의 종류를 늘리면 된다.

마지막엔 꼭 ENDCASE를 사용하도록 하자


6. 마치며

왜 사람들이 에라베이직 강의 쓰다가 '실종'되는지 알 거 같다.