같은 말이라고 해도 어떻게 말하느냐에 따라 그 말의 의미가 상당히 달라집니다.
그래서 플레이어는 주인공이 자기 의도와 다른 말투로 얘기하는 걸 보며 당황해하는 경우가 왕왕 있습니다.
따라서 그 선택지가 어떤 뉘앙스인지 알려준다면 오해가 발생하는 걸 막을 수 있습니다.
위 스크립트는 선택지에 그림을 나타내기 위한 스크립트입니다.
아래는 설명입니다. 설명을 보시고 바꾸고 싶은 부분이 있으면 찾아서 바꾸시면 됩니다.
0. 선택지는 물론 스크린으로 만듭니다. 스크린 이름은 선택지 화면을 뜻하는 choice로 하면 끗.
1. 위 스샷에서는 4개만 보이는데, 한 번에 표시할 수 있는 선택지는 총 6개 입니다. 그러니까 가운데에 아이콘을 두고 양 옆에 선택지가 3개씩 표시되지요.
2. 3x3의 격자판grid을 만들면 (2x1, 2x3칸은 비우면 되니까) 쉽겠습니다..만 생각 외로 grid가 다루기 편한 레이아웃 박스는 아닙니다.
그렇다고 hbox 안에 vbox를 넣으면 왼쪽에 있는 선택지를 오른쪽 정렬로 바꿀 수가 없어서 선택지 전체의 위치가 이상해집니다.
그래서 vbox 두 개만을 사용해 선택지 표시 공간을 만들었습니다.
3. 가운데 100정도는 이미지 표시하는 공간을 만들면 됩니다. 스크린에서 이미지를 추가하려면 add를 사용하면 되지만 이 경우에는 다른 방법이 필요합니다.
선택지에 마우스 오버할 때마다 그림을 바꿔야 하는데, 그러려면 선택지를 게임 화면에 다시 표시해야 합니다.
이런 작동은 기본 스크린 명령문으로 해결 볼 수 있는 방법이 없습니다. 그러니 꼼수를 부려봅시다.
바로 hovered 를 이용해서 이미지가 표시될 스크린을 띄우는 거죠..
4. 스크린을 하나 만들고 이름을 icon이라고 합니다. 이 스크린은 가운데 나타날 이미지를 추가하면 됩니다.
귀찮아서 텍스트버튼으로 했는데, 각 어투를 나타내는 이미지가 있다면 add를 사용하고 이미지 이름이 들어갈 부분을 변수로 바꾸면 됩니다. 변수 이름은 대충 feel 이라고 했습니다.
5. 전에 DSE에서 했던 거 처럼 icon에서 사용될 feel 변수에 값을 넘겨주려면 show액션을 쓸 때 표시할 스크린 이름이랑 변수=값 을 써주면 됩니다.
Show('icon', feel = caption[-1])
caption 변수는 선택지에 표시되는 문장을 가리키고 caption[-1]이라는 건 문장에서 제일 뒤에 나오는 글자를 가리킵니다.
보면 아시겠지만 저는 선택지 끝에 특수문자를 적었는데, 이 특수문자를 어투 표시용 이미지로 사용중입니다.
6. 뒤에 특수문자는 선택지 문장에 표시할 필요는 없으니까
버튼을 만들 때 그 부분은 빼고 선택지가 출력되도록 합니다.
보시면
button:
# ..
text caption[:-1]
이라고 적어놓은 게 보이실겁니다. 이렇게 적으면 맨 마지막 문자는 빼고 문장을 표시합니다.
6-1. 그림 파일을 사용하시는 경우에는 다음과 같이 하는 게 좋습니다.
예)
[그림파일 목록]
icon_like.png
icon_hate.png
icon
(파일 이름으로 사용되는 글자 수를 총 9글자로 동일하게 지었음)
[Show 액션 변경]
Show('icon', feel = caption[-9])
그리고 선택지 만들 때
"그딴 소리 또 하면 죽인다.icon_like"
라고 쓰고 선택지로 표시할 문장은 choice 스크린에서
button:
#..
text caption[:-9]
라고 적어서 뒤에 icon_like 글자가 안 보이게 해야 합니다.
icon 스크린 내용은 textbutton 대신 add를 이용해서
add (feel + '.png')
라고 적으면 됩니다.
7. vbox 안에 for 문은 우리가 입력한 선택지를 텍스트버튼으로 만드는 스크립트입니다.
item이라는 리스트는 선택지 목록이 저장된 리스트입니다.
위의 vbox에는 4번째 선택지부터 출력해야하므로 item[3:] 이라고 적었으며
(아시겠지만 리스트는 첫 번째 항목을 가리키는 인덱스가 0입니다. 그러므로 4번째면 3이라고 적어야지요)
아래 vbox에는 3번째 선택지까지 출력해야 하므로 item[:3] 이라고 적었습니다.
콜론 뒤에 적힌 숫자는 범위에 포함이 안됩니다.
콜론 앞에 숫자를 비우면 처음, 혹은 마지막 항목까지를 의미합니다.
노파심에 적자면 item[0:3] 이 가리키는 범위는 1≤x<3 입니다.
리스트에 대한 내용은 한번 강의했던 지라 자세히 적지 않겠습니다. 다른 사이트에서 더 자세하게 확인해보세요.
8. 선택지 모양이나 위치같은 건 각자 취향대로 수정해서 사용하시면 됩니다.
물론 반드시 이 스크립트를 쓸 필요는 없고 본인이 생각하기에 더 좋은 방법을 찾아서 만들 수도 있습니다. 다만 참고하시라고 올려둡니다.