문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 온스크립터 (문단 편집) === 구조와 특징 === 기본적으로 구조는 NScripter를 똑같이 모방하였기 때문에 이 부분에 대한 내용은 사실 NScripter에 대한 설명과 동일하다. NScripter는 스크립트 언어로 엔스크립트(NScript)를 사용하며, 온스크립터 역시 이와 같다. NScript 언어의 문법은 [[BASIC]]을 닮았기 때문에 BASIC을 이전에 배웠다면 금방 숙달 가능하다. 이 NScript는 인터프리터인 NScripter(혹은 그 호환 엔진인 ONScripter)에 의해서 순차적으로 한 줄씩 해석되며 구현된다. NScript의 작성은 메모장과 같은 텍스트 편집기로 가능하고, 작성된 텍스트 파일의 문자 [[인코딩]]은 반드시 사전에 컴파일된 인터프리터의 인코딩과 동일해야 한다. 그렇지 않으면 인터프리터가 스크립트를 제대로 읽지 못하여 [[문자 깨짐]]이 발생한다. 즉, 인터프리터가 [[Shift_JIS]] 932로 인코딩되었다면 텍스트 파일의 문자 인코딩 역시 Shift_JIS 932이어야 한다. NScript의 주된 특징은 바로 문자열의 출력이 단지 전각문자(全角文字)를 기술하는 것으로 해결된다는 것이다. 이를테면, 프로그램상에 Hello,World!를 출력하고 싶다면 아래와 같이 텍스트 파일을 작성하면 된다. ||*define game *start Hello,World!|| NScript에서는 특정한 지시가 없는 이상, 모든 전각문자가 화면상에 출력해야 할 문자열로 간주된다. 반면에 반각문자(半角文者)는 명령어로 간주된다. 이러한 특징 때문에 NScript는 대용량의 텍스트가 포함되는 특정 어드벤처 장르 게임 제작에 특화되어 있다. 그러나 이러한 특징으로 인해 같은 줄에서 출력되는 문자열의 크기를 서로 다르게 하는 것이 매우 까다롭다. 이를테면, 아래와 같이 화면상에 문자열을 출력하는 것은 고급 기술을 요구한다. ||이 {{{+2 바보 녀석}}}아, 대체 {{{+5 뭐}}} 하는 거야!|| 한편, 반각문자는 특정한 지시 없이는 항상 명령어로 처리되므로, 대개 반각 문자로 쓰는 로마자 알파벳은 문자열로 출력하기 위해서 일일이 전각으로 바꿔주어야 한다. 이를테면, 'Sindo ricoh'는 'Sindo ricoh'로 표기하여야 한다. 공백 역시 전각 문자인 것을 알 수 있다. 단, 제한적으로 english 명령어를 통해서 문자열 출력을 반각으로 하는 것이 가능하다. NScript로 작성된 텍스트 파일은 반드시 0.txt로 저장되어 인터프리터와 같은 경로에 존재하여야 인터프리터가 불러올 수 있다. 만약 NScript로 작성된 스크립트를 여러 파일로 나누어 관리하고자 한다면 추가적으로 0.txt ~ 99.txt 사이의 이름이 가능하다. 단, 0.txt는 반드시 존재하여야 하며 모든 텍스트 파일의 이름은 서로 연속되어야 한다. 즉 5.txt가 존재한다면 4.txt, 3.txt, 2.txt, 1.txt도 존재해야 한다. 평문으로 된 0.txt ~ 99.txt는 개발자인 다카하시 나오키가 제공하는 암호화 도구 nscr.exe를 통하여 암호화할 수 있다. 이렇게 암호화된 파일은 NScript.dat의 이름으로 저장된다. 또, NScript.dat 자체가 0.txt ~ 99.txt를 대신하므로 NScript.dat가 존재한다면 0.txt 등을 인터프리터와 같은 경로에 위치시켜서는 안 된다. nscr.exe를 통한 암호화 방식은 연식이 몹시 오래되어서 웹상에서 돌아다니는 전용 복호화 도구를 통해서 간단히 파훼된다. NScript를 통한 게임 개발과 보안을 모두 고려한다면 독자적인 전용 문자 인코딩을 사용하여 스크립트 내용을 볼 수 없게 만드는 것이 현재까지는 제일 유효한 방법이다. 이 방식도 Hex 값 분석을 통한 문자 특정으로 파훼될 수 있으나, nscr.exe에 의한 암호화보다는 훨씬 안전하고 강력하다. 이하부터는 ONScripter 고유의 특징을 기술한다. NScripter는 스크립트 작성 시 엄격한 문법 준수를 요구하기 때문에 스크립트상에 약간의 문제가 있더라도 바로 인터프리터를 종료시키지만, ONScripter는 스크립트 읽기에 큰 문제가 존재하지 않는 이상 종료시키지 않을 뿐더러 잘못 쓰인 명령어 구문도 제대로 읽어내는 경우가 있다. ONScripter가 이렇게 스크립트 문법 준수에 관용적인 이유는 기본적으로 호환 엔진이기 때문에, NScripter의 구현하는 모든 것을 모방할 수 없기 때문이다. 이를테면 NScripter는 지원하지만 ONScripter는 지원하지 못하는 Windows 기능 관련 명령어가 그러하다. 이러한 명령어는 ONScripter에서 모두 무시되고 실행되지 않는다. 또, ONScripter를 사용할 때는 반드시 인터프리터가 위치한 경로에 default.ttf가 존재해야 하며, ONScripter는 오로지 해당 default.ttf의 단일 [[글꼴]]을 통해서 문자열을 표현한다. 즉 글꼴은 하나밖에 사용할 수 없다. NScripter가 실시간으로 Windows상에 설치된 여러 글꼴을 불러와 문자열을 표현할 수 있는 것과 비교할 때 큰 단점이다. NScripter처럼 운영체제에 설치되지 않은 글꼴을 따로 [[DLL]]로 불러와 사용하는 것도 불가능하다. 세번째로, ONScripter는 NScripter와는 다른 독자적인 세이브 파일을 생성한다. 즉 ONScripter의 세이브 파일은 NScripter와는 호환성이 없다. 그러나 NScripter에서 생성된 세이브 파일을 ONScripter가 읽는 것은 가능하다. 마지막으로, ONScripter의 가장 큰 강점이자 특징은 Windows 이외에 [[Android]], [[iOS]] 같은 운영체제를 지원한다는 것이다. 그러므로 Windows의 ONScripter 프로그램에서 어떤 스크립트가 제대로 작동한다면, 당연히 Android와 iOS에서도 제대로 작동한다. 개발자인 ogapee가 ONScripter의 소스 코드를 공개하고 있으므로, 충분한 실력과 의지가 있다면 코드를 컴파일하여 다양한 운영체제에서 사용할 수 있다. ogapee는 개인 홈페이지에 Windows에서 ONScripter를 컴파일하는 방법을 기술해놓았고, Android와 Zaurus에 대해서는 개발자가 직접 컴파일한 바이너리 파일을 제공하여 바로 접근할 수 있다. 단, 개발자의 Zaurus에 대한 바이너리 파일 제공은 2011년에 종료되었다. Android에 대한 제공은 2019년 5월 현재 계속 지속되고 있다. 이는 [[구글 플레이]]의 [[https://play.google.com/store/apps/details?id=jp.ogapee.onscripter.release|여기]]에서 내려받을 수 있다. 한편, ONScripter가 다양한 운영체제를 지원한다는 점 때문에 ONScripter의 활용은 게임 개발보다는 주로 Windows용 게임을 Android나 iOS로 이식하는 데에 초점이 맞추어져 왔다. NScripter 게임은 명령어를 공유하므로 스크립트 수정 없이, 혹은 극히 약간의 스크립트 수정으로 쉽게 이식 가능하다. [[월희]], [[쓰르라미 울 적에]] 등 게임이 대표적이다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기