차례
일러두기
- 여기 번역된 내용은 2002/03/15 (Sakura Script/1.0), 2002/04/19 (Sakura Script/2.0)입니다.
- Sakura Script/2.0 은 새로운 체제(Materia-B 체제)에서 지원되는 명령이며, Ukagaka Materia period 568 이후부터 공식적으로 호환되며, 이전 버전에서는 호환되지 않을 수 있습니다.
이 내용의 최신버전은 무언가 본가 에서 구할 수 있습니다.
기타 난에서
삭제 표시가 된 것은 현재 지원않는 명령이며,
대체 표시가 된 것은 현재 사용중지 되었거나 다른 기능으로 대체되었으나 호환성을 위해 본체가 아직 사용하는 명령입니다.
Sakura Script/1.0
스크립트
서식계
명령 |
내용 |
기타 |
\0 |
이 표식 이후부터 주 캐릭터(사쿠라)의 대사 |
|
\1 |
이 표식 이후부터 부 캐릭터(케로)의 대사 |
|
\h |
이 표식 이후부터 주 캐릭터(사쿠라)의 대사 |
|
\u |
이 표식 이후부터 부 캐릭터(케로)의 대사 |
|
\s[id] |
현재 대사를 말하는 캐릭터의 쉘을 surfaceid.png 의 그림으로 표시. 만약 id가 -1이면 해당 캐릭터의 쉘을 화면에서 다음 쉘 그림 표시까지 숨긴다. |
|
\b[id] |
현재 대사를 말하는 캐릭터의 말풍선 모양을 정한다. 역시 id가 -1이면 다음 대화까지 말풍선을 숨긴다. |
|
\n |
다음 줄. 이 표식 이후의 대화는 다음 줄의 맨 처음부터 나온다. |
|
\n[*] |
확장된 다음 줄 넘기기. 현재는 half 옵션만 사용가능. \n[half] 는 일반 다음 줄 넘기기의 1/2 만 넘긴다. |
|
\w? |
50*[?] 밀리초 (곧, 1/20초) 만큼 대사를 지연시킨다. [ ] 는 사용하지 못하므로 최대값은 9. |
|
\_w[?] |
고정밀 대사 지연. [?] 밀리초 (1/1000초)만큼 지연시킨다. \_w[1000]은 1초. |
|
\j[id] |
웹브라우저를 열고 URL id 의 홈페이지로 점프한다. 현재 http만이 사용가능하다. 하지만 URL 형식은 반드시 http:// 를 붙여주어야 한다. (예: http://www.aaa.com/ ) |
|
\c |
현재 대사를 말하는 캐릭터의 말풍선 내의 대사를 지우고 첫째 줄부터 대사를 표시한다. |
|
\x |
현재 대화를 잠시 멈추고 사용자의 마우스 클릭을 기다린다. |
|
\t |
시간 중시(타임 크리티컬) 섹션에 들어간다. 시간 중시 섹션에서는 마우스 오른쪽 클릭 및 더블클릭으로 나오는 메뉴, 자동 체크계의 이벤트 등 상황을 파괴하는 명령은 무시한다. \e가 나올 때까지 유효. |
(주: \t가 한번 더 나와도 끝나는 걸로 알고 있었는데요.. 정확한 내용을 아시면 바꿔주세요.) |
\_q |
빠른 표시 (퀵) 섹션에 들어간다. 이 안에서는 모든 메세지가 빠르게 출력된다. \_q가 한번 더 오거나 \e 로 해제. |
|
\_s |
동시 (싱크로나이즈) 섹션에 들어간다. 이 안에서는 모든 메세지를 주/부 캐릭터가 동시에 말한다. \_s가 한번 더 오거나 \e 로 해제. |
|
\_n |
자동 개행 불가 섹션으로 들어간다. 이 안에서는 자동개항을 하지 않는다. \_n이 한번 더 오면 해제. |
|
\_l[x,y] |
현재 대사를 말하는 캐릭터의 대사 출력 위치를 지정. 대사 출력 위치가 (x,y)로 이동한다. |
|
\a |
AI 대화를 한다. |
|
\e |
대사 종료 표식. 대부분의 대사는 이것으로 끝난다. |
|
선택지계
명령 |
내용 |
기타 |
\q?[id][string] |
말풍선에 string으로 나오는 선택지를 표시. 사용자가 선택하면 시오리 모듈로 OnChoiceSelect 이벤트를 통해 id가 보내진다. [?]는 선택지 번호이며 중복되지 않는 숫자를 넣는다. \q0부터 \q9까지 한번에 최대 10개의 선택지만 가능. |
|
\q[title,id] |
말풍선에 title로 나오는 선택지를 표시. 사용자가 선택하면 시오리 모듈로 OnChoiceSelect 이벤트를 통해 id가 보내진다. 최대 255개의 선택지가 가능. |
|
\q[title] |
말풍선에 첫번째 인수 title로 나오는 선택지를 표시. 선택 후 두번째 인수 event 로 지정되는 이벤트가 SHIORI 에 보내진다. 제삼 인수 이후는 reference 가 된다. 최대 255개의 선택지가 가능. |
주: 아무래도 \q[title, event, reference0, ...] 식으로 쓴다는 말인 듯 합니다만.. 사양서의 설명이 부족해 알 수가 없군요. |
\* |
다음 선택지는 타임아웃 시키지 않는다. |
|
문자 표시계
명령 |
내용 |
기타 |
\_u[0x0000] |
0x???? 인 16진수 유니코드 (UCS-2) 한 문자를 표시한다. |
|
\_m[0x00] |
0x?? 인 16진수 아스키코드 (ASCII) 한 문자를 표시한다. |
|
\&[id] |
id인 식별자에 맞는 글자 하나를 표시한다. (예: \&[Aacute] = A 위에 액센트가 붙은 글자 ) |
|
글자 색 표시계
명령 |
내용 |
기타 |
\f[color,r,g,b] |
첫번째 파라미터가 color 이면 일시적으로 이후의 글자색을 변경한다. r,g,b 는 각각 RGB 색상의 양 (0-255) |
|
\f[shadowcolor,r,g,b] |
첫번째 파라미터가 shadowcolor 이면 일시적으로 이후의 글자의 그림자색을 변경한다. r,g,b 는 각각 RGB 색상의 양 (0-255) |
|
그 외의 실행계
명령 |
내용 |
기타 |
\_v[filename] |
filename 으로 지정된 소리(wav,mp3,wma) 파일을 재생. 파일은 고스트의 홈 디렉토리에 있어야 하며, 절대경로는 무시된다. 파일이 없어도 에러는 나오지 않는다. |
|
\_V |
\_v 로 재생된 소리파일의 재생종료를 기다린다. 재생이 끝났거나 재생되지 않았을 경우에는 무시. |
|
\i[id] |
id 로 지정된 애니메이션 패턴을 표시한다. |
|
\v |
나니카를 윈도우의 맨 위로 올린다. |
|
\4 |
현재 대사를 말하는 캐릭터를 서로 떨어지는 방향으로 일정거리 이동. 보통 캐릭터끼리 겹친 후에 강제로 서로 떨어질 때 사용. |
|
\5 |
현재 대사를 말하는 캐릭터를 서로 접촉하는 거리까지 가까이 이동. |
|
\- |
고스트 종료 표식. 고스트 종료 전에 사용한다. |
|
r2
- 주: r2가 무엇을 뜻하는지는 잘 모르겠으나 내용상 "확장 명령어" 정도로 이해하면 될 듯도 합니다. 현재 활발히 추가가 되는 부분으로서 어느정도 안정이 되면 다시 정리해야 할 듯.
Repaint 관련
명령 |
내용 |
기타 |
\![lock, repaint] |
일시적으로 Repaint(화면 다시 그리기)를 정지시킨다. 다른 말로 화면 lock. 세션에 들어간다 (명시적 해제가 필요). |
|
\![unlock, repaint] |
화면 lock 해제 |
|
Open 관련
명령 |
내용 |
기타 |
\![open, browser] |
본체에 설정되어 있는 웹브라우저를 연다. 3번째 인수 이후는 웹브라우저의 커맨드 라인 인수가 된다. |
|
\![open, mailer] |
본체에 설정되어 있는 이메일 프로그램을 연다. 3번째 인수 이후는 이메일 프로그램의 커맨드 라인 인수가 된다. |
|
\![open, teachbox] |
TEACH 창을 연다. |
|
\![open, communicatebox] |
COMMUNICATE 창을 연다. |
|
\![open, inputbox, event, limittime] |
Input 창을 연다. 창에 캐릭터 라인을 입력하면 세번째 인수로 지정된 유저 정의 이벤트가 발생해, reference0 에 입력된 내용이 들어간다. 또 아무것도 입력하지 않았던 경우에도 limittime 으로 나타나는 시간이 경과하면 입력 대기가 중지되고 reference0 에 캐릭터 라인 "timeout" 이 들어간다. 다만 limittime 에 -1 를 세트 했을 경우는 타임 아웃은 발생하지 않는다. limittime 의 단위는 milli second. (예: \![open, inputbox, OnUserInput, 4000]) 입력을 기다리는 사이는 passive 혹은 Modal(창에 입력이 되기까지는 다른 일을 할 수 없는 상태)이 되어 있어, 데이타가 입력되거나 타임 아웃이 될 때까지 유저는 아무것도 할 수 없다. |
|
Alignment 관련
명령 |
내용 |
기타 |
\![set, alignmentondesktop, top] |
데스크탑상에서의 위치 alignment를 상단으로 변경. |
|
\![set, alignmentondesktop, bottom] |
데스크탑상에서의 위치 alignment를 하단으로 변경. |
|
사용자 정의 이벤트 관련
명령 |
내용 |
기타 |
\![raise, event] |
event로 정의된 사용자 정의 이벤트를 발생시킨다. 세번째 인수 이후는 Reference. 쉼표를 인수에 넣으려면 따옴표로 둘러싸면 된다. 예: \![raise, OnUserEvent, r0, r1, r2, r3, r4, r5, r6, r7], \![raise, OnUserEvent,"0,100"], \![raise, OnClose] |
|
Execute 관련
명령 |
내용 |
기타 |
\![execute, http-get] |
http-get 리퀘스트로 인터넷에서 파일을 받아 저장한다. (예: \![execute, http-get,"http://www.google.com/index.html"]). 이 리퀘스트가 성공했을 경우, home\ghost\master\var 디렉토리내에 index.html 파일이 저장된다. 파일명은 URL 의 파일명으로 저장되기 때문에, 파일명까지 완전하게 지정할 필요가 있다 (위의 예에서 http://www.google.com/ 은 파일명이 생략되어 있으므로 안됨). 쉼표를 인수에 넣으려면 따옴표로 둘러싸면 된다. http-get 는 단지 파일을 저장하는 일만 하기 때문에 성공해도 실패해도 이벤트는 발생하지 않는다. 다운로드의 성공 여부를 판정하고 거기에 적절하게 처리를 하려면 사용자 정의 이벤트를 직접 발생시켜 처리할 필요가 있다. 다운로드된 파일에 대해 문자 코드 변환 등은 행해지지 않는다. |
|
Passive Mode 관련
- 패시브 모드는 시스템에 의한 interrupt 를 억제한 모드이고, 외부 이벤트 등을 억제해야 하는 게임 등에 사용한다. 패시브 모드에는 다음과 같은 특징이 있다.
- pop-up menu가 나오지 않는다
- 메일을 체크하지 않는다
- 헤드라인 센스 하지 않는다
- 고스트 자동 변환을 하지 않는다
- 선택사항이 타임아웃 되지 않는다
- 말풍선이 시간 경과로 사라지지 않는다
- 파일이 DnD 되어도 무시한다
- nar 더블 클릭도 무시한다
OnSurfaceRestore를 보내지 않는다
cantalk 는 항상 false(OnSecondChange 및 OnMinuteChange 자체는 온다) (주: 이 이벤트에서 대화를 보내도 표시되지 않는다는 것을 의미합니다)
- 커뮤니케이트 창은 닫혀져 열리지 않는다
- 최소화할 수 없다
- 종료할 수 없다
- 패시브 모드 중에은 이벤트를 연결해 SHIORI 내에서 메인 루프를 형성하지 않으면 안 된다. 왜냐하면 이벤트 연결이 중단된 시점에서 passive mode 는 단순한 조작 불능 상태가 되기 때문이다.
명령 |
내용 |
기타 |
\![enter, passivemode] |
패시브 모드에 들어간다. 반드시 명시적으로 해제해 주어야만 한다. |
|
\![leave, passivemode] |
패시브 모드를 해제한다. |
|
특수
명령 |
내용 |
기타 |
\m[umsg, wparam, lparam] |
SSTP 권한의 스크립트에서만 사용가능. HWnd 헤더에 의해 미리 세트된 윈도 핸들에 대해 PostMessage(hwnd, umsg, wparam, lparam) 을 실행. (주: 아마 Direct SSTP가 아닐지;; 관련된 자세한 것은 SSTP 규약과 시오리 규약을 참조) |
|
환경 변수/메타 캐릭터
% 로 시작되는 특정의 캐릭터 라인의 조합은 메타 캐릭터열이고, 표시시에 적절한 캐릭터 라인에 치환된다.
기초 정보
이름 |
내용 |
기타 |
%month |
현재월 |
|
%day |
현재일 |
|
%hour |
현재시 |
|
%minute |
현재분 |
|
%second |
현재초 |
|
%username |
사용자 이름 |
|
%selfname |
사쿠라측의 이름 |
정확한 이름 |
%selfname2 |
사쿠라측의 이름 |
틀린 이름 (별명이라든지?) |
%keroname |
케로측의 이름 |
|
특수 정보계
이름 |
내용 |
기타 |
%screenwidth |
스크린의 폭 |
멀티 모니터시는 기본(첫번째) 모니터의 사이즈 밖에 잡히지 않는다 |
%screenheight |
스크린의 높이 |
멀티 모니터시는 기본(첫번째) 모니터의 사이즈 밖에 잡히지 않는다 |
%exh |
연속 기동 시간 |
|
%songname |
마지막에 인식 한 곡의 타이틀 |
|
AI계
이름 |
내용 |
기타 |
%ms |
명사 - 이름 |
|
%mz |
명사 - 물건 |
|
%ml |
명사 - 집합 |
|
%mc |
명사 - 회사명 |
|
%mh |
명사 - 상점명 |
|
%mt |
명사 - 기술명 |
|
%me |
명사 - 음식명 |
|
%mp |
명사 - 지명 |
|
%m? |
명사 - 비한정 |
|
%dms |
명사구/명사절 |
|
구조계
%j[#entry] : #entry 로 지시받은 엔트리. 다음과 같이 사용한다.
#temp \h\s0%j[#temp0]\e #temp0 카드캡터 %ms
※SSTP/1. 2 에서만 사용된다.
escape sequence
- \자체를 표시할 때 \\, %자체를 표시할 때 \% 로 표시한다.
- [ ] 안에서만 \] 로 ] 를 표시한다.
Sakura Script/2.0
대부분의 명령은 Sakura Script/1.0과 동일한 것으로 보인다. 기존과 동일한 부분의 설명은 1.0을 참조. A B C 순
스크립트
기본 명령
- \0, \1, \b, \c, \e, \i, \_l, \m, \n, \n[half], \_n, \_q, \s, \_s, \_v, \_V, \w, \_w, \x, \*, \-
추가 명령
명령 |
내용 |
기타 |
\_a[symbol] |
Anchor, 곧 일종의 링크. 선택지와 비슷한 역할을 하나 시오리에 OnAnchorSelect 이벤트가 돌아간다. \_a로 닫는다. 예:\_a[hoge]이것은 hoge\_a |
SHIORI/2.2의 OnAnchorSelect이벤트 정의가 필요 |
\_b[s, x, y] |
s라는 파일을 말풍선의 x,y위치에 표시한다. 만약 x 혹은 y가 각각 숫자가 아닌 글자 "centerx"와 "centery" (따옴표 제외)일 경우 각각 말풍선 좌표계의 가운데에 표시한다. s의 기준 디렉토리는 home/ghost/name/ghost/master 이다. |
아마 그래픽 파일을 표시하는 것인 듯. |
\j[id] |
웹브라우저를 열고 URL id 의 홈페이지로 점프한다. 현재 http와 file이 사용가능하다. 하지만 id의 형식은 반드시 http:// 와 같이 붙여주어야 한다. (예: http://www.aaa.com/ ) file 형식인 경우 OS의 해당 파일의 확장자와 연관된 파일로 그 파일을 열어준다. |
|
r2
- \![*]
SSTP 마커를 유용한 단락점. 오프셋 콘트롤 있어. 문자 취급 (주: 무슨 말인지..;;)
- \![change, ghost, name]
고스트를 바꿈. name 이 고스트명이면 그 고스트로, name 이 "random" (따옴표 제외)의 경우 랜덤 체인지. "sequential" 의 경우 순차적으로 체인지. 지명한 상대가 없었던 경우는 스르 (주: スル- 인데 아무래도 thru라는 말인 듯? 무시한다는 말인지;). 예:\![change, ghost, 사쿠라]
- 시스템 펑션 콜 - 각각의 이름에 맞는 기능이 불린다.
- \![updatebymyself] - 온라인 자동 업데이트
- \![executesntp] - 시간맞춤
- \![biff] - 편지 체크
- \![open, configurationdialog] - 설정 메뉴 호출
- \![open, ghostexplorer] - 고스트 익스플로러
- \![open, shellexplorer] - 쉘 익스플로러
- \![open, balloonexplorer] - 말풍선 익스플로러
- \![open, headlinesensorexplorer] - 헤드라인센서 익스플로러
- \![open, rateofusegraph] - 고스트 사용률 그래프
- \![open, rateofusegraphballoon] - 말풍선 사용률 그래프
- \![open, rateofusegraphtotal] - 총 고스트 사용률 그래프
- \![vanishbymyself]
- 자신을 영원히 삭제한다.
기타
..는 동일한 듯.
