KR101552384B1 - 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법 - Google Patents

인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법 Download PDF

Info

Publication number
KR101552384B1
KR101552384B1 KR1020130017216A KR20130017216A KR101552384B1 KR 101552384 B1 KR101552384 B1 KR 101552384B1 KR 1020130017216 A KR1020130017216 A KR 1020130017216A KR 20130017216 A KR20130017216 A KR 20130017216A KR 101552384 B1 KR101552384 B1 KR 101552384B1
Authority
KR
South Korea
Prior art keywords
editing
function
action
function module
processing unit
Prior art date
Application number
KR1020130017216A
Other languages
English (en)
Other versions
KR20140105044A (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 KR1020130017216A priority Critical patent/KR101552384B1/ko
Publication of KR20140105044A publication Critical patent/KR20140105044A/ko
Application granted granted Critical
Publication of KR101552384B1 publication Critical patent/KR101552384B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

멀티미디어 컨텐츠의 오브젝트에 지정할 액션기능에 상응하여 XML 파일내에 XML 구문으로 정의되어 XML 트리로 생성되는 기능 실행부; 상기 XML 트리에 지정된 각 액션기능에 매칭되어 구비되며, XML 파일내에 생성된 상기 XML 트리를 일련의 액션기능을 수행하기 위한 프로그래밍 형태로 파싱하는 XML 파서; 상기 XML 트리에 일련의 액션기능을 지정하기 위한 변수를 설정하여 상기 XML 파일을 편집하는 편집 처리부; 및 상기 XML 파서에 의해 파싱된 프로그래밍된 액션기능을 임의의 오브젝트에 대하여 부분 실행 또는 전체 실행을 통해 이벤트 발생 또는 시퀀스에 따라 해당 기능 실행부를 실행하여 시뮬레이션 결과를 보여주는 시뮬레이션 처리부를 포함하는 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템이 제공된다.

Description

인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법{SYSTEM FOR AUTHORING MULTIMEDIA CONTENTS INTERACTIVELY AND METHOD THEREOF}
본 발명은 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법에 관한 것으로, 상세하게는 이북(e-book) 저작 인터페이스 환경을 제공함으로써, 다양한 멀티미디어 컨텐츠를 포함하는 이북 제작에 대한 전문적인 지식이 없는 일반 사용자도 쉽고 간편하게 이북 콘텐츠를 저작할 수 있게 하는 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법에 관한 것이다.
최근 들어, 스마트폰(smart phone), 노트패드(notepad), 태블릿(tablet) 컴퓨터 등과 같은 모바일 멀티미디어 단말의 급속한 보급으로 인하여 AV(Audio/Video) 재생 및 사용자와의 상호작용(interaction)에 의한 데이터 전송 및 공유 기능이 보편화되어 가고 있다.
반면, 기존의 보편화된 이북(e-book) 서비스는 텍스트 중심의 삽화 정도를 제공하는 수준이며, 일부 규격화한 이북 오픈 표준(open standard)의 경우에도 텍스트와 정지영상을 정의하는데 그치고 있다.
따라서, 텍스트 수준이 아닌 다양한 멀티미디어, 그래픽 애니메이션 및 사용자 상호작용을 제공하는 리치미디어 이북 서비스 환경이 요구되는 실정이다.
일반적으로 특정 기능을 수행하는 어플리케이션은 사용자 인터페이스(UI:User Interface)를 제공한다. 사용자 인터페이스는 정보를 주고받기 위해 사용자와 어플리케이션이 상호 작용하는 프로그램의 일부를 지칭한다. 사용자 인터페이스는 어플리케이션과 사용자 간의 상호 작용을 위한 메뉴, 버튼, 선택 상자, 스크롤 바 등 다양한 컴포넌트(component)들로 구성된다.
현재 이러한 사용자 인터페이스를 개발할 수 있는 다양한 툴(tool)이 개발되어 사용되고 있다. 마이크로소프트사의 비쥬얼 스튜디오(Visual Studio)를 예로 들 수 있다. 그런데 이러한 종래의 사용자 인터페이스 개발 툴은 대부분 사용자 인터페이스 라이브러리(UI Library)를 이용한다. 사용자 인터페이스 라이브러리에는 상기와 같은 메뉴, 버튼 등의 다양한 컴포넌트들이 미리 정의되어, 개발자는 라이브러리에 있는 컴포넌트를 가져다 사용하기만 하면 된다.
그러나 상술한 바와 같은 종래의 사용자 인터페이스 개발 툴에서는 라이브러리에 포함되어 있는 컴포넌트만을 이용할 수 있어 사용자 인터페이스를 개발하는데 상당한 한계가 있다. 예컨대, 라이어브러리에 포함되어 있지 않은 컴포넌트를 추가하거나, 또는 라이브러리에 포함되어 있는 컴포넌트의 타입(type) 및 속성(property)을 편집하기 위해서는, 사용자가 직접 컴포넌트를 코딩(coding)해야하는데, 사용자는 프로그램 개발자가 아니기 때문에 상당한 부담이 되는 문제점이 있다.
본 발명이 해결하고자 하는 과제는 이북(e-book) 저작 인터페이스 환경을 제공함으로써, 다양한 멀티미디어 컨텐츠를 포함하는 이북 제작에 대한 전문적인 지식이 없는 일반 사용자도 쉽고 간편하게 이북 콘텐츠를 저작할 수 있게 하는 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법을 제공하는데 있다.
본 발명의 일측면에 의하면, 멀티미디어 컨텐츠의 오브젝트에 지정할 액션기능에 상응하여 XML 파일내에 XML 구문으로 정의되어 XML 트리로 생성되는 기능 실행부; 상기 XML 트리에 지정된 각 액션기능에 매칭되어 구비되며, XML 파일내에 생성된 상기 XML 트리를 일련의 액션기능을 수행하기 위한 프로그래밍 형태로 파싱하는 XML 파서; 상기 XML 트리에 일련의 액션기능을 지정하기 위한 변수를 설정하여 상기 XML 파일을 편집하는 편집 처리부; 및 상기 XML 파서에 의해 파싱된 프로그래밍된 액션기능을 임의의 오브젝트에 대하여 부분 실행 또는 전체 실행을 통해 이벤트 발생 또는 시퀀스에 따라 해당 기능 실행부를 실행하여 시뮬레이션 결과를 보여주는 시뮬레이션 처리부를 포함하는 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템이 제공된다.
상기 XML 트리는 변수, 연산, 액션을 지정하기 위한 XML 구문을 포함할 수 있다.
상기 XML 파서는 파서 라이브러리 형태로 앱패키징될 수 있다.
상기 편집 처리부는, 상기 XML 파서에 매칭되어 상기 각 오브젝트에 임의의 액션을 지정하기 위해 XML 파일내에 생성된 XML 트리에 대한 코드 편집 모드와 오브젝트 이미지 편집 모드간에 편집 작업과 편집 결과를 서로 인터랙티브하게 반영하여 상기 멀티미디어 컨텐츠의 편집을 수행할 수 있다.
상기 편집 처리부는, 상기 오브젝트 이미지 편집 모드를 수행하기 위한 이미지 편집창을 실행하고 있는 상태에서 상기 XML 파일에 대한 코드 편집 작업을 수행하고 저장하면, 해당 편집 결과를 상기 이미지 편집창에 랜더링할 수 있다.
상기 편집 처리부는, 상기 오브젝트 이미지 편집 모드를 수행하기 위한 이미지 편집창을 실행하고 있는 상태에서 상기 이미지 편집창에 랜더링된 오브젝트에 대한 편집을 수행하고 저장하면 해당 편집 결과를 상기 XML 파일에 대한 코드 편집 결과로 반영할 수 있다.
상기 편집 처리부는, 상기 오브젝트 이미지 편집 모드를 수행하기 위한 이미지 편집창을 실행하고 있는 상태에서 상기 이미지 편집창에 랜더링된 오브젝트의 이동, 속성창에서의 속성값 설정을 통해 편집을 수행할 수 있다.
상기 시뮬레이션 처리부는 상기 XML 파일의 코드 편집 모드와 상기 오브젝트 이미지 편집 모드의 수행에 의한 편집 결과에 대하여 오브젝트별 부분 실행 또는 전체 실행을 통해 상기 각 오브젝트에 프로그래밍된 액션을 재생하여 시뮬레이션 결과를 보여줄 수 있다.
상기 편집 처리부는, 상기 코드 편집 작업이 수행된 XML 파일을 상기 오브젝트 이미지 편집 모드를 수행하기 위한 이미지 편집창에 드래그 앤 드롭하면 편집 결과를 상기 오브젝트 이미지 편집 모드에 랜더링할 수 있다.
상기 기능 실행부는 액션 기능 모듈, 오브젝트 기능 모듈, 물리 기능 모듈, 조인트 기능 모듈, 트리거 기능 모듈, 이벤트 기능 모듈, 조건문, 변수 및 사칙 연산 기능 모듈, 다국어 설정 기능 모듈, 네이티브 코드 연계 기능 모듈 중 하나 이상을 포함할 수 있다.
상기 멀티 미디어 컨텐츠 저작 시스템은 상기 편집 처리부 및 상기 시뮬레이션 처리부의 실행에 필요한 상황별 조작 안내와 멀티 미디어 컨텐츠의 저작을 위한 튜터링 기능을 제공하는 사용 안내 처리부를 더 포함할 수 있다.
본 발명의 다른 측면에 의하면, XML 파일에 대한 코드 편집 모드와 오브젝트 이미지 편집 모드간에 편집 작업과 편집 결과를 서로 인터랙티브하게 반영하여 멀티미디어 컨텐츠의 오브젝트에 임의의 액션을 지정하는 단계; 상기 멀티미디어 컨텐츠의 편집에서 상기 멀티미디어 컨텐츠의 오브젝트에 지정된 액션 기능에 상응하여 XML 파일내에 XML 구문으로 정의되는 XML 트리를 생성하는 단계; 상기 XML 트리에 매칭되어 구비된 XML 파서를 이용하여, 상기 XML 파일내에 생성된 상기 XML 트리를 일련의 액션을 수행하기 위한 프로그래밍 형태로 파싱하는 단계; 상기 XML 파서에 의해 파싱된 프로그래밍된 액션을 임의의 오브젝트에 대하여 부분 실행 또는 전체 실행을 통해 이벤트 발생 또는 시퀀스에 따라 지정된 액션기능을 수행하여 시뮬레이션 결과를 보여주는 단계를 포함하는 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템의 편집 방법이 제공된다.
본 발명의 또 다른 측면에 의하면, 멀티 미디어 컨텐츠 저작 시스템과 원격으로 연동하는 서버로서, 상기 멀티 미디어 컨텐츠 저작 시스템은, 멀티미디어 컨텐츠의 오브젝트에 지정할 액션기능에 상응하여 XML 파일내에 XML 구문으로 정의되어 XML 트리로 생성되는 기능 실행부; 상기 XML 트리에 지정된 각 액션기능에 매칭되어 구비되며, XML 파일내에 생성된 상기 XML 트리를 일련의 액션기능을 수행하기 위한 프로그래밍 형태로 파싱하는 XML 파서; 상기 XML 트리에 일련의 액션기능을 지정하기 위한 변수를 설정하여 상기 XML 파일을 편집하는 편집 처리부; 및 상기 XML 파서에 의해 파싱된 프로그래밍된 액션기능을 임의의 오브젝트에 대하여 부분 실행 또는 전체 실행을 통해 이벤트 발생 또는 시퀀스에 따라 해당 기능 실행부를 실행하여 시뮬레이션 결과를 보여주는 시뮬레이션 처리부를 포함하며, 상기 서버는 상기 멀티 미디어 컨텐츠 저작 시스템과 인증키를 백그라운드에서 주기적으로 송수신하여 상기 멀티 미디어 컨텐츠 저작 시스템에서의 사용권한 여부를 판별하여 사용권한이 없거나 상실된 경우 상기 기능 실행부, 상기 편집 처리부, 또는 상기 시뮬레이션 처리부의 동작을 비활성화시키는 서버가 제공된다.
본 발명에 의하면, 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법을 통해 다양한 멀티미디어 컨텐츠를 포함하는 이북을 저작할 수 있도록 사용자 인터페이스 환경을 제공함으로써, 이북 제작에 관하여 전문적인 지식이 없는 일반 사용자도 쉽고 간편하게 이북 콘텐츠를 작성하여 이북 서비스에 참여할 수 있다. 서비스 사업자 측면에서 이북 서비스 수요 증가로 인한 수익 증가를 예상할 수 있다.
도 1은 본 발명의 일실시예에 따른 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템을 설명하기 위한 도면이다.
도 2a는 본 발명의 일실시예에 따른 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템에서 이미지 편집 모드의 실행 화면을 설명하는 도면이다.
도 2b는 본 발명의 일실시예에 따른 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템에서 시뮬레이션 모드의 실행 화면을 설명하는 도면이다.
도 3은 본 발명의 일실시예에 따른 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템의 저작 방법을 설명하기 위한 흐름도이다.
도 4 내지 도 22는 본 발명의 일실시예에 따른 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템에서 저작 방법을 설명하기 위한 도면이다.
이하, 첨부한 도면들을 참조하여 본 발명의 실시예들을 상세히 설명하기로 한다. 다음에 소개되는 실시예들을 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 예로서 제공되는 것이다. 따라서, 본 발명은 이하 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 그리고, 도면들에 있어서, 구성요소의 폭, 길이, 두께 등은 편의를 위하여 과장되어 표현될 수 있다. 명세서 전체에 걸쳐서 동일한 참조번호들은 동일한 구성요소들을 나타낸다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
도 1은 본 발명의 일실시예에 따른 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 따른 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템(100)은 기능 실행부(110), XML 파서(120), 편집 처리부(130), 시뮬레이션 처리부(140), 사용 안내 처리부(150), 서비스 제어부(160)를 포함할 수 있다.
멀티 미디어 컨텐츠 저작 시스템(100)은 데스크탑 컴퓨터, 노트북 컴퓨터(laptop computer), 태블릿 PC내에 구현될 수 있다. 그러나, 본 발명은 이에 제한되지 않고 휴대폰, 스마트 폰(smart phone), 패드, 노트, 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션 등과 같은 이동 단말기와 디지털 TV와 같은 고정 단말기에도 적용될 수 있다.
멀티 미디어 컨텐츠 저작 시스템(100)은 통신 기능을 구비하여 원격에 있는 서버(200)와 연동될 수 있다.
서버(200)는 멀티 미디어 컨텐츠 저작 시스템(100)과 인증키를 백그라운드에서 주기적으로 송수신하여 멀티 미디어 컨텐츠 저작 시스템(100)에서의 사용권한 여부를 판별하여 사용권한이 없거나 상실된 경우 기능 실행부(110), 편집 처리부(130), 시뮬레이션 처리부(140), 사용 안내 처리부(150), 서비스 제어부(160)의 동작을 비활성화시킬 수 있다.
기능 실행부(110)는 멀티미디어 컨텐츠의 오브젝트에 지정할 액션기능에 상응하여 XML 파일내에 XML 구문으로 정의되어 XML 트리로 생성될 수 있다.
XML 트리는 변수, 연산, 액션을 지정하기 위한 XML 구문을 포함할 수 있다.
기능 실행부(110)는 멀티미디어 컨텐츠에 포함되는 각 오브젝트에 대해 설정된 각 기능을 실행할 수 있다. 이를 위해 기능 실행부(110)는 멀티 미디어 컨텐츠 저작시에 필요한 다양한 기능들을 실행하기 위한 기능 모듈들을 포함할 수 있다. 예를 들어, 기능 실행부(110)는 액션 기능 모듈(111), 오브젝트 기능 모듈(112), 물리 기능 모듈(113), 조인트 기능 모듈(114), 트리거 기능 모듈(115), 이벤트 기능 모듈(116), 조건문, 변수 및 사칙 연산 기능 모듈(117), 다국어 설정 기능 모듈(118), 네이티브 코드 연계 기능 모듈(119)을 포함할 수 있다.
액션 기능 모듈(111)은 복수의 액션, 시퀀스, 스팬의 조합에 의한 액션을 실행할 수 있다. 액션 기능 모듈(111)은 수많은 액션과 시퀀스(Sequence), 스팬(Spawn)같은 조합 액션을 통해, 조합이 가하도록 한다. 물리와 일반 액션의 연계성이 매우 좋다.
액션 기능 모듈(111)은 다양한 액션을 위한 기능을 정의할 수 있다. 액션 기능 모듈(111)은 JumpBy, JumpTo, MoveBy, MoveTo, FadeIn, FadeOut, FadeInBy, FadeInTo, FadeOutBy, FadeOutTo, FlipX, FlipY, ScaleBy, ScaleTo, Show, Hide, Blink, TintBy, ToggleVisible와 같은 태그를 사용하여 다양한 일반 액션을 정의할 수 있다.
액션 기능 모듈(111)은 PhysicAdd, Force, DelJoint, ReviveJoint, ReviveJointByIndex, PhysicActive, PhysicAwake, PhysicDestroy 와 같은 태그를 사용하여 다양한 물리 액션을 정의할 수 있다.
액션 기능 모듈(111)은 Sequence, Spawn, Repeat 와 같은 태그를 사용하여 융합 액션을 정의할 수있다.
액션 기능 모듈(111)은 IfNearObject, IfNearThenAttach, IfNear, IfNearPhysic, Switch, If, Set와 같은 조건문과 변수의 태그를 사용할 수 있다.
액션 기능 모듈(111)은 ShapeMove, ActionStop, ActionPause, ActionResume, PlaceOrigin, Place와 같은 응용 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 Event, TouchEnable와 같은 이벤트 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 ZorderAdd, StatAdd 와 같은 상태 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 ParticleRun, ParticleStop와 같은 파티클 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 Trigger, TvTrigger와 같은 트리거 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 Animate와 같은 애니메이션 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 TouchDown, TouchUp, TouchDrag, FollowPos 와 같은 이벤트 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 SndBack, SndEffect, StopBGM 와 같은 사운드 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 AttachAsChild, RemoveFromParent, Zorder 와 같은 레이아웃 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 LoadNarration, SndNarration 와 같은 대본 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 Link 와 같은 앱스토어 링크 태그를 정의할 수 있다.
액션 기능 모듈(111)은 BuyItem 와 같은 In App Purchase 태그를 정의할 수 있다.
액션 기능 모듈(111)은 DynSprite 와 같은 동적 스프라이트 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 Scene, SavePos, PlaceSavedPos, MoveSavedPos, MoveOriginal, ScaleOriginal, RotateOriginal, IfNearOriginal 와 같은 확장 액션 태그를 정의할 수 있다.
액션 기능 모듈(111)은 Log, CallFuncO 와 같은 시스템 태그를 정의할 수 있다.
오브젝트 기능 모듈(112)은 각종 오브젝트를 정의할 수 있다. 오브젝트 기능 모듈(112)은 이미지에 관련된 스프라이트(Sprite), 보이지 않는 영역 설정 및 오브젝트 연동에 사용하는 영역(Region), Convex, Covey 형태의 Polyon의 내부를 채우는 필드 스프라이트(FilledSprite), 레이어(Layer), 장면(Scene), 애니메이션(Animation)를 정의하고 있다.
물리 기능 모듈(113)은 물리 기능을 손쉽게 편집할 수 있다. 물리 기능 모듈(113)은 Circle, Box, Polyline, Polygon 형태의 물리 오브젝트 설정이 가능하다. 또한, 물리 기능 모듈(113)은 밀도, 타입(dynamic, static), Rotation 고정, Sensor 기능을 손쉽게 지정 및 변경할 수 있다. 물리 기능 모듈(113)은 오브젝트에 대한 중력, 탄성, 마찰 계수 설정 기능이 가능하다.
조인트 기능 모듈(114)은 물리 오브젝트들 간의 관계를 빠르게 설정할 수 있다. 조인트 기능 모듈(114)은 두 물리 오브젝트간의 관계를 지정할 수 있다. 조인트 기능 모듈은 예를 들어, Distance, Revolute, Prismatic와 같은 box2d의 중요 기능과 Pully 조인트를 지원할 수 있다.
Distane 조인트는 Frequency, damping ratio 등을 지정하는 것이 가능하다.
Revolute 조인트는 Motor, Limit(Angle)를 지정하는 것이 가능하다.
Prismatic 조인트는 Motor, Limit (Translation)를 지정하는 것이 가능하다.
연계 트리거 기능 모듈(115)은 단순 반복이 아닌 다양한 기능들을 지원할 수 있다. 연계 트리거 기능 모듈(115)은 순차적, 랜덤적 지정이 가능하며, 트리거 내부에서도, 모든 액션이 연계 가능하다. 연계 트리거 기능 모듈(115)은 펑션기능을 가지는 트리거를 통해서, 서로 다른 오브젝트의 상황에 따른, 이벤트 발생을 가능하게 할 수 있다
이벤트 기능 모듈(116)은 TouchDown, Drag, UP같은 제스쳐와, 모든 액션들을 손쉽게 연동이 가능하게 할 수 있다. 이벤트 기능 모듈(116)은 Touch Down, Touch Up, Touch Drag 등 UI Event의 지정이 가능하다. 예를 들어, onEnter (페이지 시작시), onExit 시스템 이벤트가 가능하다. 또한, 이벤트 기능 모듈은 각각의 오브젝트에 개개별로, 이벤트의 지정이 가능하다. 그외에 사용자 정의 이벤트 정의 및 호출기능이 가능하다.
조건문, 변수 및 사칙연산(Expert) 기능 모듈(117)은 XML 파일에서 다양한 조건문과 변수와 사칙연산을 수행하기 위한 기능을 제공한다. 조건문, 변수 및 사칙연산 기능 모듈(117)은 Object 변수, Scene 변수, Global 변수, Document(device) 변수의 지정이 가능하다.
또한, 각 변수별 사칙연산(+,-,/,*,=)이 가능하며, 비교연산기능( ==, !=, >=, <=, >, < )이 가능하다.
다국어 설정 기능 모듈(118)은 매우 손쉽게 다국어 설정을 가능하게 할 수 있다. 다국어 설정 기능 모듈은 스마트 기기 언어 설정 연동하여 실행할 수 있다. 다국어 설정 기능 모듈(118)은 XML 파일 내부를 편집해서 다국어 지원이 가능하도록 설정이 가능하다. 다국어 설정 기능 모듈은 상황에 따른, 나레이터 지정이 가능하다.
네이티브 코드 연계 기능 모듈(119)은 네이티브 코드와의 연계를 통해 매우 복잡한 연산이나, 논리적 처리는 소스차원으로 ByPass 하는 것을 가능하게 한다.
네이티브 코드 연계 기능 모듈(119)은 네이티브 기능이 필요한 것에 대하여 class=CustomClass 속성을 활용해 네이티브 코드와 연계 될수 있도록 지원이 가능하다. 예를 들어, 게임 로직 같은 매우 복잡한 로직이 이에 해당될 수 있다. 네이티브 코드 연계 기능 모듈(119)은 복잡한 로직의 경우 Lua로의 확장이 가능할 수 있다.
이외에도 기능 실행부(110)에는 다양한 기능 모듈들이 추가될 수 있다. 예를 들어, iPad-iOS 원클릭 컨버팅 모듈이 추가될 수 있다. iPad-iOS 원클릭 컨버팅 모듈은 iPad와 iOS간에 포지션,물리 속성값, 자동변경 및 스케일링을 가능하게 할 수 있다.
또한, 이동 경로의 지정 모듈이 추가될 수 있다. 이동 경로의 지정 모듈은 Bezier 라인으로, 이동 경로를 지정해 이동액션과 연계가 가능하다. 또한, 옵션으로, 오브젝트의 Rotation 이 기울기에 맞추어 행동하도록 지정하는 것이 가능할 수 있다.
iOS 퍼블리싱 기능 모듈이 추가될 수 있다. iOS 퍼블리싱 기능 모듈은 저작 작업 완료 후, 리소스와 관련 파일들을 정리해서 퍼블리싱을 위해 별도의 폴더에 저장해주는 기능을 수행할 수 있다.
iOS, Ipad, Editor 비율 스케일링 기능 모듈이 추가될 수 있다. iOS, Ipad, Editor 비율 스케일링 기능 모듈은 iMac 기준으로 보았을 때, 실제 디바이스 사이즈와 같게 스케일링을 해보는 기능을 지원할 수 있다. 이때, 스케일링 됨으로써, 이미지 외곡 현상이 나타날 수 있다.
프로젝트 파일 생성 및 관리 기능 모듈이 추가될 수 있다. 프로젝트 파일 생성 및 관리 기능 모듈은 Menu, UI를 생성 및 편집할 수 있다. 이에 따라 Menu, UI를 편집하여 프로젝트에 포함시킬 수 있다.
컨버팅 모듈이 추가될 수 있다. 컨버팅 모듈은 iOS와 안드로이드로의 유연한 컨버팅 기능을 지원할 수 있다.
XML 파서(120)는 멀티미디어 컨텐츠에 포함되는 각 오브젝트에 대하여 지정된 액션을 수행하도록 프로그래밍된 XML 파일을 읽어들여 파싱한다.
XML 파서(120)는 기능 실행부(110)를 위한 XML 트리에 일대일 매칭되어 XML 파일내에 생성된 XML 트리를 일련의 액션기능을 수행하기 위한 프로그래밍 형태로 파싱한다.
XML 파서(120)는 파서 라이브러리 형태로 앱패키징될 수 있다.
XML은 확장성 생성 언어(Extensible Markup Language)라고 하며 마크업 언어(Markup language)의 한 유형으로 다양한 종류의 데이터를 식별, 교환 및 처리하는 방법을 제공하는 보편적인 언어이다. 예를 들어, XML은 여러 종류의 응용 프로그램에 의해 이용될 수 있는 문서들의 생성을 위해 사용된다. XML 파일들의 요소들은 연관된 네임스페이스(name space) 및 스키마(schema)를 갖는다.
일반적으로 스크립트 언어라고 하면 lua, java script, luby, 파이썬. 등등 많은 언어가 있다. 이들은 스크립트 언어로써, XML과 같은 환경에 종속되어 있지 않고, 플랫폼(OS)에 종속되어 있다. 그러나, 본 발명에 의한 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템(100)에서는 플랫폼에 들어간 어플리케이션에서 사용되기는 하지만 플랫폼에 종속되지 않고 XML을 근간으로 스크립팅이 이루어지고 있다.
따라서, 본 발명에 의한 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템(100)에서는 XML 파일의 구조에 프로그래밍 기법이 적용되어 있다.
<sprite name ="p8_rabbit" fname=" /Volumes/mac_app/pino/09/p8 _rabbit.png">
count="99" />
</event>
<event type="touchDown">
<Sequence reapet="2">
<RotateBy time="0.1" degree="30" count="1" isTo="1" />
<RotateBy time="0.1" degree="-30" count="1" isTo="1" />
<RotateBy time="0.1" degree="0" count="1" isTo="1" />
</Sequence>
</event>
예컨대, 본 발명에 의한 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템(100)에서는 XML 파일을 이용하여 동작의 주체가 되는 임의의 오브젝트(<sprite name ="p8_rabbit" fname=" /Volumes/mac_app/pino/09/p8 _rabbit.png">)에 대하여 터치를 했을 때(<event type="touchDown">) 프로그래밍된 시퀀스대로 동작하는 액션이 가능하도록 프로그래밍할 수 있다.
0.1초 동안 30도 만큼 돌고, 이것이 끝나면, 0.1초동안 -30도 동안 돌고, 마지막으로 원래 각도로 돌아와라. 그리고, 이 시퀀스를 2번 실행하라, (<Sequence reapet="2">)
XML에서 네임스페이스는 XML 파일의 각 클래스(class)를 유일하게 식별하는데 일반적으로 사용된다. 각 XML 파일은 파일과 관련된 XML의 유형을 용이하게 식별하기 위한 프로세스들을 허용하는 네임스페이스를 사용할 수 있다. 유일한 네임스페이스는 서로 다른 소스들로부터의 마크업 요소들 및 우연히 같은 이름을 갖는 마크업 요소들을 구별하는데 도움을 줄 수 있다.
XML 스키마는 XML 환경 하에서 데이터를 설명하고 검증하는 방법을 제공한다. 스키마는 XML 파일에 있어서 어떤 요소 및 속성이 각 요소들이 어느 위치에 허용되며, 어느 요소가 다른 요소 내에 나타내어지는 지와 같은 내용을 설명하는 데에 사용되는 지를 나타낸다. 스카마의 사용은 파일이 일관된 방법으로 구성됨을 확신케한다. 스키마는 사용자에 의해 생성되며, XML과 같은 연관된 마크업 언어에 의해 일반적으로 지원된다. 스키마를 지원하는 XML 편집기를 사용함으로써, 사용자는 사용자가 생성한 스키마가 부착된 XML 파일을 만들 수 있으며, XML 데이터를 처리할 수 있다.
XML은 다양한 태그를 사용한 계층 구조를 가지는 파일이다. 계층구조는 여러개의 계층을 가지고 태그 내부에 태그를 포함하는 구조를 가지고 있다.
태그 (Tag)는 기능을 가지고 있는 요소들을 지칭하며, 보통 < 태그이름 속성> <하위에 포함되는 태그> </태그이름> 으로 사용된다. <태그이름>, </태그이름>으로 짝을 이루는데, <태그이름 속성/>처럼 /가 뒤에 붙은 경우는 짝이 없이 혼자서 사용된다. 태그는 대소문자를 구분하며 틀릴 경우 동작하지 않으므로 주의가 필요하다.
편집 처리부(130)는 XML 트리에 일련의 액션기능을 지정하기 위한 변수를 설정하여 XML 파일을 편집할 수 있다.
편집 처리부(130)는, XML 파서에 일대일 매칭되어 각 오브젝트에 임의의 액션을 지정하기 위해 XML 파일내에 생성된 XML 트리에 대한 코드 편집 모드와 오브젝트 이미지 편집 모드간에 편집 작업과 편집 결과를 서로 인터랙티브하게 반영하여 멀티미디어 컨텐츠의 편집을 수행할 수 있다.
편집 처리부(130)는 코드 편집 모드를 실행하여 XML 파일을 열어서 코드 편집을 수행할 수 있다. 예를 들어, 편집 처리부(130)는 코드 편집 모드에서 .cne 확장자를 가지는 XML 파일을 편집할 수 있다.
편집 처리부(130)는 오브젝트 이미지 편집 모드를 실행하여 도 2a에 도시되어 있는 이미지 편집창을 실행 화면으로 표시할 수 있다. 오브젝트 이미지 편집 모드에서는 각 오브젝트들에 대한 편집작업이 가능하다.
편집 처리부(130)는 코드 편집 작업이 수행된 XML 파일을 오브젝트 이미지 편집 모드를 수행하기 위한 이미지 편집창에 드래그 앤 드롭하면 코드 편집 결과를 오브젝트 이미지 편집 모드에 랜더링할 수 있다.
편집 처리부(130)는, 오브젝트 이미지 편집 모드를 수행하기 위한 이미지 편집창을 실행하고 있는 상태에서 XML 파일에 대한 코드 편집 작업을 수행하고 저장하면, 해당 편집 결과를 이미지 편집창에 랜더링할 수 있다.
편집 처리부(130)는 오브젝트 이미지 편집 모드를 수행하기 위한 이미지 편집창을 실행하고 있는 상태에서 이미지 편집창에 랜더링된 오브젝트에 대한 편집을 수행하고 저장하면 해당 편집 결과를 상기 XML 파일에 대한 코드 편집 결과로 반영할 수 있다.
편집 처리부(130)는, 오브젝트 이미지 편집 모드를 수행하기 위한 이미지 편집창을 실행하고 있는 상태에서 이미지 편집창에 랜더링된 오브젝트의 이동, 속성창에서의 속성값 설정을 통해 편집을 수행할 수 있다.
편집 처리부(130)는 OpenGL Base 의 프레임워크(Framework)에 인터랙티브한 요소를 이끌어낸 범용적인 저작을 수행할 수 있다. 편집 처리부(130)는 90여가지의 액션과, 트리거, 고급 스크립팅을 지원함으로써, 고품질 인터랙티브 디지털 북 생산에 혁신적인 속도와 기능을 제공할 수 있다.
편집 처리부(130)는 오브젝트의 위치 설정, 해당 오브젝트에 대한 물리 설정, 오브젝트간의 조인트 기능 설정을 드래그 앤 드랍과 설정창에서의 설정값 변경을 통해 편집을 수행할 수 있다.
편집 처리부(130)는 XML 파일의 코드 편집 모드와 오브젝트 이미지 편집 모드를 수행하기 위한 이미지 편집창을 오가며 작업을 해야 할 경우가 있다. 오브젝트 이미지 편집 모드에서 수정하고 저장할 경우 자동으로 XML 파일에서도 내용이 바뀔 수 있다. 또한, 작업한 XML 파일을 이미지 편집창에 드래그 앤 드롭하면 작업내용을 바로 확인해 볼 수 있다. 아울러, XML 편집 모드에서 XML 파일을 열어놓은 상태에서 XML 파일을 수정하면 바로 수정된 내용을 확인이 가능하다.
시뮬레이션 처리부(140)는 XML 파서(120)에 의해 파싱된 프로그래밍된 액션기능을 임의의 오브젝트에 대하여 부분 실행 또는 전체 실행을 통해 시뮬레이션 결과를 보여줄 수 있다.
시뮬레이션 처리부(140)는 XML 파일의 코드 편집 모드와 오브젝트 이미지 편집 모드의 수행에 의한 편집 결과에 대하여 기능 실행부(110)의 호출에 의한 오브젝트별 부분 실행 또는 전체 실행을 통해 도 2b에 도시된 바와 같은 시뮬레이션 결과를 보여줄 수 있다.
편집 처리부(130)과 시뮬레이션 처리부(140)는 편집함과 동시에 같은 뷰에서, 시뮬레이션이 가능하고, iOS 스마트기기에서, 100% 똑같이 동작을 구현할 수 있다.
사용 안내 처리부(150)는 편집 처리부(130) 및 시뮬레이션 처리부(140)의 실행에 필요한 상황별 조작 안내와 멀티 미디어 컨텐츠의 저작을 위한 튜터링 기능을 제공할 수 있다.
도 3은 본 발명의 일실시예에 따른 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템의 저작 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 멀티 미디어 컨텐츠 저작 시스템(100)은 XML 코드 편집 및 오브젝트 이미지 편집을 통해 멀티미디어 컨텐츠의 임의의 오브젝트에 액션을 지정한다(S1).
즉, 멀티 미디어 컨텐츠 저작 시스템(100)은 편집 처리부(130)를 이용하여 XML 파일에 대한 코드 편집 모드와 오브젝트 이미지 편집 모드간에 편집 작업과 편집 결과를 서로 인터랙티브하게 반영하여 멀티미디어 컨텐츠의 오브젝트에 임의의 액션을 지정한다.
멀티 미디어 컨텐츠 저작 시스템(100)은 편집 내용을 XML 파일내에 XML 구문으로 정의되는 XML 트리로 생성한다(S2).
멀티 미디어 컨텐츠 저작 시스템(100)은 멀티미디어 컨텐츠의 편집에서 상기 멀티미디어 컨텐츠의 오브젝트에 지정된 액션 기능에 상응하여 XML 파일내에 XML 구문으로 정의되는 XML 트리를 생성한다.
멀티 미디어 컨텐츠 저작 시스템(100)은 XML 파일내에 생성된 XML 트리를 일련의 액션을 수행하기 위한 프로그래밍 형태로 파싱한다(S3).
멀티 미디어 컨텐츠 저작 시스템(100)은 XML 트리에 매칭되어 구비된 XML 파서(120)를 이용하여, XML 파일내에 생성된 XML 트리를 일련의 액션을 수행하기 위한 프로그래밍 형태로 파싱한다.
멀티 미디어 컨텐츠 저작 시스템(100)은 파싱된 프로그래밍된 액션을 이벤트 발생 또는 시퀀스에 따라 지정된 액션 기능을 수행하여 시뮬레이션 결과를 보여준다(S4).
멀티 미디어 컨텐츠 저작 시스템(100)은 시뮬레이션 처리부(140)를 이용하여 XML 파서(120)에 의해 파싱된 프로그래밍된 액션을 임의의 오브젝트에 대하여 부분 실행 또는 전체 실행을 통해 이벤트 발생 또는 시퀀스에 따라 지정된 액션기능을 수행하여 시뮬레이션 결과를 보여준다.
도 4 내지 도 22는 본 발명의 일실시예에 따른 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템에서 저작 방법을 설명하기 위한 도면이다.
도 4 내지 도 22를 참조하여, 본 발명의 일실시예에 따른 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템을 이용하여 다양한 멀티미디어 컨텐츠를 저작하는 방법을 설명하도록 한다.
라벨과 스프라이트와 액션설정
첫 단계에서는 스프라이트와 라벨을 추가하고 특정 개체에 움직임을 주는 방법을 설명하도록 한다.
작업영역 만들기
작업을 저장하고자 하는 위치에 템플릿 폴더의 action_base.cne 를 복사한 뒤 원하는 이름으로 수정한다. action_base.cne는 작업의 가장 기초가 되는 코드가 작성되어 있는 cne파일이다.
도 4는 코모도 에디터로 파일을 실행시킨 화면을 보여준다.
<window/>
- 작업 화면의 크기를 설정한다.
<scene/>
- 실제로 출력되는 화면. 내부에 선언된 것들을 화면에 출력한다.
<layer></layer>
- 일종의 그룹으로써. 레이어의 속성을 변경하면 하위 항목들이 동시에 영향을 받는다.
r, g, b, a 는 RGB값과 알파값을 나타내며, 레이어의 색상과 투명도를 설정하는 속성이다.
라벨 삽입
도 5는 라벨 삽입을 설명하기 위한 에디터 화면이다.
도 5를 참조하면, cne 코드의 <layer>와</layer>의 사이가 작업할 공간이다.
도 5에 도시된 코드를 넣어준 뒤 저장을 한 후 에디터에서 새로고침 키(Command + R)로 새로 고침을 한다.
도 6을 참조하면, 위치값이 지정되지 않았기 때문에 0, 0 좌표에 라벨이 나타나 있다.
다음은 편집창 내에서 원하는 위치로 개체를 이동시키는 방법을 설명하도록 한다.
기본적으로 편집창에서의 수정은 편집 모드에서 작업을 수행한다. 편집 모드는 편집키(command + i)로 전환할 수 있다.
편집 모드에서 수정하고자 하는 개체를 클릭하면 개체의 크기를 표시하는 외곽선이 나타난다.
도 7을 참조하면, 외곽선이 나타난 상태에서 Command를 누른 채로 드래그를 하여 원하는 위치로 자유롭게 이동이 가능하다. 이동 후에 저장키(Command + S)로 저장을 하면 cne 파일도 자동으로 수정이 된다.
스프라이트 삽입과 액션 설정
스프라이트는 도 8에 도시된 바와 같이 드래그 앤 드랍 하는 것으로 간단하게 삽입이 가능하다.
크기, 회전의 설정은 클릭하면 나오는 우측의 Node 설정에서 조절이 가능하다. 스프라이트를 추가, 저장한 후에 다시 cne파일을 열어보면 도 9에 도시된 바와 같이 <sprite>태그가 추가되어 있는 것을 확인할 수 있다. Node 설정을 변경했다면 그에 관한 태그도 추가된 것을 확인할 수 있다.
스프라이트에 움직임을 주려 하므로 도 10에 도시된 바와 같이 스프라이트 코드의 내부에 Move액션을 작성해주어야 한다. <event>태그로 실행조건을 설정하고, <event></event>태그의 내부에 실행하고자 하는 액션의 내용을 작성한다.
<event type=실행 조건> - 이벤트를 선언한다. 조건이 만족되면 내부의 이벤트를 실행한다.
- onEnter - 화면이 나타남과 동시에 이벤트를 출력한다.
- touchDown, touchUp, touchDrag - 터치할 때, 터치한 손을 뗄 때, 터치한 채로 드래그했을 때 출력한다.
-액션
<MoveBy(To) x="" y="" /> - 해당 위치로 이동한다.
<JumpBy(To) x="" y="" height= /> - 해당 위치를 향해 설정 높이(height)로 점프해서 이동한다.
여기에서, By와 To의 차이점은 By와 To는 상대적 좌표로 이동하느냐 절대값 좌표로 이동하느냐의 차이이다. By는 현재 위치에서의 좌표로 이동을 하고, To는 지정한 좌표로 이동하게 된다.
만약 현재 좌표가 x=30 y=40인 개체에 다음과 같은 액션을 줄 경우
<MoveBy x=10 y=-10/> -> x=40 y=30
<MoveTo x=50 y=30/> -> x=50 y=30 가 된다. 따라서, 각각 이와 같은 위치로 1초에 걸쳐 이동하게 된다.
다음으로, 위에서 넣은 스프라이트가 실행과 동시에 앞으로 움직이도록 설정하도록 한다. cne파일에서 움직이고자 하는 이미지의 <sprite> 태그를 찾아 도 10에 도시되어 있는 코드(10a)를 넣어준다.
실제로 작동하는 것을 확인하기 위해 저장을 하고 편집창에서 플레이/일시 정지 키(Command + G)로 플레이모드로 바꾼 후에 새로 고침 키(Command + R)로 새로 고침을 해보면 스프라이트의 움직임을 확인할 수 있다.
액션의 종류, 시퀀스
편집 모드에서 Move, Jump 외에도 회전, 확대&축소, 페이드인&아웃 등등 다양한 액션들을 설정할 수 있다.
여러 가지 액션들과 액션들을 순서대로 출력해주는 시퀀스를 설명하도록 한다.
액션의 종류
액션의 종류는 매우 다양하며 아래와 같은 액션들이 정의될 수 있다.
<RotateBy(To) degree="" /> - 해당 각도만큼 회전시킨다.
<ScaleBy(To) x="" y="" /> - 확대 또는 축소한다. 값이 -1이면 좌우(x) 또는 상하(y)반전. [x와 y의 값이 같을 경우에는 xy=""로 쓸 수도 있다.]
<FadeIn/>, <Fadeout/> - 페이드인, 페이드아웃 (서서히 나타나거나 사라짐)
<Hide/>, <Show/> - 숨김, 숨김 해제
<Delay time=시간(s)/> - 시간지연을 준다. 소수도 가능.
<Bilnk count=""/> - 깜빡임을 준다. count 속성을 이용하여 깜빡임 횟수를 지정. 1~2회의 경우 깜빡임 액션이 끝난 후 <Hide/>상태가 되므로 3회 이상으로 설정하거나, 시퀀스로 깜빡임 이후에 <Show/>를 넣어주어야 한다.
여기에서, Move, Jump, Rotate, Scale의 속성으로 time=시간(s)을 주면 설정한 시간에 걸쳐서 이벤트를 실행하는 것이 가능하다.
이러한 액션들은 앞에서 설명된 <MoveBy>처럼 <event>태그의 내부에 넣어주는 것만으로 간단하게 적용할 수 있다. 또한 여러 개의 액션을 한번에 사용하는 것도 가능하며, 이때에는 동시에 실행될 수 있다.
시퀀스
시퀀스는 순차적 진행을 의미합니다. 동시에 선언된 여러 개의 액션들을 순차적으로 진행시키고자 할 때 시퀀스를 사용할 수 있다. 시퀀스의 태그는 <seq></seq>로 이벤트 태그의 안에서 선언되며 내부에 설정된 액션들을 순서대로 실행한다.
도 11은 도 5의 스프라이트에 시퀀스로 움직임을 추가한 코드이다. 도 11에서 <Seq repeat=><Spawn></Spawn>이라는 속성과 태그가 있다. repeat= 속성은 시퀀스의 반복을 줄 때에 설정하는 속성이며, <Spawn>태그는 하위에 있는 액션들을 동시에 실행해주는 태그이다. 따라서, 이와 같이 코드를 수정한 뒤 실행해보면 이동 -> 회전하며 점프 -> 사라짐->나타남 을 5회 반복하는 스프라이트를 확인할 수 있다.
이벤트, 사운드
<event>와 사운드의 추가를 설명하도록 한다.
이벤트속성
<event type="" lock="">
일반적으로 사용되는 이벤트 태그의 속성은 type=""와 lock="" 두 가지가 있다. type=""은 이벤트의 실행조건이라고 앞서 설명하였으며, lock속성에 대해여 설명하도록 한다.
lock="1"
이벤트의 시작을 잠그는 기능을 가지고 있다. onEnter조건의 경우 플레이를 시작하면 자동으로 실행되는 이벤트이기 때문에 상관이 없지만, Touch 류의 조건의 경우 이벤트가 끝나기 전에 조건을 다시 만족시켜주는 것이 가능하다. 이때 다시 이벤트를 실행할지, 이벤트가 끝날 때까지 이벤트의 재실행을 잠글지 결정하는 속성이 lock="1" 속성이다. 잠그지 않을 경우에는 속성 자체를 쓰지 않는다.
<event>태그는 하나의 개체에 여러 개가 들어있을 수 있다. 단 실행조건이 겹쳐서는 안되며, 조건에 따라 설정한 이벤트들이 실행된다.
lock을 걸지 않았을 때 이동하는 액션이 재실행될 경우 재실행된 위치가 원래 자리(시작점)가 된다. 즉 0, 100의 위치에 있는 500만큼 위로 점프하는 스프라이트가 250만큼 점프한 시점에서 재실행될 경우 재실행 시점에서 다시 500만큼 점프한 뒤 재실행된 위치인 250, 100으로 돌아온다.
사운드
사운드 태그는 <LoadBGM/>, <SndBack/>, <SndEffect/>의 세가지가 있으며, 앞의 두 가지는 BGM(배경음악)을 위한 태그. 나머지 하나의 태그는 효과음을 위한 태그이다.
도 12는 본 발명의 일실시예에 따른 사운드 코드를 보여준다.
도 12를 참조하면, 태그의 속성을 다음과 같다.
<LoadBGM fname="파일 경로" /> - 음악 파일을 불러옴. 재생이 아니라 불러오기만 함.
<SndBack fname="파일 경로" loop="" /> - 음악 파일을 재생. 음악파일이 로드 되어 있지 않은 경우에는 불러와서 재생한다. 이 경우 약간의 지연이 생길 수 있다. 한 화면 내에서 BGM은 하나만 재생이 가능하기 때문에 이 태그가 다시 사용되면 먼저 재생되던 것은 정지되고 나중에 사용된 태그의 BGM이 재생된다.
<SndEffect/> - 효과음을 위한 태그. 재생이 끝나기 전에 다시 이벤트를 발생시키면 그 위에 겹쳐서 재생이 된다.
loop=""속성은 반복설정
BGM을 재생하려면 먼저 음악파일을 불러오고 그걸 재생해야 한다. 바로 재생하는 것도 가능하지만, 이 경우에도 '불러온다 -> 재생한다'라는 2단계는 바뀌지 않기 때문에 바로 재생할 경우 약간의 지연이 생기게 된다. 먼저 음악파일을 불러와 둔 뒤에 재생 태그를 사용하는 경우에는 불러오는 과정이 생략되므로 원하는 때에 제대로 재생하는 것이 가능해진다. 편집 모드에서는 별로 차이가 없어 보이지만, 편집 모드에 비해서 성능이 떨어질 수 밖에 없는 휴대기기에서는 차이가 확연히 드러나게 된다.
애니메이션, 파티클
다음으로, 여러 개의 이미지를 이용하여 애니메이션 효과를 주는 방법과 파티클 효과를 주는 방법을 설명하도록 한다.
애니메이션
본 발명의 일실시예에 따른 저작 시스템은 여러 장의 스프라이트를 순서대로 바꿔주는 방법을 이용하여 애니메이션을 만들 수 있다. 이 때문에 애니메이션을 만들 이미지들이 여러 장 있어야 하며 태그 내에서 애니메이션 이벤트를 불러온다.
도 13은 본 발명의 일실시예에 따른 애니메이션의 cne파일 화면을 보여준다.
도 13을 참조하여 애니메이션 태그에 대해 설명하도록 한다.
<animation></animation> - 내부에 애니메이션들을 선언.
<ani key="애니메이션 이름"></ani> - 애니메이션 스프라이트의 순서를 설정. 나중에 애니메이션을 부를 때 key에서 설정한 이름으로 부르게 된다.
<frame fname="파일 경로" /> - 애니메이션에 사용되는 파일을 불러옴. 불러온 순서대로 애니메이션이 만들어진다.
<Animate key="애니메이션 이름" time="시간" count="애니메이션 횟수" restoreOrigin="0(1)"/> - 앞서 만들어 놓은 애니메이션을 출력함. 스프라이트 태그 안에서 사용되며, time속성으로 애니메이션 1회의 총 시간을 설정한다. 애니메이션이 끝난 후 원래의 스프라이트로 되돌릴 경우에는 restoreOrigin속성의 값을 1로 준다.
<flip x="0(1)" y="0(1)" /> - 스프라이트를 좌우, 또는 상하로 뒤집음. 값이 1이면 뒤집는다. 뒤집지 않는 값은 생략해도 무관함. Scale을 이용하여 뒤집을 때와는 달리 과정이 없이 한번에 뒤집어진다.
구체적인 애니메이션 생성과정은 다음과 같다.
먼저. <animation> 안에 애니메이션들의 순서를 설정하고 키를 정해준다.
그 다음 <sprite>의 이벤트에 <Animate/>로 원하는 애니메이션의 키를 불러오면서 세부설정을 해준다.
파티클
파티클은 주변에 설정한 이미지들을 뿌려주는 기능으로써 흔히 보이는 이미지가 움직일 때 반짝거리는 효과가 뒤에 따라오는 것이다.
도 14는 본 발명의 일실시예에 따른 particle의 cne파일 화면이다.
도 14를 참조하면, 파티클에도 포지션이 지정되어 있는데, 파티클도 라벨이나 스프라이트 같은 하나의 개체이기 때문에 포지션 설정을 하지 않으면 파티클이 실행되지 않는다. 이때 라벨의 내부에서 포지션을 설정하기 때문에 라벨내부의 좌표를 기준(왼쪽 아래가 0, 0)으로 x, y 값을 정한다. 이 후 파티클의 포지션이 라벨의 하위에 있으므로 라벨이 움직이면 파티클도 함께 따라 움직이게 된다.
각 태그의 속성은 다음과 같다.
<label r="0~255" g= "0~255" b= "0~255"> - 라벨의 RGB값을 변경.(라벨의 색을 바꿈) 0인 속성은 생략 가능.
<particle name="파티클 이름" type="파티클 종류" fname="파일 경로"></particle> - 파티클을 생성. 생성만한다. type=""은 파티클의 종류이나 현재는 flower외의 속성이 없다. fname으로 파티클의 입자로 쓸 이미지를 정한다.
<ParticleRun name="파티클 이름"/> - 파티클을 실행. name=" "속성으로 여러 개의 파티클이 있을 때 그 중 원하는 파티클을 선택할 수 있다.
<FollowPos/> - 자신을 포함하고 있는 개체가 터치점을 따라오게 함. 터치드래그 이벤트와 함께 사용한다.
<ParticleStop name=파티클 이름/> - 파티클을 정지. name= 속성으로 여러 개의 파티클이 있을 때 그 중 원하는 파티클을 선택할 수 있다.
중력, Distance 조인트
다음으로 물리 기능과 조인트 기능을 설명하도록 한다.
물리, 중력
도 15는 본 발명의 일실시예에 따른 물리 기능을 설명하기 위한 코드 화면이다.
도 15를 참조하면, XML 파일을 열어보면 많은 코드들이 보이지만, 실제로 물리기능을 사용하기 위해 사용자가 입력하는 코드는 표시된 두 줄뿐이고 나머지는 전부 저작 시스템에서의 작업으로 자동으로 수정, 추가되는 코드들이다.
태그들의 속성은 다음과 같다.
<scene physic="1" gravityX="" gravityY=""/> - physic 속성으로 물리설정을 활성화. 물리설정을 사용하지 않을 경우엔 0을 값으로 주거나 속성자체를 입력하지 않는다. gravityX(Y)속성은 각 방향으로의 힘의 정도(중력)를 설정해준다.
<physic type="" top="" left="" right="" bottom="" name=""/> - 가장자리에 물리적인 벽을 만들어 준다. 설정해주지 않으면 화면 밖으로 내부의 개체가 나갈 수 있게 된다. 각 방향의 값들은 벽의 두께나, 벽에서의 거리가 아니라 활성화 비활성화의 여부를 나타낸다. 1을 값으로 줄 경우에만 활성화된다.
<Force force=""/> - 터치점을 시작점으로 해서 중심을 향한 방향으로 설정한 값만큼의 힘을 준다. 물리 설정이 되어있는 개체에서만 작동한다.
도 16은 본 발명의 일실시예에 따는 물리 기능을 설명하기 위한 실행 화면이다.
도 16을 참조하면, 장면(Scene)에 물리속성을 추가한 뒤에는 편집 모드에서의 작업으로 각 개체들에 물리 속성을 줄 수 있다. 물리를 주려는 라벨이나 이미지를 선택한 뒤 모양 선택 메뉴에서 원하는 모양을 선택한다. 그 후 나타나는 도형가장자리의 점을 드래그하여 물리적으로 몸체를 가지는 부분을 지정하고, 설정창을 활성화시키면 도 17에 도시된 설정 화면이 나타닌다. 배경화면이 검은색이거나 어두운 색인 경우 도형을 이루는 점이 보이지 않으므로 밝은 배경에서 작업해야 한다. 설정창에서 각 속성들의 수치를 설정해 준 뒤에 적용 버튼을 누르면 물리설정이 추가되며, 저장-> 새로 고침을 해주어야 제대로 적용될 수 있다.
조인트
다음으로 조인트 기능에 대하여 설명하도록 한다. 조인트는 두 개체를 연결하여 움직임에 관계를 주는 기능으로, 두 개체는 화면과 개체가 될 수도 있고, 개체와 개체가 될 수도 있다.
Distance 조인트
Distance 조인트는 두 오브젝트 사이의 거리를 일정하게 유지하려는 스프링과 같다. 조인트는 물리설정처럼 XML 파일에 간단한 수정을 한 뒤 나머지는 전부 저작 ㅅ시스템에서 해결할 수 있다.
조인트는 물리환경에서 동작하는 액션이므로 조인트 설정이 적용 되도록 하기 위한 <joint>태그를 넣어주면서, 물리 환경을 위한 설정들도 해준다. 나머지 작업은 전부 저작 시스템에서 이루어진다.
도 18은 본 발명의 일실시예에 따는 조인트 기능을 설명하기 위한 코드 편집 화면이다.
도 19는 본 발명의 일실시예에 따는 조인트 기능을 설명하기 위한 편집 실행 화면이다.
도 18 및 도 19를 참조하면, 먼저 조인트를 걸고자 하는 개체를 생성하고, 물리 설정을 한다. 그 다음 위와 같이 테두리의 선이 보이는 상태에서 command + 1을 누른다. 그 후 고정하고자 하는 위치부터 개체까지 드래그를 해준다. 이렇게 선이 연결되고 나면 오른쪽 물리 설정창 아래에 조인트의 설정창이 생성된다. 설정창이 생성된 직후에는 설정값이 'No Joint'로 되어있어, 사용할 조인트로 변경해 주어야 한다. 따라서, 도 20에 도시된 바와 같이 조인트를 변경한 후, 프리퀀시, 댐핑 레이트, 디스턴스의 속성들을 원하는 정도로 수정해준 뒤 적용 버튼(Apply)을 이용하여 적용후 저장 및 새로 고침을 한다.
조인트는 선택되어 있는 오브젝트에만 연결이 가능하다. 때문에 아무것도 선택되어있지 않은 상태에서 command + 1을 누르면 아무 작업도 할 수 없게 된다. 이 경우 편집 모드로 다시 들어오면(command + i) 다시 작업을 계속 할 수 있게 된다.
Revolute 조인트
Revolute 조인트는 앵커 포인트 하나를 공유하여 그 점을 중심으로 각각 회전이 가능하게 하는 기능이다. 개체와 화면 사이의 조인트의 경우 개체는 선택지점을 중심으로 거리를 유지한 채 회전이 가능하게 된다. Revolute 조인트는 도 21에 도시된 바와 같이 Distance 조인트와 조인트 설정방법은 같으며, command + 1이 아닌 command + 2로 앵커 포인트를 지정할 수 있다.
두 개체를 연결할 때에는 드래그, Shift 클릭과 같은 방법으로 두 개체를 모두 선택한 후에 앵커포인트를 지정할 수 있다.
트리거 , 액션 PLUS , 스위치
다음으로, 특정 대상에 대하여 정해놓은 액션을 실행하게 하는 트리거와 정해놓은 경로를 따라 스프라이트가 움직이게 하는 액션 등 심화기능을 설명하도록 한다.
트리거
트리거는 사전에 액션들을 정해놓고 key, target을 이용하여 원하는 대상에게 액션을 실행하게 하는 기능이다.
도 22는 본 발명의 일실시예에 따는 조인트 기능을 설명하기 위한 코드 편집 화면이다.
도 22를 참조하면 트리거를 위한 태그의 속성은 다음과 같다.
<Trigger key="불러올 트리거 이름" target="대상"/> - 만들어 놓은 트리거를 불러올 때 사용되는 태그로써 key로 트리거, target으로 해당 액션을 취할 대상을 정한다. 같은 이름을 가진 트리거가 있을 때에는 위쪽에 있는 것부터 시작하여 순서대로 하나씩 불러온다.(한번에 순서대로 작동하는게 아니라, 트리거가 사용될 때 마다 다음 것으로 순서가 넘어감.)
<trigger></trigger> - 내부에 트리거를 선언한다.
<tg key=트리거 이름></tg> - 트리거를 만드는 태그. 내부에 트리거가 불려졌을 때 취할 액션을 넣어준다. 트리거 내부에 트리거를 선언하는 것도 가능.
본 발명의 일실시예에 의하면, 전술한 방법은, 프로그램이 기록된 매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
상기와 같이 설명된 이동 단말기는 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (9)

  1. 멀티 미디어 컨텐츠 생성을 위한 복수의 기능 모듈들을 포함하고, 상기 멀티 미디어 컨텐츠에 포함되는 일 편집 단위인 오브젝트에 지정된 액션에 상응하는 기능 모듈을 실행하는 기능 실행부;
    상기 오브젝트에 지정된 액션에 상응하는 기능 모듈을 프로그램 언어로 파싱하는 파싱부;
    상기 멀티 미디어 컨텐츠에 포함된 오프젝트에 지정할 액션을 화면에 표시된 사용자 인터페이스(User interface)를 통해 편집하는 제1 편집 모드 및 프로그램 언어를 통해 편집하는 제2 편집 모드를 포함하며,일 편집 모드에서의 상기 오브젝트 변경 내용을 다른 편집 모드에 서로 인터랙티브하게 자동으로 반영하는 편집 처리부; 및
    상기 편집 처리부의 편집 결과에 따라 상기 파싱부를 통해 상기 오브젝트에 지정된 액션에 상응하는 기능 모듈을 프로그램 언어로 파싱하고, 파싱된 프로그램 언어를 상기 기능 실행부를 통해 순차적으로 호출하여, 편집한 멀티 미디어 컨텐츠를 시뮬레이션하고 시뮬레이션 결과를 화면을 통해 표시하는 시뮬레이션 처리부를 포함하고
    상기 편집 처리부는 제1 편집 모드에서 사용자 입력에 따른 오브젝트 이미지 변경 및 설정창의 설정 값 변경에 대응하도록 프로그램 언어를 편집하여 제2 편집 모드에 인터랙티브하게 반영하거나, 제2 편집 모드에서 프로그램 언어 편집에 대응하도록 오브젝트 이미지 및 설정창의 설정 값을 변경하여 제1 편집 모드에 인터랙티브하게 반영하는
    멀티 미디어 컨텐츠 저작 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 편집 처리부 및 상기 시뮬레이션 처리부의 제어를 위한 안내 메시지 및 튜터링 기능을 제공하는 사용 안내 처리부를 더 포함하는
    멀티 미디어 컨텐츠 저작 시스템.
  6. 제1항에 있어서,
    상기 프로그램 언어는 특정 플랫폼에 종속되지 않는 확장성 생성 언어(Extensible Markup Language)를 포함하는
    멀티 미디어 컨텐츠 저작 시스템.
  7. 제1항에 있어서,
    상기 기능 실행부는 액션 기능 모듈, 오브젝트 기능 모듈, 물리 기능 모듈, 조인트 기능 모듈, 트리거 기능 모듈, 이벤트 기능 모듈, 다국어 설정 기능 모듈, 조건문 기능 모듈, 변수 기능 모듈 및 사칙연산 기능 모듈을 포함하는
    멀티 미디어 컨텐츠 저작 시스템.
  8. 제1항에 있어서,
    상기 시뮬레이션 처리부는 상기 편집 처리부에서 상기 특정 오브젝트에 대한 편집이 있는 경우, 편집과 동시에 이를 반영한 시뮬레이션 결과를 사용자에게 제공하는
    멀티 미디어 컨텐츠 저작 시스템.
  9. 삭제
KR1020130017216A 2013-02-18 2013-02-18 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법 KR101552384B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130017216A KR101552384B1 (ko) 2013-02-18 2013-02-18 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130017216A KR101552384B1 (ko) 2013-02-18 2013-02-18 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20140105044A KR20140105044A (ko) 2014-09-01
KR101552384B1 true KR101552384B1 (ko) 2015-09-14

Family

ID=51754134

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130017216A KR101552384B1 (ko) 2013-02-18 2013-02-18 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101552384B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102208635B1 (ko) * 2019-01-15 2021-01-28 한국과학기술연구원 인터랙션 타입의 피드백 설정을 지원하는 시스템 및 방법
KR102251052B1 (ko) * 2019-11-14 2021-05-12 주식회사 클비시스템 스마트 콘텐츠 제작 장치 및 방법

Also Published As

Publication number Publication date
KR20140105044A (ko) 2014-09-01

Similar Documents

Publication Publication Date Title
JP5015150B2 (ja) 対話式マルチメディア環境の状態変化への宣言式応答
US8739120B2 (en) System and method for stage rendering in a software authoring tool
Nathan WPF 4 unleashed
WO2003081436A1 (fr) Navigateur et programme a contenu multimedia
CN105279222A (zh) 一种媒体编辑和播放的方法及其系统
Brown Silverlight 5 in action
Weaver et al. Pro JavaFX 2: A Definitive Guide to Rich Clients with Java Technology
Weaver et al. Pro javafx 8: a definitive guide to building desktop, mobile, and embedded java clients
Eng Qt5 C++ GUI Programming Cookbook: Practical recipes for building cross-platform GUI applications, widgets, and animations with Qt 5
Anderson Appcelerator Titanium: Up and Running: Building Native iOS and Android Apps Using JavaScript
KR101552384B1 (ko) 인터랙티브한 편집기능이 구비된 멀티 미디어 컨텐츠 저작 시스템 및 그 방법
Clarke et al. JavaFX: Developing Rich Internet Applications
Dea JavaFX 2.0: introduction by example
US8566734B1 (en) System and method for providing visual component layout input in alternate forms
Wenz Essential Silverlight 2 Up-to-Date
Reinhardt et al. ADOBE FLASH CS3 PROFESSIONAL BIBLE (With CD)
Herrington et al. Getting Started with Flex 3: An Adobe Developer Library Pocket Guide for Developers
Grinev Mastering JavaFX 10: Build advanced and visually stunning Java applications
He Creating Apps with React Native
Feldman et al. WPF in Action with Visual Studio 2008: Covers Visual Studio 2008 Service Pack 1 and. NET 3.5 Service Pack 1!
Jordan JavaFX Special Effects: Taking JavaTM RIA to the Extreme with Animation, Multimedia, and Game Elements
Weaver et al. Pro JavaFX 2
Allen et al. The essential guide to open source flash development
Williams Microsoft expression blend unleashed
Rader et al. Silverlight 1.0

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 4