KR20100054330A - 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및저작 도구 - Google Patents

직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및저작 도구 Download PDF

Info

Publication number
KR20100054330A
KR20100054330A KR1020080113209A KR20080113209A KR20100054330A KR 20100054330 A KR20100054330 A KR 20100054330A KR 1020080113209 A KR1020080113209 A KR 1020080113209A KR 20080113209 A KR20080113209 A KR 20080113209A KR 20100054330 A KR20100054330 A KR 20100054330A
Authority
KR
South Korea
Prior art keywords
window
command
scenario
dynamic
dynamic object
Prior art date
Application number
KR1020080113209A
Other languages
English (en)
Other versions
KR101559172B1 (ko
Inventor
이규현
조용곤
이광호
Original Assignee
주식회사 엔씨소프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엔씨소프트 filed Critical 주식회사 엔씨소프트
Priority to KR1020080113209A priority Critical patent/KR101559172B1/ko
Publication of KR20100054330A publication Critical patent/KR20100054330A/ko
Application granted granted Critical
Publication of KR101559172B1 publication Critical patent/KR101559172B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 직관적인 사용자 인터페이스 화면을 이용하여 시나리오에 따라 연출되는 장면을 프로그래밍할 수 있도록 해준다. 테이블 형태로 이루어지는 시나리오 편집창의 각 열에는 동작의 대상이 되는 개체를 등록하고, 각 행에는 해당 열에 등록된 개체와 관련된 명령들을 순서대로 배치하도록 한다. 각 개체들이 병렬적으로 동작할 내용은 행으로 나타나고, 시간의 흐름에 따라 실행될 동작 내용은 열에 나타나므로 시나리오에 따라 연출되는 장면을 한 눈에 파악할 수 있다. 특히, 사용자는 각 개체와 명령을 마우스를 이용하여 시나리오 편집창에 끌어다 놓는 것으로 프로그래밍 작업을 할 수 있으므로 누구나 손쉽게 이용할 수 있고, 그 내용을 쉽게 이해할 수 있게 된다. 또한, 여러 형식의 스크립트 코드로 변환해 주어 손쉽게 활용할 수 있다.
프로그램, 저작 도구, 시나리오, 장면, 열, 행, 동적개체, 명령

Description

직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및 저작 도구{ Method and Tool for Program Writing using Intuitive User Interface }
본 발명은 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및 저작 도구에 관한 것으로서, 특히 동작 대상인 개체와 각 개체를 동작시킬 명령을 실행 순서에 따라 화면에 배치하는 방식으로 프로그래밍을 할 수 있도록 하여 프로그램을 손쉽게 작성하고 그 내용을 직관적으로 이해할 수 있도록 한다.
통신과 컴퓨터 기술이 발전하면서 컴퓨터를 통해 실행될 수 있는 콘텐츠의 수요가 급속히 늘고 있다. 특히, 게임이나 애니메이션 등의 분야에서는 일정 시나리오에 따라 다양한 장면이 연출되어야 하며, 사업자의 입장에서는 다양한 내용의 콘텐츠를 저렴한 비용으로 신속하게 제작할 수 있어야 경쟁력을 유지할 수 있다.
한편, 프로그래밍 언어에 대한 깊은 지식이 없는 사용자도 자기가 생각하는 콘텐츠를 빨리 만들고 시험해 볼 수 있도록 해주려는 시도가 여러 분야에서 나타나고 있다.
이와 관련하여 LUA, Python, XML 등 다양한 스크립트 언어가 개발되어 널리 사용되고 있다. 스크립트 언어는 그 문법이 비교적 간단하여 손쉽게 익힐 수 있어 프로그램 영역에 대한 접근성을 향상시켜 준다.
그러나 스크립트 언어도 종류에 따라 문법과 사용법이 다르기 때문에 각 언어의 사용법을 모두 익혀야 되는 부담이 있고, 잘못된 명령어 사용이나 오타에 취약한 단점이 있다. 또한, 명령의 실행 대상과 실행 내용, 실행 시기가 바로 드러나지 않기 때문에 개발중인 프로그램의 문제점을 쉽게 파악하기 어렵다.
특히, 콘텐츠의 개발에는 전문 프로그래머뿐 아니라 레벨 디자이너나 그래픽 디자이너, 기획자 등 다양한 분야의 전문가들이 참여하게 되는데, 전문 프로그래머가 아닌 경우에는 프로그램의 진행 방향이나 내용을 파악하기가 매우 어려워 공동 작업의 효율성을 떨어뜨리는 주요 요인이 된다.
그러므로, 게임이나 애니메이션 등과 같이 일정 시나리오에 따라 연출되는 장면을 누구나 손쉽게 프로그래밍하고 그 내용을 쉽게 이해할 수 있도록 하는 여러 방안이 요구되고 있다.
이에 본 발명은 상기와 같은 필요성에 부응하기 위하여 안출된 것으로서, 사용자가 일정 시나리오에 따라 연출되는 장면을 손쉽게 프로그래밍하고 누구나 그 내용을 쉽게 이해할 수 있도록 해 줄 수 있는 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및 저작 도구를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법은 컴퓨터에서 구동된 프로그램 저작 도구가 수행하는 과정으로서, 동적개체를 모아 놓은 동적개체 선택창, 정적개체를 모아 놓은 정적개체 목록창, 명령을 모아 놓은 명령선택창, 테이블 형식으로 구성되는 시나리오 편집창을 화면에 출력하는 단계; 편집모드일 경우, 사용자가 상기 동적개체 선택창을 이용하여 상기 시나리오 편집창의 각 열에 동적개체를 등록하고, 상기 명령선택창을 이용하여 상기 시나리오 편집창의 각 행에 해당 열의 동적개체나 상기 정적개체 목록창의 정적개체를 동작시킬 명령을 등록하며, 상기 시나리오 편집창에 등록된 명령의 파라메터를 편집할 수 있도록 하는 단계; 실행모드일 경우, 상기 시나리오 편집창의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록된 명령을 순서대로 실행(현재 행의 모든 열에 대한 명령을 실행한 후 다음 행으로 진행함)하는 단계; 내보내기 모드일 경우, 상기 시나리오 편집창의 등록상태 정보를 편집용 파일에 저장해 놓는 단계; 및 불러오기 모드일 경우, 상기 편집용 파일에 저장되어 있는 정보를 읽어 상기 시나리오 편집창에 등록해주는 단계를 포함하여 구성되는 것을 특징으로 한다.
상기 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법은, 소스코드 저장 모드일 경우, 상기 시나리오 편집창의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록된 명령을 순서대로 실행(현재 행의 모든 열에 대한 명령을 실행한 후 다음 행으로 진행함)할 수 있는 스크립트 코드를 소스코드 파일로 저장하는 단계를 더 포함하여 구성될 수 있다.
상기 동적개체 선택창에 모아 놓을 동적개체, 정적개체 목록창에 모아 놓을 정적개체, 명령선택창에 모아 놓을 명령은 디폴트로 설정되는 것일 수 있다.
상기 동적개체 선택창에 모아 놓을 동적개체, 상기 정적개체 목록창에 모아 놓을 정적개체, 상기 명령선택창에 모아 놓을 명령은 사용자가 동적개체 라이브러리, 정적개체 라이브러리, 명령 라이브러리에서 각각 선택하여 원하는 것으로 설정하도록 구성될 수 있다.
사용자가 상기 시나리오 편집창의 각 열에 동적개체를 등록하거나 상기 시나리오 편집창의 각 행에 명령을 등록하는 과정은 '드래그 & 드롭' 방식으로 이루어지도록 구성될 수 있다.
상기 명령의 파라메터는 동적개체나 정적개체의 위치를 나타내는 정보를 포함하여 구성될 수 있다.
상기 명령의 파라메터는 해당 명령이 실행된 후 다음 행의 명령이 실행되기까지 기다려야 하는 대기시간을 포함하여 구성될 수 있다.
이때, 상기 프로그램 저작 도구는 상기 실행모드일 경우 현재 행의 모든 명령을 실행하고 현재 행의 각 명령 파라메터 중 가장 긴 대기시간이 종료한 후 다음 행을 실행하도록 구성될 수 있다.
한편, 본 발명에 따른 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구는, 동적 동적개체를 모아 놓은 동적개체 선택창, 정적개체를 모아 놓은 정적개체 목록창, 명령을 모아 놓은 명령선택창, 테이블 형식으로 구성되는 시나리오 편집창을 화면에 출력하는 창 관리부; 사용자가 상기 동적개체 선택창을 이용하여 상기 시나리오 편집창의 각 열에 동적개체를 등록하고, 상기 명령선택창을 이용하여 상기 시나리오 편집창의 각 행에 해당 열의 동적개체나 상기 정적개체 목록창의 정적개체를 동작시킬 명령을 등록할 수 있도록 하는 시나리오 편집부; 사용자가 상기 시나리오 편집창에 등록되어 있는 각 명령의 파라메터를 편집할 수 있도록 하는 명령편집부; 사용자의 지시에 따라, 상기 시나리오 편집창의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록된 명령을 순서대로 실행(현재 행의 모든 열에 대한 명령을 실행한 후 다음 행으로 진행함)하는 실행부; 사용자의 지시에 따라, 상 기 시나리오 편집창의 등록상태 정보를 편집용 파일에 저장해 놓는 편집용 파일 저장부; 및 사용자의 지시에 따라, 상기 편집용 파일의 정보를 읽어 상기 시나리오 편집창에 등록시켜주는 편집용 파일 불러오기부를 포함하여 구성된다.
이때, 사용자가 상기 시나리오 편집창의 각 열에 동적개체를 등록하거나 상기 시나리오 편집창의 각 행에 명령을 등록하는 과정은 '드래그 & 드롭' 방식으로 이루어지도록 구성될 수 있다.
상기 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구는, 사용자의 지시에 따라 상기 시나리오 편집창의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록된 명령을 순서대로 실행(현재 행의 모든 열에 대한 명령을 실행한 후 다음 행으로 진행함)할 수 있는 스크립트 코드를 소스코드 파일로 저장하는 소스코드 저장부를 더 포함하여 구성될 수 있다.
상기 소스코드 저장부는 사용자가 상기 스크립트 코드를 생성할 스크립트 언어의 종류를 선택할 수 있도록 구성될 수 있다.
상기 창 관리부는 상기 동적개체 선택창에 모아 놓을 동적개체, 상기 정적개체 목록창에 모아 놓을 정적개체, 상기 명령선택창에 모아 놓을 명령을 동적개체 라이브러리, 정적개체 라이브러리, 명령 라이브러리에서 각각 읽어 오도록 구성될 수 있다.
또한, 상기 창 관리부는 사용자가 프로그래밍에 사용할 동적개체, 정적개체, 명령을 동적개체 라이브러리, 정적개체 라이브러리, 명령 라이브러리에서 각각 선택하여 상기 동적개체 선택창, 상기 정적개체 목록창, 상기 명령선택창에 각각 모아 놓을 수 있도록 구성될 수 있다.
상기 시나리오 편집부는 특정 동적개체를 상기 시나리오 편집창에 기본적으로 포함시키도록 구성될 수 있다.
상기 명령의 파라메터는 동적개체나 정적개체의 위치정보와, 해당 명령이 실행된 후 기다려야 하는 대기시간을 포함하여 구성될 수 있다.
이때, 상기 실행부는 현재 행의 모든 열에 대한 명령을 실행한 후 현재 행의 각 명령 파라메터 중 가장 긴 대기시간이 종료하기를 기다렸다가 다음 행을 실행하도록 구성될 수 있다.
본 발명에 따르면, 사용자는 동작 대상으로서의 개체와 해당 개체를 동작시킬 명령을 순서대로 배치하는 것으로 장면 연출을 위한 프로그래밍을 할 수 있어 프로그램에 대한 전문적인 지식이 없어도 손쉽게 콘텐츠를 제작할 수 있다.
콘텐츠에 포함되는 각 개체와 명령은 테이블 형식의 인터페이스 화면에 직렬, 병렬로 일목요연하게 배치되고 눈에 보이는 순서에 따라 실행되므로, 해당 시나리오에 따라 나타날 장면을 직관적으로 파악할 수 있다.
프로그램에 사용할 수 있는 개체와 명령이 기본적으로 제공되므로 사용자는 키보드와 마우스의 사용법 이외에 프로그래밍을 위한 많은 학습이 요구되지 않으며, 개체와 명령은 '드래그 & 드롭' 방식으로 배치되기 때문에 오타로 인한 오류를 제거할 수 있다.
프로그래밍된 결과는 즉시 에물레이션시켜 볼 수 있으며, 그 결과를 다양한 스크립트 언어의 소스 코드로 출력해 주도록 구성하면 사용자가 여러 종류의 스크립트 언어를 모두 학습할 필요가 없어지고, 콘텐츠의 활용처에 따라 적절한 스크립트 코드를 확보하여 활용할 수 있게 된다.
이러한 특성들은 전문 프로그래머뿐 아니라 레벨 디자이너, 그래픽 디자이너, 기획자 등 다양한 분야의 전문가들이 참여하는 콘텐츠 개발의 효율성을 크게 향상시킬 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
도 1을 참조하자면, 본 발명에 따라 프로그래밍을 할 수 있도록 해주는 프로그램 저작 도구는 사용자의 컴퓨터(10)에서 구동된다.
컴퓨터(10)는 개인용 컴퓨터(PC)나 휴대용 컴퓨터 등 여러 형태로 구성될 수 있는 것이며, 모니터(10-1)와 같은 디스플레이 장치, 디지털 데이터를 저장하는 저장매체(10-2), 키보드(10-3)나 마우스(10-4)와 같은 입력장치들이 연결된다.
저장매체(10-2)는 내장형/외장형의 하드 디스크 드라이브(HDD: Hard Disk Drive), 외부장치 연결 포트를 통해 접속되는 USB 메모리 등 다양한 형태로 구성될 수 있다. 또한, 컴퓨터(10)는 인터넷망 등의 통신망(15)을 통해 서버(17)와 연결될 수 있다.
프로그램 저작 도구(11)는 컴퓨터(10)의 저장매체(10-2)에 설치되어 구동될 수 있으나, 통신망(15)을 통해 접속된 서버(17)가 웹상에서 제공하도록 구성될 수도 있다. 프로그램 저작에 사용되는 데이터나 그 결과물 또한 컴퓨터의 저장매체(10-2)뿐 아니라 서버 측 스토리지(17-1)에 저장되어 관리되거나, 그로부터 액세스될 수 있다.
이하에서 사용되는 용어 중 '동적개체'는 시나리오 따라 연출되는 장면에 주체로서 나타나고 능동적인 동작의 대상이 되는 개체를 말한다. 동적개체의 예로는 게임 화면에 나타나는 사용자 캐릭터, 시나리오의 진행과 관련하여 능동적인 역할을 수행하는 NPC(Non Player Character) 등을 들 수 있다.
'정적개체'는 주체로서의 역할을 수행하지 못하고 수동적인 명령의 대상이 될뿐인 개체를 말한다. 정적개체의 예로는 화면에 나타나는 스피커, 식당에 구비되는 의자나 난로 등의 개체를 들 수 있다.
그러나, 동적개체와 정적개체는 어떤 모양으로 구분되는 것이 아니다. 즉, 의자가 시나리오에 따라 능동적으로 어떤 역할을 수행할 수도 있고, 이러한 경우에는 동적개체가 될 수 있다.
본 발명과 관련하여 동적개체와 정적개체의 가장 큰 구별 실익은 시나리오 편집창의 각 열에 동작의 대상으로서 등록될 수 있는지의 여부에 있다. 즉, 동적개체만이 시나리오 편집창의 각 열에 등록되어 능동적인 동작의 주체로서 기능할 수 있다. 정적개체의 경우에는 시나리오 편집창에 등록된 동적개체의 동작과 관련하여 명령의 대상으로 나타날 뿐이다.
도 2를 참조하여, 본 발명에 따른 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법의 일 실시예를 설명하기로 한다.
먼저 사용자가 프로그램 저작 도구(11)를 구동시키면(S21), 프로그램 저작 도구는 모니터(10-1)에 사용자 인터페이스 화면을 출력하여 사용자가 시나리오에 따라 연출되는 장면을 프로그래밍할 수 있도록 한다(S22).
사용자 인터페이스 화면은 각종 동적개체를 모아 놓는 동적개체 선택창, 각종 정적개체를 모아 놓는 정적개체 목록창, 각종 명령을 모아 놓는 명령선택창, 및 시나리오 편집창을 포함하도록 구성된다. 특히 시나리오 편집창은 열과 행으로 이루어지는 테이블 형식으로 관리된다.
프로그램 저작 도구(11)는 여러 가지 동작모드에서 동작하며, 동작 모드에는 편집 모드, 실행 모드, 내보내기 모드, 불러오기 모드가 포함된다. 프로그램 저작 도구(11)가 실행중인 상태에서(S23), 사용자는 편집 모드, 실행 모드, 내보내기 모드, 불러오기 모드를 자유롭게 이용할 수 있다.
먼저, 편집모드에서 프로그램 저작 도구(11)는 사용자가 시나리오 편집창에 대하여 동적개체의 등록, 동적개체와 관련된 명령의 등록, 등록된 명령의 편집을 수행할 수 있도록 한다(S24).
사용자는 동적개체 선택창에 들어 있는 동적개체를 시나리오 편집창의 각 열에 등록하고, 명령선택창에 들어 있는 명령을 시나리오 편집창의 각 행에 등록한다. 각 명령은 해당 열의 동적개체와 관련된 동작 순서에 따라 등록한다.
각 동적개체나 명령이 동적개체 선택창이나 명령선택창에 존재하는 것만으로는 사용자가 작성하고자 하는 프로그램에 아무런 영향을 미치지 못하며, 각 동적개체나 명령은 시나리오 편집창에 등록되어야 사용자가 작성하려는 프로그램과 관련하여 의미를 가지게 된다.
하나의 열에는 하나의 동적개체만이 등록될 수 있으며, 각 열에 등록되는 동적개체는 고유한 이름을 가져야 한다. 그러므로 동적개체 선택창에 존재하는 동적개체를 시나리오 편집창에 등록할 때는 해당 동적개체를 고유하게 식별하기 위한 이름을 설정해야 하며, 프로그램 저작 도구(11)는 사용자가 동적개체를 시나리오 편집창에 등록할 때 이름을 설정할 수 있도록 처리한다.
동적개체명은 반드시 고유한 것이어야 하므로, 프로그램 저작 도구(11)는 동적개체명이 중복되는 경우 사용자에게 다른 이름을 설정하도록 안내하거나, 어느 한쪽의 동적개체명을 고유한 임의의 이름으로 강제 할당할 수 있다.
시나리오 편집창에 등록된 동적개체들은 고유 이름과 동적개체의 종류로 표시될 수 있다.
예를 들자면, '동적개체명:동적개체종류'의 형태로 표시될 수 있다. 여기서, 동적개체명은 해당 동적개체를 고유하게 식별하는 명칭이고, 동적개체종류는 동적개체의 특성을 나타낸다.
시나리오 편집창에 등록될 수 있는 동적개체의 수, 즉 열의 수는 이론적으로 제한이 없으며 눈에 보이는 화면의 크기를 넘어가는 부분은 스크롤 바를 이용하여 찾아 볼 수 있도록 처리된다.
명령은 시나리오 편집창에 등록된 동적개체를 동작시키거나, 또는 정적개체 목록창에 들어 있는 정적개체를 동작시킨다.
이러한 명령은 각 동적개체에 중복 적용되거나, 또는 어느 하나의 동적개체에 중복 적용될 수도 있는 것이므로 시나리오 편집창에 등록되는 명령이 고유한 명칭을 갖도록 처리할 필요는 없다. 다만, 서로 다른 명령들은 각기 다른 이름을 가져야 함은 물론이다.
도 3을 참조하여 사용자 인터페이스 화면에 관하여 살펴보자면, 화면에는 동적개체 선택창(31), 명령선택창(32), 시나리오 편집창(33), 정적개체 목록창(34)이 나타나 있으며, 현재 눈으로 보이는 영역을 벗어난 부분으로 이동하기 위한 스크롤 바(33-2)가 나타나 있다.
이러한 스크롤 바는 동적개체 선택창(31), 명령선택창(32), 정적개체 목록창(34)에도 나타날 수 있음은 물론이다.
또한, 시나리오 편집창(33)에는 각 열에 등록된 동적개체 정보를 표시하는 행(33-1)이 나타나며, 현재 개체 #1 내지 개체 #3이 각각 열 #1 내지 #3에 등록되어 있음이 나타나 있다. 등록된 동적개체 정보는 위에서 설명한 바와 같이 '동적개체명:동적개체종류'의 형태로 표시될 수 있다.
동적개체 선택창(31)에 모아 놓을 동적개체, 정적개체 목록창(34)에 모아 놓을 정적개체, 명령선택창(32)에 모아 놓을 명령을 설정하는 방법은 다양하게 구성될 수 있다.
그 하나의 예는 동적개체 선택창(31)에 모아 놓을 동적개체, 정적개체 목록창(34)에 모아 놓을 정적개체, 명령선택창(32)에 모아 놓을 명령은 기본 항목으로 설정되어 있도록 구성하는 것이다. 즉, 프로그램 저작 도구(11)가 구동되면 사용자의 의사와는 관계없이 기본으로 설정되어 있는 동적개체, 정적개체, 명령이 각각의 창에 나타난다.
또 다른 예는 사용자가 프로그래밍에 사용하려는 동적개체, 정적개체, 명령을 동적개체 라이브러리, 정적개체 라이브러리, 명령 라이브러리에서 각각 선택하여 동적개체 선택창(31), 정적개체 목록창(34), 명령선택창(32)에 각각 설정할 수 있도록 구성하는 것이다. 이 경우 사용자는 프로그래밍에 필요한 요소들만을 모아 놓고 프로그래밍을 할 수 있어 프로그래밍 환경이 더욱 간명해 질 수 있다.
사용자가 시나리오 편집창(33)의 각 열에 동적개체를 등록하거나 각 행에 명령을 등록하는 과정은 동적개체 선택창(31)의 동적개체나 명령선택창(32)의 명령을 마우스를 이용하여 드래그한 후 시나리오 편집창(33)의 해당 위치에서 드롭하는 방식으로 이루어질 수 있다.
도시된 예로 설명하자면, 사용자는 동적개체 선택창(31)의 동적개체 #1을 마우스로 드래그한 후 시나리오 편집창(33)의 열 #1에서 드롭하여 동적개체 #1을 등록하였고, 명령선택창(32)의 명령 #3을 드래그한 후 열 #1의 행 #3에서 드롭하여 해당 행에 명령 #3을 등록하였다.
현재 시나리오 편집창(33)에는 3개의 열 #1 내지 #3에 각각 동적개체 #1 내지 #3이 등록되어 있다. 열 #1의 각 행에는 명령 #1 내지 명령 #4가 등록되어 있고, 열 #2에는 명령 #3이 행 #1에 등록되어 있고, 열 #3에는 명령 #3과 명령 #1이 행 #1과 #4에 각각 등록되어 있다. 현재 화면을 벗어나는 열과 행은 스크롤 바(33-2)를 이용하여 이동할 수 있다.
같은 행에 배치된 명령은 병렬적으로 실행되어야 하는 것을 의미하고, 각 열의 행 순서는 시간의 흐름에 따라 직렬적으로 수행되어야 하는 것을 의미한다.
이와 같이 사니리오 편집창(33)은 테이블 형식으로 구성되어 관리되고, 각 동적개체와 그에 대한 명령의 실행 순서가 일목요연하게 배치되어 나타나므로, 프로그래밍을 하는 사용자의 입장에서는 프로그램에 따라 이루어지는 연출 장면을 한 눈에 파악할 수 있다.
명령은 시나리오 편집창(33)에 등록된 동적개체를 동작시키거나, 또는 정적개체 목록창(34)에 존재하는 정적개체를 동작시키기 위한 것으로서, 이름과 하나 이상의 파라메터로 이루어진다.
이름은 해당 명령의 특성을 나타내도록 구성되는 것이 바람직하며, 각 파라메터는 해당 명령에 대한 구체적인 실행 방법을 지정한다.
시나리오 편집창(33)에 명령을 등록한 사용자는 해당 동적개체를 동작시키려는 의도에 따라 명령의 파라메터를 편집해야 한다.
도 4a는 명령선택창(32)에 들어 있는 명령의 예로서, '순간이동'이라는 이름을 갖는다. 파라메터로서는 '맵'으로 표현된 이동장소 파라메터, 위치를 나타내는 위치정보로서의 'x 좌표'와 'y 좌표' 파라메터, 해당 명령이 실행된 후 기다려야 하는 대기시간 파라메터가 있다. 이 명령은 이름이 암시하는 바와 같이 동적개체를 파라메터에서 지정하는 이동장소(맵)의 특정 위치(x 좌표, y좌표)로 이동시키고, 대기시간 동안 대기한다.
이와 같이, 명령선택창(32)에 존재하는 명령은 기본적인 명령 구조를 가지고 있으며, 사용자는 이 명령을 시나리오 편집창(33)에 등록한 후 해당 동적개체를 동작시킬 의도에 따라 각 파라메터를 편집한다.
각 파라메터는 '1' 이상의 정수를 입력해야 한다거나, 소수점 둘째 자리까지의 실수를 입력해야 한다거나, 또는 10글자 이내의 알파벳 문자열이어야 한다는 등의 제약 조건이 존재할 수 있다.
또한, 통화 포맷, 날짜 포맷, RGB 형식의 색 포맷. 'True' 또는 'False' 등의 토글형 포맷 등 다양한 특수 포맷을 가질 수도 있다.
포로그램 저작 도구(11)는 사용자의 편의를 위하여 명령 파라메터를 편리하게 편집할 수 있도록 해주는 다양한 인터페이스를 제공할 수 있다.
예를 들자면, 도 4b에 도시된 예와 같이 맵 파라메터에 설정할 수 있는 항목을 표시하여 사용자가 원하는 항목을 선택하도록 하거나, 도 4c에 도시된 예와 같이 좌표 등을 입력할 수 있도록 텍스트 입력 상자를 제공할 수 있다.
도 2로 돌아가서, 사용자는 자신이 작성한 프로그램이 실행되는 것을 살펴보고자 하는 경우 실행지시를 한다.
이에 따라 프로그램 저작 도구(11)는 실행모드로 진입하여 시나리오 편집창의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록된 명령을 순서대로 실행하여 출력한다. 이때, 현재 행의 모든 열에 대한 명령을 실행한 후 다음 행으로 진행하는 방식으로 실행하게 된다(S25).
단계 S25에서의 실행은 에뮬레이션(Emulation)의 의미를 가지며, 사용자가 현재까지 프로그래밍한 내용을 시험해 볼 수 있도록 하는 역할을 수행한다.
이때, 프로그램 저작 도구(11)는 현재 행에 대기시간 파라메터를 갖는 명령이 있을 경우, 현재 행의 모든 명령이 실행되더라도 현재 행의 각 명령 파라메터 중 가장 긴 대기시간이 종료할 때까지 대기한 후 다음 행을 실행한다.
단계 S25에서의 실행은 현재까지 작성된 프로그램을 테스트해 보려는 것이므로, 실행과 그 결과를 출력하는 방법은 사용자에게 도움을 주기 위하여 다양하게 구성될 수 있다.
예를 들자면, 실행과 관련한 정보를 표시하는 문자열 로그를 표시해줄 수 있다. 또한, 시나리오 편집창의 모든 명령에 대해 일괄적으로 실행하거나, 현재 행에 등록된 명령을 실행한 후 사용자의 지시를 기다려 다음 행을 실행하는 방식을 사용하거나, 또는 실행 도중 사용자가 임의로 중단시킬 수 있도록 하는 등의 방식을 적용할 수 있다.
도 5는 사용자가 게임 내의 장면을 연출하기 위하여 시나리오 편집창(53)을 작성한 예를 나타낸 것이다.
등록된 동적개체 정보를 표시하는 행(53-1)에는 'im', 'Tommy:주점주인', 'John:손님'이 표시되어 있는데, 이러한 표시는 위에서 설명한 바와 같이 '동적개체명:동적개체종류'의 형식에 따른 것이다. 주점주인과 손님이라는 동적개체는 NPC(Non Player Charater)의 특성을 가지며, 'im'은 게임 플레이어로서 이에 대해서는 다음에 다시 설명하기로 한다.
'im'이 등록된 열에는 시간 순서에 따라 '텔레포트', '이동', 'GUI', '행동'이라는 이름의 명령이 행 #1 내지 #4에 등록되어 있고, 'Tommy'가 등록된 열에는 '애니메이션'이라는 이름의 명령이 행 #1에 등록되어 있으며, 'Jhon'이 등록된 열에는 '애니메이션'이라는 이름의 명령이 행 #1과 #4에 등록되어 있다.
텔레포트라는 이름의 명령은 이동장소(맵)와 x, y 좌표, 대기시간의 파라메터를 가지고 있으며, 해당 동적개체를 지정된 장소의 좌표로 이동시킨 후 대기시간 동안 기다리게 한다.
이동이라는 이름의 명령은 대상, 지속시간, 대기시간의 파라메터를 가지고 있으며, 해당 동적개체를 대상 방향으로 지속시간만큼 이동시킨 후 대기시간 동안 기다리게 한다.
GUI라는 이름의 명령은 정적개체 목록창(54)에 들어 있는 정적개체를 동작시키는 명령으로서, 종류와 행동의 파라메터를 가지고 있으며, 종류 파라메터가 지정하는 정적개체를 행동 파라메터가 지정하는 값에 따라 동작하도록 한다.
애니메이션이라는 이름의 명령은 상태 파라메터를 가지고 있으며, 해당 동적개체가 상태 파라메터가 지시하는 액션을 취하도록 한다.
도 5에 도시한 예에서 사용자가 실행을 시킨 경우 프로그램 저작 도구(11)가 시나리오 편집창(53)에 등록된 명령을 실행하는 과정을 살펴보기로 한다.
먼저, 프로그램 저작 도구(11)는 동적개체 'im'을 식당의 좌표 (4111, 4113.5)로 이동시키고, 동적개체 'Tommy'를 서있는 모습으로 표시하며, 동적개체 'Jhon'을 앉아 있는 모습으로 표시한다.
이때, 현재 실행중인 행 #1에 속한 명령의 대기시간 파라메터 값 중 가장 긴 대기시간은 텔레포트 명령에 설정된 1초이다. 그러므로, 프로그램 저작 도구(11)는 1초가 경과한 다음 행 #2의 실행에 들어간다.
행 #2를 실행함에 있어서 프로그램 저작 도구(11)는 동적개체 'im'을 주점주인 방향으로 1초 동안 이동시킨 후 1초만큼 기다린다. 행 #2의 다른 열에는 명령이 등록되어 있지 않다.
행 #3을 실행함에 있어서 프로그램 저작 도구(11)는 동적개체 'im'에 대하여 정적개체 목록창(54)에 있는 정적개체 'speaker'를 켜진 상태로 나타나게 한다. 행 #3의 다른 열에는 명령이 등록되어 있지 않으므로 행 #4를 실행한다.
행 #4을 실행함에 있어서 프로그램 저작 도구(11)는 동적개체 'im'이 주점주인을 부르는 상태를 1초 동안 이루어지도록 하고, 동적개체 'Jhon'을 음식을 먹고 있는 모습으로 표시한다. 그리고, 행동 명령의 대기시간 파라메터에 따라 1초 동안 대기하게 된다.
이와 같이 프로그램 저작 도구(11)는 한 행의 각 열에 등록되어 있는 명령을 모두 실행한 후 다음 행의 각 명령을 실행하는 방식으로 진행한다.
도 6을 참조하자면, 사용자는 프로그램을 작성하는 도중 일단 중지하고 다음에 다시 프로그래밍을 계속하려고 하는 경우 내보내기를 지시한다(S26).
이에 따라 프로그램 저작 도구(11)는 내보내기 모드로 진입하여, 시나리오 편집창의 현재 등록상태, 즉 각 열에 등록된 동적개체와 각 행에 등록된 명령을 편집용 파일에 저장해 놓는다(S26-1). 이러한 편집용 파일은 프로그램 저작 도구(11)만이 인식할 수 있는 특정 형식을 가지도록 구성될 수 있으며, 특수한 확장자(예: .evs)를 가질 수 있다.
만일 사용자가 이전에 중지하였던 프로그램을 계속 작성하려면 불러오기를 지시한다(S27).
이에 따라 프로그램 저작 도구(11)는 불러오기 모드로 진입하여, 편집용 파일에 저장되어 있는 정보를 읽어 시나리오 편집창에 등록해 준다(S27-1). 그러면, 사용자는 이전에 작성하다가 중지한 상태로부터 다시 시작하여 프로그래밍을 계속 진행할 수 있다.
만일, 동적개체 선택창, 정적개체 목록창, 명령선택창에 각각 등록되는 동적개체, 정적개체, 명령이 사용자가 동적개체 라이브러리, 정적개체 라이브러리, 명령 라이브러리에서 각각 임의로 선택하여 등록해 놓을 수 있도록 구성되는 경우라면, 단계 S26-1과 S27-1은 동적개체 선택창, 정적개체 목록창, 명령선택창에 대해서도 이루어진다.
한편, 사용자가 작성한 프로그램을 스크립트 코드로 변환하고자 한다면, 소스코드 저장을 지시한다(S28).
이에 따라 프로그램 저작 도구(11)는 소스코드 저장 모드로 진입하여, 시나리오 편집창의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록되어 있는 명령을 순서대로 실행하되, 현재 행의 모든 열에 대한 명령을 실행한 후 다음 행을 실행하는 방식으로 진행할 수 있는 스크립트 코드를 생성하여 소스코드 파일로 저장한다(S28-1).
이때, 소스 코드를 생성할 스크립트 언어의 종류는 다양하게 존재하므로 프로그램 저작 도구(11)는 하나 이상의 스크립트 언어 종류를 화면에 표시하여, 소스코드 작성용 스크립트 언어를 사용자가 선택하도록 구성될 수 있다.
도 7은 도 5에 도시한 예에서 이루어진 프로그램에 관하여 생성된 스크립트 코드의 예이다.
각 모드의 전환은 사용자가 사용자 인터페이스 화면에 구비되는 버튼이나 메뉴, 또는 단축키 등을 이용하여 선택하도록 구성될 수 있다.
편집용 파일이나 소스코드 파일을 저장할 저장매체와 경로는 디폴트로 지정되거나, 사용자가 브라우징하여 지정하도록 구성될 수 있다. 이때, 저장매체는 컴퓨터에 구비된 저장매체(10-2)뿐 아니라 서버 측 스토리지(17-1)가 될 수도 있다. 또한, 편집용 파일이나 소스코드 파일의 이름도 디폴트로 지정되거나 사용자가 지정하도록 구성될 수 있다.
도 8을 참조하여, 본 발명에 따른 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구(80)의 일 실시예를 설명하기로 한다.
창 관리부(82)는 각종 동적개체를 모아 놓는 동적개체 선택창(81-2), 각종 정적개체를 모아 놓는 정적개체 목록창(81-1), 각종 명령을 모아 놓는 명령선택창(81-3), 시나리오 편집창(81-4)을 화면에 출력하는데, 시나리오 편집창(81-4)은 열과 행으로 이루어지는 테이블 형식으로 구성되고 관리된다.
동적개체 선택창(81-2)에 모아 놓을 동적개체, 정적개체 목록창(81-1)에 모아 놓을 정적개체, 명령선택창(81-3)에 모아 놓을 명령을 설정하는 방법은 다양하게 구성될 수 있다.
그 하나의 예는 동적개체 선택창(81-2)에 모아 놓을 동적개체, 정적개체 목록창(81-1)에 모아 놓을 정적개체, 명령선택창(81-3)에 모아 놓을 명령은 기본 항목으로 설정되어 있도록 구성하는 것이다.
이러한 실시예에서 창 관리부(82)는 사용자의 의사와 관계없이 동적개체 라이브러리(19-2), 정적개체 라이브러리(19-1), 명령 라이브러리(19-3)에서 각각 동적개체, 정적개체, 명령을 읽어와 기본 항목으로서 해당 창에 넣어 준다.
또 다른 예는 사용자가 프로그래밍에 사용하려는 동적개체, 정적개체, 명령을 선택하여 해당 창에 모아 놓을 수 있도록 구성하는 것이다.
이러한 실시예에서 창 관리부(82)는 사용자가 프로그래밍에 사용하려는 동적개체, 정적개체, 명령을 각각 동적개체 라이브러리(19-2), 정적개체 라이브러리(19-1), 명령 라이브러리(19-3)에서 선택하여 해당 창에 설정할 수 있도록 구성된다. 이 경우 사용자는 프로그래밍에 필요한 요소들만을 모아 놓고 작업을 할 수 있어 프로그래밍 환경이 더욱 간명해 질 수 있다.
시나리오 편집부(83)는 사용자가 동적개체 선택창(81-2)을 이용하여 시나리오 편집창(81-4)의 각 열에 동적개체를 등록할 수 있도록 한다.
또한, 시나리오 편집부(83)는 사용자가 시나리오 편집창(81-4)의 각 행에 해당 열에 등록되어 있는 동적개체를 동작시킬 명령 또는 정적개체 목록창(81-1)에 들어 있는 정적개체를 동작시킬 명령을 명령선택창(81-3)에서 선택하여 순서에 따라 등록할 수 있도록 한다.
시나리오 편집창(81-4)의 각 열에 동적개체를 등록하거나 각 열의 각 행에 명령을 등록하는 과정은, 사용자가 동적개체 선택창(81-2)의 어느 동적개체나 명령선택창(81-3)의 어느 명령을 마우스를 이용하여 드래그한 후 시나리오 편집창(81-4)의 해당 위치에서 드롭하는 방식으로 이루어지도록 구성될 수 있다.
시나리오 편집창(81-4)에서 하나의 열에는 하나의 동적개체만이 등록될 수 있으며, 각 열에 등록되는 동적개체는 고유한 이름을 가져야 한다. 그러므로 동적개체 선택창(81-2)에 존재하는 동적개체를 시나리오 편집창(81-4)에 등록할 때는 해당 동적개체를 고유하게 식별하기 위한 이름을 설정해야 하며, 시나리오 편집부(83)는 사용자가 동적개체를 시나리오 편집창에 등록할 때 이름을 설정할 수 있도록 처리한다.
동적개체명은 반드시 고유한 것이어야 하므로, 시나리오 편집부(83)는동적개체명이 중복되는 경우 사용자에게 다른 이름을 설정하도록 안내하거나, 어느 한쪽의 동적개체명을 고유한 임의의 이름으로 강제 할당할 수 있다.
시나리오 편집창(81-4)에 등록된 동적개체들은 고유 이름과 동적개체의 종류로 표시될 수 있다.
예를 들자면, '동적개체명:동적개체종류'의 형태로 표시될 수 있다. 여기서, 동적개체명은 해당 동적개체를 고유하게 식별하는 명칭이고, 동적개체종류는 동적개체의 특성을 나타낸다.
시나리오 편집창(81-4)에 등록될 수 있는 동적개체의 수, 즉 열의 수는 이론적으로 제한이 없으며 눈에 보이는 화면의 크기를 넘어가는 부분은 스크롤 바를 이용하여 찾아 볼 수 있도록 처리된다.
한편, 시나리오 편집부(83)는 특정 동적개체를 시나리오 편집창(81-4)에 기본적으로 포함시키도록 구성될 수 있다.
예로서 게임 플레이어가 게임 내에서 일정 시나리오에 따라 어떠한 역할을 수행하도록 장면을 연출하고자 한다면 게임 플레이어(캐릭터)는 기본 개체로서 당연히 포함되어야 한다. 그러므로, 프로그램 저작 도구(80)가 이러한 상황을 전문적으로 처리하도록 사용된다면, 타겟인 게임 플레이어는 오직 하나만 존재하기 때문에 시나리오 편집부(83)가 게임 플레이어를 시나리오 편집창(81-4)에 기본적으로 포함시키도록 구성될 수 있는 것이다. 이와 관련한 구체적인 예가 도 5에서의 동적개체인 'im'이다.
명령은 시나리오 편집창(81-4)에 등록된 동적개체를 동작시키거나, 또는 해당 동적개체와 관련하여 정적개체 목록창(81-1)에 들어 있는 정적개체를 동작시키기 위한 것으로서, 이름과 하나 이상의 파라메터로 이루어진다.
이름은 해당 명령의 특성을 나타내도록 구성되는 것이 바람직하며, 각 파라메터는 해당 명령에 대한 구체적인 실행 방법을 지정한다.
명령은 각 동적개체에 중복 적용되거나, 또는 어느 하나의 동적개체에 중복 적용될 수도 있는 것이므로 시나리오 편집창(81-4)에 등록되는 명령이 고유한 명칭을 갖도록 처리할 필요는 없다. 다만, 서로 다른 명령들은 각기 다른 이름을 가져야 함은 물론이다.
명령편집부(84)는 사용자가 시나리오 편집창(81-4)에 등록되어 있는 각 명령의 파라메터를 편집할 수 있도록 한다. 즉, 사용자는 해당 동적개체를 동작시키려는 의도에 따라 명령의 파라메터를 편집해야 한다.
명령 파라메터는 명령의 종류와 형태에 따라 다양하게 구성될 수 있는 것으로서, 동적개체나 정적개체의 위치정보, 해당 명령이 실행된 후 기다려야 하는 대기시간 등의 파라메터를 포함할 수 있다.
또한, 명령편집부(84)는 도 4를 참조하여 설명한 바와 같이 사용자의 편의를 위하여 명령 파라메터를 편리하게 편집할 수 있도록 해주는 다양한 인터페이스를 제공할 수 있다.
실행부(85)는 사용자의 지시에 따라 시나리오 편집창(81-4)의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록된 명령을 순서대로 실행하여 모니터(10-1)를 통해 출력한다.
이때, 실행부(85)는 현재 행의 모든 열에 대한 명령을 실행한 후 다음 행으로 진행하는 방식으로 실행한다.
또한, 실행부(85)는 현재 행에 대기시간 파라메터를 갖는 명령이 있을 경우, 현재 행의 모든 명령이 실행되더라도 현재 행의 각 명령 파라메터 중 가장 긴 대기시간이 종료할 때까지 대기한 후 다음 행을 실행한다.
실행부(85)가 수행하는 실행은 현재까지 작성된 프로그램을 테스트해 보려는 것이므로, 실행 방법과 그 결과를 출력하는 방법은 사용자에게 도움을 주기 위하여 다양하게 구성될 수 있다.
예를 들자면, 실행과 관련한 정보를 표시하는 문자열 로그를 표시해 줄 수 있다. 또한, 시나리오 편집창(81-4)의 모든 명령에 대해 일괄적으로 실행하거나, 현재 행에 등록된 명령을 실행한 후 사용자의 지시를 기다려 다음 행을 실행하는 방식을 사용하거나, 또는 실행 도중 사용자가 임의로 중단시킬 수 있도록 하는 등의 방식을 적용할 수 있다.
편집용 파일 저장부(86)는 사용자의 지시에 따라 시나리오 편집창(81-4)의 현재 상태, 즉 각 열에 등록된 동적개체와 각 행에 등록된 명령을 편집용 파일(19-4)에 저장해 놓는다. 이러한 편집용 파일(19-4)은 프로그램 저작 도구(11)만이 인식할 수 있는 특정 형식을 가지도록 구성될 수 있으며, 특수한 확장자(예: .evs)를 가질 수 있다.
편집용 파일 불러오기부(87)는 사용자의 지시에 따라 편집용 파일(19-4)에 저장되어 있는 정보를 읽어 시나리오 편집창(81-4)에 등록해 준다. 그러면, 사용자는 이전에 작성하다가 중지한 상태로부터 다시 시작하여 프로그래밍을 계속 진행할 수 있다.
만일, 동적개체 선택창(81-2), 정적개체 목록창(81-1), 명령선택창(81-3)에 각각 등록되는 동적개체, 정적개체, 명령이 사용자가 임의로 선택하여 등록해 놓을 수 있도록 구성되는 경우라면, 편집용 파일 저장부(86)와 편집용 파일 불러오기부(87)는 동적개체 선택창(81-2), 정적개체 목록창(81-1), 명령선택창(81-3)에 대해서도 그 역할을 수행한다.
프로그램 저작 도구(80)는 소스코드 저장부(88)를 포함하여 구성될 수 있다.
소스코드 저장부(88)는 사용자의 지시에 따라 시나리오 편집창(81-4)의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록되어 있는 명령을 순서대로 실행하되, 현재 행의 모든 열에 대한 명령을 실행한 후 다음 행을 실행하는 방식으로 진행할 수 있는 스크립트 코드를 생성하여 소스코드 파일(19-5)로 저장한다.
소스 코드를 생성할 스크립트 언어의 종류는 다양하게 존재하므로, 소스코드 저장부(88)는 도 9에 도시한 예와 같이 하나 이상의 스크립트 언어 종류를 화면에 표시하여, 소스코드 작성용 스크립트 언어를 사용자가 선택할 수 있도록 처리하고, 해당 언어로 소스 코드를 생성하도록 구성될 수 있다.
도 9에 도시된 예에서, 사용자는 스크립트 언어 선택창(90)의 아래 펼침 버튼(91)을 클릭하여 'LUA', 'Python', 'XML' 등의 각종 스크립트 언어의 종류를 보고 원하는 스크립트 언어를 선택함으로써 해당 언어로 변환된 소스 코드를 얻을 수 있게 된다.
상술한 실시예는 본 발명의 이해를 돕기 위한 것이며, 본 발명은 상술한 실시예에 한정되지 않고 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당업자에 의해 다양하게 변형하여 실시할 수 있는 것임은 물론이다.
도 1은 프로그램 저작 도구가 사용되는 시스템의 개요,
도 2와 도 6은 본 발명에 따른 프로그램 저작 방법의 일 실시예,
도 3과 도 5는 사용자 인터페이스 화면의 예,
도 4는 명령과 파라메터 편집을 설명하기 위한 개요,
도 7은 스크립트 언어로 변환된 소스 코드의 예,
도 8은 본 발명에 따른 프로그램 저작 도구의 일 실시예이다.
* 도면의 주요부분에 대한 부호의 설명
10: 컴퓨터 10-1: 모니터
10-2: 저장매체 11,80: 프로그램 저작 도구
15: 통신망 17: 서버
17-1: 스토리지 19-1: 정적개체 라이브러리
19-2: 동적개체 라이브러리 19-3: 명령 라이브러리
19-4: 편집용 파일 19-5: 소스코드 파일
31,81-2: 동적개체 선택창 31,81-3: 명령선택창
33,53,81-4: 시나리오 편집창 34,54,81-1: 정적개체 목록창
82: 창 관리부 83: 시나리오 편집부
84: 명령 편집부 85: 실행부
86: 편집용 파일 저장부 87: 편집용 파일 불러오기부
88: 소스코드 저장부

Claims (17)

  1. 컴퓨터에서 구동된 프로그램 저작 도구가 시나리오에 따라 연출되는 장면을 프로그래밍할 수 있도록 해주는 프로그램 저작 방법에 있어서,
    동적개체를 모아 놓은 동적개체 선택창, 정적개체를 모아 놓은 정적개체 목록창, 명령을 모아 놓은 명령선택창, 테이블 형식으로 구성되는 시나리오 편집창을 화면에 출력하는 단계;
    편집모드일 경우, 사용자가 상기 동적개체 선택창을 이용하여 상기 시나리오 편집창의 각 열에 동적개체를 등록하고, 상기 명령선택창을 이용하여 상기 시나리오 편집창의 각 행에 해당 열의 동적개체나 상기 정적개체 목록창의 정적개체를 동작시킬 명령을 등록하며, 상기 시나리오 편집창에 등록된 명령의 파라메터를 편집할 수 있도록 하는 단계;
    실행모드일 경우, 상기 시나리오 편집창의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록된 명령을 순서대로 실행(현재 행의 모든 열에 대한 명령을 실행한 후 다음 행으로 진행함)하는 단계;
    내보내기 모드일 경우, 상기 시나리오 편집창의 등록상태 정보를 편집용 파일에 저장해 놓는 단계; 및
    불러오기 모드일 경우, 상기 편집용 파일에 저장되어 있는 등록상태 정보를 읽어 상기 시나리오 편집창에 등록하는 단계를 포함하여 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법.
  2. 제 1 항에 있어서,
    소스코드 저장 모드일 경우, 상기 시나리오 편집창의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록된 명령을 순서대로 실행(현재 행의 모든 열에 대한 명령을 실행한 후 다음 행으로 진행함)할 수 있는 스크립트 코드를 소스코드 파일로 저장하는 단계를 더 포함하여 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 동적개체 선택창에 모아 놓을 동적개체, 상기 정적개체 목록창에 모아 놓을 정적개체, 상기 명령선택창에 모아 놓을 명령은 디폴트로 설정되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 동적개체 선택창에 모아 놓을 동적개체, 상기 정적개체 목록창에 모아 놓을 정적개체, 상기 명령선택창에 모아 놓을 명령은 사용자가 동적개체 라이브러리, 정적개체 라이브러리, 명령 라이브러리에서 각각 선택하여 설정하도록 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법.
  5. 제 1 항 또는 제 2 항에 있어서,
    사용자가 상기 시나리오 편집창의 각 열에 동적개체를 등록하거나 상기 시나리오 편집창의 각 행에 명령을 등록하는 과정은 '드래그 & 드롭' 방식으로 이루어지도록 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 명령의 파라메터는 동적개체나 정적개체의 위치를 나타내는 정보를 포함하여 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법.
  7. 제 1 항 또는 제 2 항에 있어서,
    상기 명령의 파라메터는 해당 명령이 실행된 후 다음 행의 명령이 실행되기까지 기다려야 하는 대기시간을 포함하여 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법.
  8. 제 7 항에 있어서,
    상기 프로그램 저작 도구는 실행모드일 경우 현재 행의 모든 명령을 실행하고 현재 행의 각 명령 파라메터 중 가장 긴 대기시간이 종료한 후 다음 행을 실행하도록 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법.
  9. 컴퓨터에서 구동하여 사용자가 시나리오에 따라 연출되는 장면을 프로그래밍할 수 있도록 해주는 프로그램 저작 도구에 있어서,
    동적 동적개체를 모아 놓은 동적개체 선택창, 정적개체를 모아 놓은 정적개체 목록창, 명령을 모아 놓은 명령선택창, 테이블 형식으로 구성되는 시나리오 편집창을 화면에 출력하는 창 관리부;
    사용자가 상기 동적개체 선택창을 이용하여 상기 시나리오 편집창의 각 열에 동적개체를 등록하고, 상기 명령선택창을 이용하여 상기 시나리오 편집창의 각 행에 해당 열의 동적개체나 상기 정적개체 목록창의 정적개체를 동작시킬 명령을 등록할 수 있도록 하는 시나리오 편집부;
    사용자가 상기 시나리오 편집창에 등록되어 있는 명령의 파라메터를 편집할 수 있도록 하는 명령편집부;
    사용자의 지시에 따라, 상기 시나리오 편집창의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록된 명령을 순서대로 실행(현재 행의 모든 열에 대한 명령을 실행한 후 다음 행으로 진행함)하는 실행부;
    사용자의 지시에 따라, 상기 시나리오 편집창의 등록상태 정보를 편집용 파일에 저장해 놓는 편집용 파일 저장부; 및
    사용자의 지시에 따라, 상기 편집용 파일의 등록상태 정보를 읽어 상기 시나리오 편집창에 등록시켜주는 편집용 파일 불러오기부를 포함하여 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구.
  10. 제 9 항에 있어서,
    사용자의 지시에 따라, 상기 시나리오 편집창의 각 열에 등록되어 있는 동적개체에 대하여 각 행에 등록된 명령을 순서대로 실행(현재 행의 모든 열에 대한 명령을 실행한 후 다음 행으로 진행함)할 수 있는 스크립트 코드를 소스코드 파일로 저장하는 소스코드 저장부를 더 포함하여 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구.
  11. 제 10 항에 있어서,
    상기 소스코드 저장부는 사용자가 상기 스크립트 코드를 생성할 스크립트 언어의 종류를 선택할 수 있도록 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구.
  12. 제 9 항 내지 제 11 항 중 어느 하나의 항에 있어서,
    상기 창 관리부는 상기 동적개체 선택창에 모아 놓을 동적개체, 상기 정적개체 목록창에 모아 놓을 정적개체, 상기 명령선택창에 모아 놓을 명령을 동적개체 라이브러리, 정적개체 라이브러리, 명령 라이브러리에서 각각 읽어 오도록 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구.
  13. 제 9 항 내지 제 11 항 중 어느 하나의 항에 있어서,
    상기 창 관리부는 사용자가 프로그래밍에 사용할 동적개체, 정적개체, 명령을 동적개체 라이브러리, 정적개체 라이브러리, 명령 라이브러리에서 각각 선택하여 상기 동적개체 선택창, 상기 정적개체 목록창, 상기 명령선택창에 각각 모아 놓을 수 있도록 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구.
  14. 제 9 항 내지 제 11 항 중 어느 하나의 항에 있어서,
    상기 시나리오 편집부는 특정 동적개체를 상기 시나리오 편집창에 기본적으로 포함시키도록 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구.
  15. 제 9 항 내지 제 11 항 중 어느 하나의 항에 있어서,
    사용자가 상기 시나리오 편집창의 각 열에 동적개체를 등록하거나 상기 시나리오 편집창의 각 행에 명령을 등록하는 과정은 '드래그 & 드롭' 방식으로 이루어지도록 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구.
  16. 제 9 항 내지 제 11 항 중 어느 하나의 항에 있어서,
    상기 명령의 파라메터는 동적개체나 정적개체의 위치정보를 포함하여 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구.
  17. 제 9 항 내지 제 11 항 중 어느 하나의 항에 있어서,
    상기 명령의 파라메터는 해당 명령이 실행된 후 기다려야 하는 대기시간을 포함하여 구성되고, 상기 실행부는 현재 행의 모든 열에 대한 명령을 실행한 후 현재 행의 각 명령 파라메터 중 가장 긴 대기시간이 종료하기를 기다렸다가 다음 행을 실행하도록 구성되는 것을 특징으로 하는 직관적 사용자 인터페이스를 이용한 프로그램 저작 도구.
KR1020080113209A 2008-11-14 2008-11-14 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및저작 도구 KR101559172B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080113209A KR101559172B1 (ko) 2008-11-14 2008-11-14 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및저작 도구

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080113209A KR101559172B1 (ko) 2008-11-14 2008-11-14 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및저작 도구

Publications (2)

Publication Number Publication Date
KR20100054330A true KR20100054330A (ko) 2010-05-25
KR101559172B1 KR101559172B1 (ko) 2015-10-13

Family

ID=42279079

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080113209A KR101559172B1 (ko) 2008-11-14 2008-11-14 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및저작 도구

Country Status (1)

Country Link
KR (1) KR101559172B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180013119A (ko) * 2016-07-28 2018-02-07 주식회사 케이티 도움말 제공 장치 및 방법
KR20200042609A (ko) * 2018-10-16 2020-04-24 스튜디오씨드코리아 주식회사 디지털 컨텐츠 저작 툴의 작업 화면 자동 모드 전환 방법
KR20210027311A (ko) * 2021-02-23 2021-03-10 스튜디오씨드코리아 주식회사 디지털 컨텐츠 저작 툴의 작업 화면 자동 모드 전환 방법
KR20210073901A (ko) * 2019-12-11 2021-06-21 스노우 주식회사 카메라 이펙트를 위한 스크립트 생성 방법 및 시스템
KR20220066537A (ko) 2020-11-16 2022-05-24 황대민 프로그램의 간편 제작방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889514A (en) 1996-03-29 1999-03-30 International Business Machines Corp. Method and system for a multimedia application development sequence editor using spacer tools
KR100610362B1 (ko) 2003-07-22 2006-08-16 재단법인서울대학교산학협력재단 실시간 객체모델에 대하여 시나리오 기반 멀티쓰레드구현을 자동생성하는 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180013119A (ko) * 2016-07-28 2018-02-07 주식회사 케이티 도움말 제공 장치 및 방법
KR20200042609A (ko) * 2018-10-16 2020-04-24 스튜디오씨드코리아 주식회사 디지털 컨텐츠 저작 툴의 작업 화면 자동 모드 전환 방법
US11347382B2 (en) 2018-10-16 2022-05-31 Studio Xid Korea, Inc. Method of automatically switching mode of work screen of digital content authoring tool
KR20210073901A (ko) * 2019-12-11 2021-06-21 스노우 주식회사 카메라 이펙트를 위한 스크립트 생성 방법 및 시스템
KR20220066537A (ko) 2020-11-16 2022-05-24 황대민 프로그램의 간편 제작방법
KR20210027311A (ko) * 2021-02-23 2021-03-10 스튜디오씨드코리아 주식회사 디지털 컨텐츠 저작 툴의 작업 화면 자동 모드 전환 방법

Also Published As

Publication number Publication date
KR101559172B1 (ko) 2015-10-13

Similar Documents

Publication Publication Date Title
JP6309185B2 (ja) 画像表示プログラム、画像表示装置、画像表示システム、および画像表示方法
US20120107790A1 (en) Apparatus and method for authoring experiential learning content
KR101114997B1 (ko) 게임 소프트웨어 및 게임장치
JP2012208622A (ja) 選択装置、選択方法、ならびに、プログラム
US9808716B2 (en) Display grid for video game input on touchscreen display
KR20100054330A (ko) 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및저작 도구
Mark et al. Beginning iOS6 Development
Mark Beginning iOS 5 Development: Exploring the iOS SDK
Walter et al. Learning MIT app inventor: A hands-on guide to building your own android apps
JP6049923B1 (ja) 部品情報検索装置、部品情報検索方法、およびプログラム
Cordone Unreal Engine 4 Game Development Quick Start Guide: Programming professional 3D games with Unreal Engine 4
US20110209117A1 (en) Methods and systems related to creation of interactive multimdedia applications
JP2009026239A (ja) Gui編集装置、gui編集方法およびプログラム
JP2013196414A (ja) 情報処理プログラム、情報処理装置、情報処理システムおよび表示制御方法
Magni Delphi GUI Programming with FireMonkey: Unleash the full potential of the FMX framework to build exciting cross-platform apps with Embarcadero Delphi
US20090295716A1 (en) Method for moving cursor and storage medium thereof
KR101240186B1 (ko) 가상 실험 학습 장치 및 그 방법
Correa Digitopolis II: Creation of video games GDevelop
WO2024092489A1 (zh) 游戏交互方法、计算机设备、存储介质和程序产品
Nong DESKTOP APPLICATION FOR THE PUZZLE BOARD GAME “RUSH HOUR”
van Toll et al. User Interfaces and Menus
Hung Usability and learnability improvements for the TaleBlazer game editor
Alessi Beginning IOS Game Development
Aurigemma Fairytool: Learn and Socialize by making games
KR20140006177A (ko) 다수의 구성요소를 가지는 콘텐츠의 그래픽 기반 저작 방법 및 컴퓨터 판독 가능한 기록매체

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190904

Year of fee payment: 5