KR101975404B1 - Apparatus and method for generating procedural content - Google Patents

Apparatus and method for generating procedural content Download PDF

Info

Publication number
KR101975404B1
KR101975404B1 KR1020170181204A KR20170181204A KR101975404B1 KR 101975404 B1 KR101975404 B1 KR 101975404B1 KR 1020170181204 A KR1020170181204 A KR 1020170181204A KR 20170181204 A KR20170181204 A KR 20170181204A KR 101975404 B1 KR101975404 B1 KR 101975404B1
Authority
KR
South Korea
Prior art keywords
entropy
code
content
codebook
pattern
Prior art date
Application number
KR1020170181204A
Other languages
Korean (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 KR1020170181204A priority Critical patent/KR101975404B1/en
Application granted granted Critical
Publication of KR101975404B1 publication Critical patent/KR101975404B1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6009Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The present invention relates to a device and a method for generating procedural content. The procedural content generating method comprises: a step of converting input data into a code by referring to a codebook; a step of extracting a pattern of the converted code by referring to the codebook; a step of adding the extracted pattern to the codebook and calculating entropy of content to be generated using the extracted pattern; and a step of repeating the entropy calculation by applying the extracted pattern to minimize the entropy until the entropy becomes 0. The present invention can minimize the use of memory resources until new content is created. The present invention automatically generates new content in real time, so the present invention can continue to deliver new content to users at a minimal cost.

Description

절차적 콘텐츠 생성장치 및 방법{APPARATUS AND METHOD FOR GENERATING PROCEDURAL CONTENT}Procedural content generation device and method {APPARATUS AND METHOD FOR GENERATING PROCEDURAL CONTENT}

본 발명은 알고리즘으로 데이터를 생성하는 절차적 콘텐츠 생성장치 및 방법에 관한 것이다. The present invention relates to a procedural content generating device and method for generating data with an algorithm.

게임에 사용되는 콘텐츠를 개발하는데 있어서 콘텐츠를 생성하는 것은 매우 중요하다. 게임에서 콘텐츠가 많지 않을 경우 플레이어는 같은 콘텐츠를 반복해서 소모하게 되고 싫증을 느끼게 되어 금방 게임을 그만두게 된다. 하지만 게임 개발자들이 콘텐츠를 생성하는 것은 많은 시간과 비용이 소모된다. 게임의 콘텐츠가 늘어나면서 수작업으로 모든 것을 처리 할 수 없게 되었고 최소한의 수작업으로 고품질의 콘텐츠를 만들어야 할 필요성이 있다. In developing content for games, creating content is very important. If there is not a lot of content in the game, the player will consume the same content repeatedly and get tired of the game. However, creating content for game developers is time-consuming and expensive. As the content of the game grows, we can't handle everything by hand, and we need to create high-quality content with a minimum of manual effort.

이러한 필요성들로 인하여 제안된 방식들 중 하나가 절차적 콘텐츠 생성 방법이다. 절차적 콘텐츠 생성이란 미리 디자인된 콘텐츠를 생성하는 대신, 프로그램 실행 중 알고리즘에 의해 자동으로 콘텐츠를 생성하는 방법을 의미한다. 절차적으로 생성 가능한 게임 콘텐츠의 예는 지형맵, 텍스처 이미지, 오디오, 스트림 문자파일, 퀘스트, 아이템 등으로 그 종류가 매우 다양하다. 콘텐츠를 절차적으로 생성하는 작업을 디자이너의 개입 없이 컴퓨터가 처리한다면 더 싸고 빠르게 콘텐츠를 제작할 수 있다. Due to these needs, one of the proposed methods is a procedural content generation method. Procedural content generation refers to a method of automatically generating content by an algorithm during program execution, instead of generating predesigned content. Examples of procedurally generated game contents include terrain maps, texture images, audio, stream text files, quests, and items. If the computer processes the work of creating the content procedurally without designer intervention, the content can be produced cheaper and faster.

특히, 동적인 절차적 콘텐츠 생성 방법은 콘텐츠가 생성되기 전까지는 메모리의 리소스를 할당할 필요가 없어 메모리의 소비를 줄일 수 있고, 수동으로 게임을 생성하는데 드는 비용을 줄일 수 있고, 실시간 새로운 콘텐츠를 생성해낼 수 있어 최적의 절차적 콘텐츠 생성 방법에 대한 개발 필요성이 있다.In particular, the dynamic procedural content creation method does not require allocating memory resources until the content is created, thus reducing the consumption of memory, reducing the cost of manually creating the game, and creating new content in real time. There is a need to develop an optimal procedural content generation method that can be generated.

미국공개특허 US2014/0357365(2014.12.04. 공개), 발명의 명칭: ELECTRONIC GAME PERSONALIZATIONUnited States Patent Application Publication US2014 / 0357365 (published Dec. 4, 2014), title of invention: ELECTRONIC GAME PERSONALIZATION

FDG '17 Proceedings of the 12th International Conference on the Foundation of Digital Games, Article No. 68에 수록된, Isaac Karth, Adam M. Smith의 논문제목 'Wave Function Collapse is Constraint Solving in the Wild'FDG '17 Proceedings of the 12th International Conference on the Foundation of Digital Games, Article No. `` Wave Function Collapse is Constraint Solving in the Wild '' by Isaac Karth, Adam M. Smith, 68.

본 발명은 비트 엔트로피(Bit Entropy)를 이용하여 절차적 콘텐츠 생성장치 및 방법을 제공하는 데 그 목적이 있다.An object of the present invention is to provide an apparatus and method for generating procedural content using bit entropy.

상기의 목적을 달성하기 위해 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법은 입력 데이터를 코드북을 참조하여 코드로 변환하는 단계, 상기 변환된 코드를 상기 코드북을 참조하여 패턴을 추출하는 단계, 상기 추출된 패턴을 상기 코드북에 추가하고, 상기 추출된 패턴을 사용하여 생성될 콘텐츠의 엔트로피를 계산하는 단계, 및 상기 엔트로피가 '0'이 될 때까지 상기 엔트로피를 최소화하는 방법으로 상기 추출된 패턴을 적용하여 상기 엔트로피 계산을 반복하는 단계를 포함한다. In order to achieve the above object, a method of generating procedural content according to an embodiment of the present invention comprises the steps of converting input data into a code with reference to a codebook, extracting a pattern with reference to the codebook, Adding the extracted pattern to the codebook, calculating an entropy of the content to be generated using the extracted pattern, and minimizing the entropy until the entropy becomes '0'. Repeating the entropy calculation by applying.

또한, 절차적 콘텐츠 생성방법은 상기 코드북을 참조하여 코드로 변환하는 단계 이전에, 특정 데이터를 미리 설정된 규칙에 따라 특정 코드로 부호화하여 상기 코드북을 생성하는 단계를 더 포함할 수 있다.In addition, the method of generating a procedural content may further include generating the codebook by encoding specific data into a specific code according to a preset rule before converting the codebook into a code by referring to the codebook.

추출된 패턴을 사용하여 확장할 데이터들의 엔트로피를 계산하는 단계는, 상기 추출된 패턴에 대응되는 코드 인덱싱을 설정하고, 상기 생성될 콘텐츠에 대응하는 코드의 엔트로피를 계산하되, 상기 추출된 패턴의 개수에 대응하는 비트수로 상기 추출된 패턴에 대응하는 코드 인덱싱을 설정할 수 있다.Computing the entropy of the data to be extended using the extracted pattern, setting the code indexing corresponding to the extracted pattern, calculate the entropy of the code corresponding to the generated content, the number of the extracted pattern The code indexing corresponding to the extracted pattern may be set to the number of bits corresponding to.

또한, 절차적 콘텐츠 생성방법은 상기 엔트로피 계산을 반복하는 단계 이후에, 상기 결정된 코드 인덱싱을 디코딩하여 상기 확장할 데이터의 콘텐츠로 생성하는 단계를 더 포함할 수 있다.The method of generating procedural content may further include decoding the determined code indexing and generating the content of the data to be expanded after repeating the entropy calculation.

여기서, 입력 데이터는 오디오, 이미지, 텍스트 중 적어도 한 종류로 구성되거나 혼합된 데이터 형태로 구성될 수 있다.Here, the input data may be composed of at least one type of audio, image, text, or mixed data.

추출된 패턴은 N*M 매트릭스 형태일 수 있다.The extracted pattern may be in the form of an N * M matrix.

또한, 본 발명의 다른 실시예에 따르면, 상기의 방법에 따른 절차적 콘텐츠 생성방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.According to another embodiment of the present invention, there is provided a computer-readable recording medium having recorded thereon a program for executing a procedural content generating method according to the above method.

또한, 본 발명의 다른 실시예에 따르면, 절차적 콘텐츠 생성장치는 절차적 콘텐츠 생성과 관련된 어플리케이션이 저장된 메모리, 및 상기 절차적 콘텐츠 생성과 관련된 어플리케이션을 실행하여 절차적 콘텐츠를 생성하는 프로세서를 포함하고, 상기 프로세서는, 상기 어플리케이션을 실행하여 입력 데이터를 코드북을 참조하여 코드로 변환하고, 상기 변환된 코드를 상기 코드북을 참조하여 패턴을 추출하고, 상기 추출된 패턴을 상기 코드북에 추가하고, 상기 추출된 패턴을 사용하여 생성될 콘텐츠의 엔트로피를 계산하고, 상기 엔트로피가 '0'이 될 때까지 상기 엔트로피를 최소화하는 방법으로 상기 추출된 패턴을 적용하여 상기 엔트로피 계산을 반복할 수 있다.Further, according to another embodiment of the present invention, the apparatus for generating procedural content includes a memory in which an application related to procedural content generation is stored, and a processor for executing procedural content to generate procedural content. The processor executes the application to convert input data into codes by referring to a codebook, extracts the converted code by referring to the codebook, adds the extracted pattern to the codebook, and extracts the extracted code. The entropy of the content to be generated is calculated using the extracted pattern, and the entropy calculation may be repeated by applying the extracted pattern in such a way as to minimize the entropy until the entropy becomes '0'.

본 발명에 의하면, 새로운 콘텐츠가 생성되기 전까지 메모리 리소스의 사용을 최소화할 수 있고, 실시간 새로운 콘텐츠를 자동으로 생성할 수 있으므로 최소의 비용으로 사용자에게 새로운 콘텐츠를 계속해서 제공할 수 있는 효과가 있다. According to the present invention, the use of memory resources can be minimized until new content is generated, and new content can be automatically generated in real time, thereby providing new content to the user at a minimum cost.

도 1은 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법의 흐름도이다.
도 2a 내지 도 2b는 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법의 코드로 변환하는 제1 실시예이다.
도 3a 내지 도 3b는 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법의 코드로 변환하는 제2 실시예이다.
도 4는 도 2a의 데이터를 코드북으로 변환하는 예시 도면이다.
도 5a 내지 도 5b는 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법에서 패턴을 분석하는 방법을 설명하기 위한 도면이다.
도 6 내지 도 7은 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법에서 패턴을 결정하는 방법을 설명하기 위한 도면이다.
도 8a 내지 도 8d는 도 7의 방법에 의해 결정된 각 코드의 패턴 형태를 도시한 도면이다.
도 9는 도 7의 방법에 의해 결정된 각 코드를 이진화하여 표시한 도면이다.
도 10은 도 7의 방법에 의해 결정된 각 코드를 중심으로 상, 하, 좌, 우, 대각선 방향에 각각 배치가능한 코드와 엔트로피를 도시한 도면이다.
도 11a 내지 도 11q는 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법을 사용하여 4*4행렬의 콘텐츠를 생성하는 방법을 설명하기 위한 도면이다.
1 is a flowchart of a procedural content generation method according to an embodiment of the present invention.
2A to 2B illustrate a first embodiment of converting code into a procedural content generating method according to an embodiment of the present invention.
3A to 3B illustrate a second embodiment of converting code into a procedural content generating method according to an embodiment of the present invention.
4 is an exemplary diagram of converting data of FIG. 2A into a codebook.
5A to 5B are diagrams for describing a method of analyzing a pattern in a procedural content generation method according to an embodiment of the present invention.
6 to 7 are diagrams for describing a method of determining a pattern in a procedural content generation method according to an embodiment of the present invention.
8A to 8D are diagrams illustrating a pattern form of each code determined by the method of FIG. 7.
9 is a diagram illustrating binarization of each code determined by the method of FIG. 7.
FIG. 10 is a diagram illustrating codes and entropy that can be arranged in up, down, left, right, and diagonal directions with respect to each code determined by the method of FIG. 7.
11A to 11Q are diagrams for describing a method of generating content of a 4 * 4 matrix using a procedural content generation method according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 각 실시예에 따른 절차적 콘텐츠 생성장치 및 생성방법에 대하여 설명하도록 한다.Hereinafter, an apparatus and a method for generating procedural content according to embodiments of the present invention will be described with reference to the accompanying drawings.

이하의 설명에서 본 발명에 대한 이해를 명확히 하기 위하여, 본 발명의 특징에 대한 공지의 기술에 대한 설명은 생략하기로 한다. 실시예들은 본 발명의 이해를 돕기 위한 상세한 설명이며, 본 발명의 권리범위를 제한하는 것은 아니다. 따라서, 본 발명과 동일한 기능을 수행하는 균등물 역시 본 발명의 권리 범위에 속한다. In the following description, in order to clarify the understanding of the present invention, description of well-known technology for the features of the present invention will be omitted. The embodiments are detailed description to assist in understanding the present invention, and do not limit the scope of the present invention. Therefore, equivalents that perform the same function as the present invention also fall within the scope of the present invention.

이하, 첨부된 도면들을 참조하여 구체적인 실시예들을 설명하도록 한다.Hereinafter, specific embodiments will be described with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법의 흐름도이다.1 is a flowchart of a procedural content generation method according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법은 입력 데이터를 코드로 변환하고, 패턴을 추출한 후, 엔트로피가 '0'이 될 때까지 엔트로피를 계산하되, 엔트로피가 '0'이 아닌 경우, 반복해서 추출된 패턴을 적용하는 방법으로 콘텐츠를 생성할 수 있다.Referring to FIG. 1, the procedural content generation method according to an embodiment of the present invention converts input data into codes, extracts a pattern, calculates entropy until the entropy becomes' 0 ', and the entropy is' If it is not 0 ', the content may be generated by repeatedly applying the extracted pattern.

구체적으로, 절차적 콘텐츠 생성장치는 입력 데이터를 코드북을 참조하여 코드로 변환할 수 있다(S110). 입력 데이터는 오디오, 이미지, 텍스트 중 적어도 한 종류로 구성되거나 혼합된 데이터 형태로 구성될 수 있다. In detail, the procedural content generating device may convert the input data into a code by referring to the codebook (S110). The input data may be composed of at least one type of audio, image, text, or mixed data.

코드북은 특정 데이터를 미리 설정된 규칙에 따라 특정 코드로 부호화한 부호화 작업 안내서로, 부호의 관리 및 정보 처리 시스템에서도 중요한 안내서 중의 하나이다. 코드북에는 다음과 같은 6가지의 내용이 기재되어 있어야 한다. ㉠부여 대상 데이터와 대응 부호의 관련을 나타내는 코드표, ㉡부호표의 운용 방법과 그 예시 및 해설, ㉢부호와의 대응이 곤란한 부여 대상 데이터의 처리 예시, ㉣부호화 작업의 세부 지시 예시, ㉤부호화 작업을 용이하게 하기 위한 조건표, ㉥부호의 변경 절차 등을 정하는 부호 관리 규정이 코드북에 포함될 수 있다.The codebook is a coding work guide in which specific data is encoded into a specific code according to a predetermined rule, and is one of important guides in a code management and information processing system. The codebook should contain six items: Code table showing the relation between the data to be assigned and the corresponding code, operation method and example and explanation of the code table, processing of the data to be assigned which is difficult to cope with the code, detailed instruction example of the encoding operation, and encoding operation The codebook may contain code management rules that set the conditional tables and procedures for changing the code in order to facilitate this.

다음으로, 코드북을 참조하여 변환된 코드의 패턴을 추출할 수 있다(S120). 여기서, 패턴은 N*M 매트릭스 형태로 추출될 수 있다. 예를 들어, 2*2 매트릭스, 3*3 매트릭스 등의 형태로 추출될 수 있다. 추출된 패턴과 각 경우의 중심축은 코드북에 미리 저장될 수 있다. 이때, 기본 데이터가 패턴을 추출하기에 충분한 데이터인 경우, 미리 결정된 사이즈(N*M)로 패턴을 추출할 수 있다. 그러나, 기본 데이터의 크기가 충분하지 않는 경우, 기본 데이터의 로테이션 규칙을 이용하여 확장된 기본 데이터를 생성한 후 패턴을 추출할 수 있다. 확장된 기본 데이터를 생성한 후 패턴을 추출하는 방법은 이하 도 6을 참조하여 구체적으로 설명하도록 한다. Next, the pattern of the converted code may be extracted with reference to the codebook (S120). Here, the pattern may be extracted in the form of an N * M matrix. For example, it can be extracted in the form of a 2 * 2 matrix, a 3 * 3 matrix. The extracted pattern and the central axis in each case may be stored in advance in the codebook. In this case, when the basic data is sufficient data to extract the pattern, the pattern may be extracted at a predetermined size (N * M). However, if the size of the basic data is not sufficient, the pattern may be extracted after generating the extended basic data using the rotation rule of the basic data. A method of extracting a pattern after generating extended basic data will be described in detail with reference to FIG. 6.

다음으로, 추출된 패턴을 코드북에 추가하고, 추출된 패턴을 사용하여 생성될 콘텐츠의 엔트로피를 계산할 수 있다(S130). 구체적으로, 추출된 패턴을 사용하여 생성될 콘텐츠의 엔트로피를 계산하는 과정은, 추출된 패턴에 대응되는 코드 인덱싱을 설정하고, 코드 인덱싱을 이용하여 생성될 콘텐츠에 대응하는 코드의 엔트로피를 계산할 수 있다. 이때, 추출된 패턴의 개수에 대응하는 비트수로 추출된 패턴에 대응하는 코드 인덱싱을 설정할 수 있다. 코드 인덱싱을 설정하는 구체적인 방법은 도 9를 참조하여 설명하도록 한다. Next, the extracted pattern may be added to the codebook, and the entropy of the content to be generated may be calculated using the extracted pattern (S130). In detail, the process of calculating the entropy of the content to be generated using the extracted pattern may set the code indexing corresponding to the extracted pattern and calculate the entropy of the code corresponding to the content to be generated using the code indexing. . In this case, code indexing corresponding to the extracted pattern may be set to the number of bits corresponding to the number of extracted patterns. A detailed method of setting code indexing will be described with reference to FIG. 9.

생성될 콘텐츠의 모든 엔트로피가 '0'이 되었는지 판단하고(S140), 엔트로피가 '0'이 아닌 경우, 추출된 패턴을 적용하여 엔트로피가 '0'이 될 때까지 계산을 반복하여 수행한다. 즉, N*M 매트릭스의 콘텐츠를 생성할 경우, 매트릭스의 모든 좌표의 엔트로피가 '1'로 동일한 경우에는 임의의 좌표, 예를 들어, (2, 3) 좌표를 중심으로 주변 엔트로피를 먼저 계산한다. 전체 엔트로피가 '0'이 아닌 경우, 가장 낮은 엔트로피를 갖는 좌표를 다음 중심 좌표로 선택하여 엔트로피를 계산한다. 예를 들어, (2, 3) 좌표를 중심축으로 주변 좌표에 대하여 엔트로피를 계산하고, 주변 엔트로피가 가장 낮은 좌표가 (4, 2)인 경우, (4, 2)를 중심축으로 엔트로피를 다시 계산한다. 엔트로피가 '0'이 될 때까지 중심 좌표를 변경하며 상기의 과정을 반복할 수 있다. 이와 같이, 절차적 콘텐츠 생성장치는 엔트로피가 최소가 되는 방향으로 좌표를 변경하여 엔트로피를 계산한 후, 전체 엔트로피가 '0'이 되면 계산을 멈추고 결정된 코드로 콘텐츠를 생성할 수 있다(S160).It is determined whether all entropy of the generated content is '0' (S140). If the entropy is not '0', the calculation is repeated until the entropy becomes '0' by applying the extracted pattern. That is, when generating content of an N * M matrix, when the entropy of all coordinates of the matrix is equal to '1', the surrounding entropy is first calculated based on arbitrary coordinates, for example, (2, 3) coordinates. . If the total entropy is not '0', entropy is calculated by selecting the coordinate with the lowest entropy as the next center coordinate. For example, if entropy is computed with respect to the surrounding coordinates with the coordinate (2, 3) as the central axis, and the coordinate with the lowest peripheral entropy is (4, 2), entropy is returned with the (4, 2) as the central axis. Calculate The above process may be repeated while changing the center coordinates until the entropy becomes '0'. As described above, the procedural content generating apparatus may calculate entropy by changing coordinates in a direction in which entropy is minimized, and when the total entropy becomes '0', stops calculating and generates content with the determined code (S160).

절차적 콘텐츠 생성장치는 결정된 코드 인덱싱을 디코딩하여 생성할 콘텐츠를 생성할 수 있다. The procedural content generation device may generate content to be generated by decoding the determined code indexing.

도 2a 내지 도 2b는 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법의 코드로 변환하는 제1 실시예이고, 도 3a 내지 도 3b는 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법의 코드로 변환하는 제2 실시예이고, 도 4는 도 2a의 데이터를 코드북으로 변환하는 예시 도면이다.2A and 2B illustrate a first embodiment of converting code into a procedural content generating method according to an embodiment of the present invention, and FIGS. 3A through 3B illustrate a method of generating procedural content according to an embodiment of the present invention. A second embodiment of converting to code, and FIG. 4 is an exemplary diagram of converting data of FIG.

앞서 설명한 바와 같이, 코드북에서 '부여 대상 데이터와 대응 부호의 관련을 나타내는 코드표'가 저장되어 있다. 이러한 코드표는 사용자가 미리 설정할 수 있다. As described above, in the codebook, a 'code table indicating a relationship between granting data and a corresponding code' is stored. This code table can be preset by the user.

제1 실시예에 따르면, 이미지의 그레이 스케일 '160'을 코드 a로, '23'을 코드 b로, '1'을 코드 c로, '0'을 코드 d로 각각 코드화할 수 있다. 상기의 코드화 방법에 의해 3*3 픽셀의 이미지는 도 4와 같이 코드북으로 저장할 수 있다.According to the first embodiment, the gray scale '160' of the image may be coded a, '23' to code b, '1' to code c, and '0' to code d, respectively. According to the above encoding method, an image of 3 * 3 pixels may be stored as a codebook as shown in FIG. 4.

제2 실시예에 따르면, 문자열 중 'I'm'을 코드 a, 공백을 코드 b, 'a'를 코드 c, 'boy'를 코드 d로 각각 코드화할 수 있다. 상기의 코드화 방법에 의해 입력 문자열은 아래 [표 1]과 같이 코드화할 수 있다.According to the second embodiment, 'I'm' may be coded 'a', code 'b', space 'b', code c and 'boy' code d, respectively. By the above encoding method, the input string can be encoded as shown in [Table 1] below.

aa bb cc bb dd

도 5a 내지 도 5b는 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법에서 패턴을 분석하는 방법을 설명하기 위한 도면이다. 5A to 5B are diagrams for describing a method of analyzing a pattern in a procedural content generation method according to an embodiment of the present invention.

코드북은 콘텐츠의 종류가 이미지인지, 문자열인지, 오디오인지 등에 따라 다양한 형태로 생성될 수 있고, 앞서 이미지와 문자열인 경우의 예시를 설명하였다. The codebook may be generated in various forms according to whether the type of content is an image, a string, audio, or the like, and the example of the image and the string has been described above.

코드북에 저장된 기본 패턴이 2차원인 경우(2*2 행렬)과 3차원인 경우(3*3 행렬)의 패턴 분석방법이 저장될 수 있다. 예를 들어, 2차원인 경우 우측 하단을 중심축으로 패턴을 분석하고, 3차원인 경우 중심축을 기준으로 패턴을 분석할 수 있다. 여기서 중심축을 해칭 표시하였다. 즉, 3차원 패턴인 경우, 중심축에 배치된 코드와 매칭되는 코드표를 찾아 상, 하, 좌, 우, 대각선 방향의 코드를 각각 예측(결정)할 수 있다. The pattern analysis method in the case where the basic pattern stored in the codebook is two-dimensional (2 * 2 matrix) and three-dimensional (3 * 3 matrix) may be stored. For example, in the case of 2D, the pattern may be analyzed based on the central axis at the lower right, and in the case of 3D, the pattern may be analyzed based on the central axis. The central axis is hatched. That is, in the case of a three-dimensional pattern, a code table that matches a code arranged on a central axis may be found to predict (determine) codes in up, down, left, right, and diagonal directions, respectively.

도 6 내지 도 7은 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법에서 패턴을 결정하는 방법을 설명하기 위한 도면이고, 도 8a 내지 도 8d는 도 7의 방법에 의해 결정된 각 코드의 패턴 형태를 도시한 도면이다.6 to 7 are views for explaining a method of determining a pattern in the procedural content generation method according to an embodiment of the present invention, Figures 8a to 8d is a pattern form of each code determined by the method of FIG. Figure is a diagram.

도 6은 본 발명의 일 실시예에 따른 절차적 콘텐트 생성을 위하여 3*3 행렬의 패턴을 추출하기 위하여, 기본 코드북을 확장하여 패턴을 추출한 실시예이다. 6 is an embodiment in which a pattern is extracted by extending a basic codebook to extract a pattern of a 3 * 3 matrix for generating procedural content according to an embodiment of the present invention.

도 6을 참조하면, 3*3 행렬의 패턴을 추출해야 하는데, 기본 코드북이 해칭되지 않은 3*3 행렬인 경우, 로테이션 규칙을 반영하여 3*3 행렬 주변의 코드를 임의로 결정한 후 패턴을 추출할 수 있다. 즉, 중심 3*3 행렬의 첫 번째 행의 로테이션 규칙은 a-b-d 이므로 d 우측에 'a'를 a 좌측에 'd'를 확장할 수 있다. 마찬가지 방법으로, 중심 3*3 행렬의 첫 번째 열의 로테이션 규칙은 a-c-b이므로, b 하측에 'a'를 a 상측에 'b'를 확장할 수 있다. 이러한 방법으로 주변 좌표들에 코드를 확장하여 4*4 행렬로 확장할 수 있다. Referring to FIG. 6, the pattern of 3 * 3 matrix should be extracted. When the basic codebook is a 3 * 3 matrix that is not hatched, the pattern around the 3 * 3 matrix may be randomly determined by reflecting the rotation rule. Can be. That is, since the rotation rule of the first row of the center 3 * 3 matrix is a-b-d, 'a' can be extended to the right of d and 'd' to the left of a. Similarly, since the rotation rule of the first column of the center 3 * 3 matrix is a-c-b, 'a' can be extended below b and 'b' above a. In this way, the code can be extended to 4 * 4 matrices by surrounding code.

도 7은 도 6의 확장된 코드북에서 3*3 패턴을 추출하는 방법으로, 4*4 행렬의 좌측부터 '1'씩 좌측, 하측으로 이동하면서 3*3 패턴을 추출할 수 있다. FIG. 7 is a method of extracting a 3 * 3 pattern from the extended codebook of FIG. 6. The 3 * 3 pattern may be extracted while moving from the left of the 4 * 4 matrix to the left and the bottom by '1'.

이러한 방법으로 추출된 패턴은 총 9가지 패턴이 되고, 코드북에 추출된 패턴을 저장할 수 있다. The pattern extracted in this way is a total of nine patterns, it is possible to store the extracted pattern in the codebook.

도 8a 내지 도 8d를 참조하면, 코드 a, b, c, d를 중심축으로 하는 패턴은 각각 3개, 2개, 2개, 2개로 구분되는 것을 알 수 있다. Referring to FIGS. 8A to 8D, it can be seen that patterns having a central axis as codes a, b, c, and d are divided into three, two, two, and two, respectively.

상기의 패턴 추출 방법과 패턴의 형태는 일 예시에 불과할 뿐이며 다양한 형태로 변형될 수 있다. The pattern extraction method and the shape of the pattern is only one example and may be modified in various forms.

도 9는 도 7의 방법에 의해 결정된 각 코드를 이진화하여 표시한 도면이고, 도 10은 도 7의 방법에 의해 결정된 각 코드를 중심으로 상, 하, 좌, 우, 대각선 방향에 각각 배치가능한 코드와 엔트로피를 도시한 도면이다.FIG. 9 is a diagram illustrating binarization of each code determined by the method of FIG. 7, and FIG. 10 is a code that can be arranged in the up, down, left, right, and diagonal directions with respect to each code determined by the method of FIG. 7. And entropy.

도 9를 참조하면, 도 7의 코드 a, b, c, d를 각각 이진화하여 표시할 수 있다. 구체적으로, 코드 a는 '1000', 코드 b는 '0100', 코드 c는 '0010', 코드 d는 '0001'로 정의할 수 있다. 이때, 전체 코드(a, b, c, d)의 개수에 대응하는 비트수로 각 코드를 이진화할 수 있다. 이러한 이진화 방법은 일 실시예에 불과하며 다양한 방법으로 코드 인덱싱을 설정할 수 있다. Referring to FIG. 9, codes a, b, c, and d of FIG. 7 may be binarized and displayed. Specifically, code a may be defined as '1000', code b as '0100', code c as '0010', and code d as '0001'. In this case, each code may be binarized by the number of bits corresponding to the number of all codes a, b, c, and d. This binarization method is only an embodiment, and code indexing may be set in various ways.

도 10을 참조하면, 각 코드를 중심에 배치한 경우, 상, 하, 좌, 우, 대각선 방향에 배치할 수 있는 코드와 엔트로피를 나타낸 것이다. Referring to FIG. 10, the codes and entropy that can be arranged in the up, down, left, right, and diagonal directions when each code is disposed at the center are shown.

예를 들어, 코드 a가 3*3 패턴의 중심축에 배치된 경우, 코드 a와 관련된 패턴을 도 8a를 참조하여 확인한 후, a의 상측에 배치될 수 있는 코드를 'b' 또는 'd'로 결정할 수 있다. 이 경우, a의 상측에는 'b' 또는 'd' 둘 중 하나가 배치되어야 하므로 엔트로피는 1에서 0.5로 감소하게 되고, 코드 인덱싱은 '0101'이 된다. 마찬가지 방법으로 코드 a의 하측, 좌측, 우측, 각 대각선 방향에 대하여 패턴을 적용하여 도 10과 같은 결과를 얻을 수 있다.For example, when the code a is disposed on the central axis of the 3 * 3 pattern, after confirming the pattern related to the code a with reference to FIG. 8A, the code that can be disposed on the upper side of the 'b' or 'd' Can be determined. In this case, since either 'b' or 'd' should be disposed above a, entropy decreases from 1 to 0.5, and code indexing becomes '0101'. In the same manner, a pattern may be applied to the lower, left, right, and diagonal directions of the code a to obtain a result as shown in FIG. 10.

마찬가지 방법으로 도 8a 내지 도 8d의 추출된 패턴을 이용하여, 코드 b, 코드 c, 코드 d가 중심축에 위치한 경우에 대하여 각각 주변에 배치될 수 있는 코드와 엔트로피를 결정할 수 있다. In the same manner, the extracted patterns of FIGS. 8A to 8D may be used to determine codes and entropies that may be disposed around each of the cases where codes b, c, and d are located on the central axis.

도 11a 내지 도 11q는 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법을 사용하여 4*4행렬의 콘텐츠를 생성하는 방법을 설명하기 위한 도면이다. 11A to 11Q are diagrams for describing a method of generating content of a 4 * 4 matrix using a procedural content generation method according to an embodiment of the present invention.

도 11a 내지 도 11q를 참조하면, 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법에 의해 도 8a 내지 도 8d에서 생성된 코드북을 참조하여 a, b, c, d 4개의 코드로 구성된 임의의 4*4 행렬의 콘텐츠를 생성할 수 있다. Referring to FIGS. 11A to 11Q, any code consisting of four codes a, b, c, and d is described with reference to the codebook generated in FIGS. 8A to 8D by a procedural content generation method according to an embodiment of the present invention. You can create the contents of a 4 * 4 matrix.

도 11a를 참조하면, 임의의 4*4 행렬의 콘텐츠는 초기 상태에서 모든 좌표의 엔트로피가 '1'로 코드 a, b, c, d 어떤 코드도 위치할 수 있다. 이하, 각 좌표는 (x, y) 형태로 표시하고, x는 열 수, y는 행 수를 나타내며, 좌측하단 모서리의 좌표를 (0, 0)으로 정한다.Referring to FIG. 11A, the content of any 4 * 4 matrix may be located in any code a, b, c, d with an entropy of all coordinates '1' in an initial state. Hereinafter, each coordinate is represented by the form (x, y), x represents the number of columns, y represents the number of rows, and the coordinate of the lower left corner is set to (0, 0).

도 11b를 참조하면 16개의 좌표 중 (4, 2) 좌표의 코드를 'b'로 임의로 결정한 후, (4, 2) 좌표 주변의 코드와 엔트로피를 계산할 수 있다. 이때, (4, 2) 좌표는 코드 b로 결정되었으므로 엔트로피는 '0'이 된다.Referring to FIG. 11B, after a code of (4, 2) coordinates among 16 coordinates is arbitrarily determined as 'b', a code and entropy around the (4, 2) coordinates may be calculated. At this time, since the (4, 2) coordinate is determined by the code b, the entropy becomes '0'.

도 11c를 참조하면, 코드 b의 주변 코드는 도 10을 참조하여 결정할 수 있다. 즉, 도 10의 code b에서의 존재확률과 관련된 코드북을 참조하면, b의 상측엔 'a' 또는 'c'가 배치될 수 있고, 엔트로피는 '0.5'이고, 하측엔 'a' 또는 'd'가 배치될 수 있고, 엔트로피는 '0.5'가 되고, 우측 옆엔 'a' 또는 'c'가 배치될 수 있고, 엔트로피는 '0.5'가 되는 것을 알수 있다. 또한, 좌측 대각선 상측과 하측엔 각각 'a, b', 'c, d'가 올수 있고 엔트로피는 각각 '0.5'가 된다.Referring to FIG. 11C, the neighboring code of code b may be determined with reference to FIG. 10. That is, referring to the codebook related to the probability of existence in code b of FIG. 10, 'a' or 'c' may be disposed above b, entropy is '0.5', and 'a' or 'd' below. It can be seen that 'can be arranged, the entropy is' 0.5', 'a' or 'c' can be placed on the right side, and the entropy is' 0.5 '. In addition, 'a', 'b', 'c' and 'd' may be on the left diagonal upper side and the lower side, respectively, and the entropy becomes '0.5'.

도 11d를 참조하면, (4, 2) 좌표와 인접한 엔트로피 '0.5'를 갖는 좌표 중 하나인 (4, 3)을 중심으로 주변 좌표의 코드와 엔트로피를 다시 계산한다. 구체적으로, (4, 3)에는 'a' 또는 'c'가 올 수 있으므로, 'a'가 배치된 경우 주변에 배치될 수 있는 코드와 엔트로피와 'c'가 배치된 경우 주변에 배치될 수 있는 코드와 엔트로피를 더하여 (4, 3) 주변의 엔트로피를 결정할 수 있다.  Referring to FIG. 11D, the code and entropy of the peripheral coordinates are recalculated about (4, 3), which is one of coordinates having an entropy '0.5' adjacent to the (4, 2) coordinate. Specifically, (4, 3) may be 'a' or 'c', so that if the 'a' is placed code and entropy that can be placed around the 'c' can be placed around You can determine the entropy around (4, 3) by adding the code and entropy.

도 11e를 참조하면, (3, 3) 좌표를 중심으로 주변 좌표의 코드와 엔트로피를 다시 계산한다. (3, 3)에는 'a' 또는 'b'가 올 수 있으므로, 'a'가 배치된 경우 주변에 배치될 수 있는 코드와 엔트로피와 'b'가 배치된 경우 주변에 배치될 수 있는 코드와 엔트로피를 더하여 (3, 3) 주변의 엔트로피를 결정할 수 있다. Referring to FIG. 11E, the code and entropy of the peripheral coordinates are recalculated based on the (3, 3) coordinates. (3, 3) can be either 'a' or 'b', so that code that can be placed around if 'a' is placed and code that can be placed around if entropy and 'b' are placed Entropy can be added to determine entropy around (3, 3).

도 11f를 참조하면, (3, 2) 좌표를 중심으로 주변 좌표의 코드와 엔트로피를 다시 계산한다. (3, 2)에는 'a' 또는 'c'가 올 수 있으므로, 'a'가 배치된 경우 주변에 배치될 수 있는 코드와 엔트로피와 'c'가 배치된 경우 주변에 배치될 수 있는 코드와 엔트로피를 더하여 (3, 2) 주변의 엔트로피를 결정할 수 있다. Referring to FIG. 11F, the code and entropy of the peripheral coordinates are recalculated based on the (3, 2) coordinates. (3, 2) can be either 'a' or 'c', so that code that can be placed around if 'a' is placed and code that can be placed around if entropy and 'c' are placed Entropy can be added to determine entropy around (3, 2).

도 11g를 참조하면, (3, 1) 좌표를 중심으로 주변 좌표의 코드와 엔트로피를 다시 계산한다. (3, 1)에는 'c' 또는 'd'가 올 수 있으므로, 'c'가 배치된 경우 주변에 배치될 수 있는 코드와 엔트로피와 'd'가 배치된 경우 주변에 배치될 수 있는 코드와 엔트로피를 더하여 (3, 1) 주변의 엔트로피를 결정할 수 있다. Referring to FIG. 11G, the code and entropy of the peripheral coordinates are recalculated around the (3, 1) coordinates. (3, 1) can be 'c' or 'd', so code that can be placed around if 'c' is placed and code that can be placed around if entropy and 'd' are placed Entropy can be added to determine entropy around (3, 1).

도 11h 내지 도 11q를 참조하면, 마찬가지 방법으로, 다른 좌표들에 대하여 주변에 배치될 수 있는 코드와 엔트로피를 계산할 수 있다. 모든 좌표에 대하여 패턴을 참조하여 엔트로피 계산이 완료되고 더 이상 엔트로피를 낮출수 없는 경우, 임의로 한 좌표에 예정된 두 개의 코드 중 하나를 선택한 후 도 11a 내지 도 11q의 과정을 반복하여 계한할 수 있다. 이러한 과정을 반복하여 전체 엔트로피가 '0'이 되면 결정된 코드를 디코딩하여 콘텐츠로 생성할 수 있다. 11H-11Q, in the same manner, it is possible to calculate the code and entropy that can be placed around other coordinates. When entropy calculation is completed with reference to a pattern for all coordinates and it is no longer possible to lower entropy, one may arbitrarily select one of two codes scheduled for one coordinate and repeat the process of FIGS. 11A to 11Q. By repeating this process, when the total entropy becomes '0', the determined code can be decoded and generated as content.

도시하지는 않았지만, 본 발명의 다른 실시예에 따른 절차적 콘텐츠 생성장치는 메모리 및 프로세서를 포함하여 구성될 수 있다.Although not shown, the apparatus for generating procedural content according to another embodiment of the present invention may include a memory and a processor.

구체적으로, 메모리는 절차적 콘텐츠 생성과 관련된 어플리케이션을 저장하고, 프로세서는 절차적 콘텐츠 생성과 관련된 어플리케이션을 실행하여 절차적 콘텐츠를 생성할 수 있다. 또한, 프로세서는 어플리케이션을 실행하여 입력 데이터를 코드북을 참조하여 코드로 변환하고, 변환된 코드를 코드북을 참조하여 패턴을 추출하고, 추출된 패턴을 코드북에 추가하고, 추출된 패턴을 사용하여 생성될 콘텐츠의 엔트로피를 계산할 수 있다. 프로세서는 엔트로피가 '0'이 될때까지 엔트로피를 최소화하는 방법으로 추출된 패턴을 적용하여 엔트로피 계산을 반복하여 콘텐츠를 생성할 수 있다.In detail, the memory may store an application related to procedural content generation, and the processor may execute an application related to procedural content generation to generate procedural content. In addition, the processor executes an application to convert the input data into code by referring to the codebook, extracts the pattern by referring to the codebook, adds the extracted pattern to the codebook, and generates the extracted pattern using the extracted pattern. The entropy of the content can be calculated. The processor may generate content by repeating the entropy calculation by applying the extracted pattern in such a way as to minimize entropy until the entropy becomes '0'.

이상에서 전술한 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법은, 절차적 콘텐츠 생성장치에 기본적으로 설치된 어플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 어플리케이션 스토어 서버, 어플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 어플리케이션 제공 서버를 통해 단말기에 직접 설치한 어플리케이션(프로그램)에 의해 실행될 수도 있다. In the above-described procedural content generation method according to an embodiment of the present invention, an application basically installed in the procedural content generating apparatus (which may include a program included in a platform or an operating system, etc., which is basically installed in a terminal). It may be executed by the user, or may be executed by an application (program) directly installed on the terminal by an application providing server, such as an application store server, an application, or a web server associated with the corresponding service.

이러한 의미에서, 전술한 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성장치는 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 어플리케이션(프로그램)으로 구현되고 단말기 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 이러한 프로그램은 컴퓨터에 의해 읽힐 수 있는 기록매체에 기록되고 컴퓨터에 의해 실행됨으로써 전술한 기능들이 실행될 수 있다.In this sense, the above-described procedural content generating apparatus according to an embodiment of the present invention is implemented as an application (program) basically installed in a terminal or directly installed by a user, and recorded in a computer-readable recording medium such as a terminal. Can be. Such a program is recorded on a recording medium readable by a computer and executed by a computer so that the above functions can be executed.

이와 같이, 본 발명의 일 실시예에 따른 절차적 콘텐츠 생성방법을 실행하기 위한 프로그램은 컴퓨터의 프로세서(CPU)에 의해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. As described above, a program for executing a procedural content generation method according to an embodiment of the present invention may be coded in a computer language such as C, C ++, JAVA, or machine language that can be read by a computer processor (CPU). ) May be included.

이러한 코드는 상기 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소, 번지)에서 참조되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다. Such code may further include memory reference related code for additional information or media required for the computer's processor to execute the functions at which location (address, address) of the computer's internal or external memory should be referenced.

본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수 있다. Functional programs for implementing the present invention, and related code and code segments thereof, may be easily used by programmers in the technical field to which the present invention belongs, in consideration of a system environment of a computer that executes a program by reading a recording medium. Can be deduced or changed.

상기의 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다. Recordable media that can be read by a computer recording the above program include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical media storage device, and the like.

이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위안에서라면, 그 모든 구성 요소들이 적어도 하나로 선택적으로 결합하여 동작할 수 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로는 자기 기록매체, 광 기록매체 등이 포함될 수 있다. In the above description, all elements constituting the embodiments of the present invention are described as being combined or operating in combination, but the present invention is not necessarily limited to the embodiments. In other words, within the scope of the present invention, all of the components can be selectively combined to operate at least one. In addition, although all of the components may be implemented in one independent hardware, each or all of the components may be selectively combined to perform some or all functions combined in one or a plurality of hardware. It may be implemented as a computer program having a. Codes and code segments constituting the computer program may be easily inferred by those skilled in the art. Such a computer program may be stored in a computer readable storage medium and read and executed by a computer, thereby implementing embodiments of the present invention. The storage medium of the computer program may include a magnetic recording medium, an optical recording medium, and the like.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and those skilled in the art to which the present invention pertains may make various modifications and changes without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention but to describe the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of the present invention.

S110: 입력 데이터를 코드로 변환 S120: 패턴 추출
S130: 엔트로피 계산 S140: 엔트로피 '0'?
S150: 패턴 적용 S160: 콘텐츠 생성
S110: Convert Input Data to Code S120: Extract Pattern
S130: Entropy calculation S140: Entropy '0'?
S150: Apply Pattern S160: Create Content

Claims (8)

절차적 콘텐츠 생성장치가 콘텐츠를 생성하는 방법에 있어서,
입력 데이터를 코드북을 참조하여 코드로 변환하는 단계;
상기 코드북을 참조하여 상기 변환된 코드의 패턴을 추출하는 단계;
상기 추출된 패턴을 상기 코드북에 추가하고, 상기 추출된 패턴을 사용하여 생성될 콘텐츠의 엔트로피를 계산하는 단계; 및
상기 엔트로피가 '0'이 될때까지 상기 엔트로피를 최소화하는 방법으로 상기 추출된 패턴을 적용하여 상기 엔트로피 계산을 반복하는 단계;
를 포함하는 절차적 콘텐츠 생성방법.
In the method for generating content by the procedural content generating device,
Converting the input data into a code by referring to the codebook;
Extracting a pattern of the converted code by referring to the codebook;
Adding the extracted pattern to the codebook and calculating an entropy of the content to be generated using the extracted pattern; And
Repeating the entropy calculation by applying the extracted pattern in such a way as to minimize the entropy until the entropy becomes '0';
Procedural content generation method comprising a.
제1항에 있어서,
상기 코드북을 참조하여 코드로 변환하는 단계 이전에,
특정 데이터를 미리 설정된 규칙에 따라 특정 코드로 부호화하여 상기 코드북을 생성하는 단계;를 더 포함하는, 절차적 콘텐츠 생성방법.
The method of claim 1,
Before the step of converting to code by referring to the codebook,
And encoding the specific data into a specific code according to a preset rule to generate the codebook.
제1항에 있어서,
상기 추출된 패턴을 사용하여 생성될 콘텐츠의 엔트로피를 계산하는 단계는,
상기 추출된 패턴에 대응되는 코드 인덱싱을 설정하고, 상기 생성될 콘텐츠에 대응하는 코드의 엔트로피를 계산하되,
상기 추출된 패턴의 개수에 대응하는 비트수로 상기 추출된 패턴에 대응하는 코드 인덱싱을 설정하는 것을 특징으로 하는, 절차적 콘텐츠 생성방법.
The method of claim 1,
Calculating the entropy of the content to be generated using the extracted pattern,
Set the code indexing corresponding to the extracted pattern, calculate the entropy of the code corresponding to the generated content,
And setting the code indexing corresponding to the extracted pattern to the number of bits corresponding to the number of the extracted patterns.
제3항에 있어서,
상기 엔트로피 계산을 반복하는 단계 이후에,
상기 설정된 코드 인덱싱을 디코딩하여 상기 콘텐츠로 생성하는 단계;
를 더 포함하는, 절차적 콘텐츠 생성방법.
The method of claim 3,
After repeating the entropy calculation,
Decoding the set code indexing to generate the content;
Further comprising, procedural content generation method.
제1항에 있어서,
상기 입력 데이터는 오디오, 이미지, 텍스트 중 적어도 한 종류로 구성되거나 혼합된 데이터 형태로 구성된, 절차적 콘텐츠 생성방법.
The method of claim 1,
And the input data comprises at least one type of audio, image, or text, or in the form of mixed data.
제1항에 있어서,
상기 추출된 패턴은 N*M 매트릭스 형태인, 절차적 콘텐츠 생성방법.
The method of claim 1,
And the extracted pattern is in the form of an N * M matrix.
제1항 내지 제6항 중 한 항에 따른 절차적 콘텐츠 생성방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
A computer-readable recording medium having recorded thereon a program for executing the procedural content generating method according to any one of claims 1 to 6.
절차적 콘텐츠 생성과 관련된 어플리케이션이 저장된 메모리; 및
상기 절차적 콘텐츠 생성과 관련된 어플리케이션을 실행하여 절차적 콘텐츠를 생성하는 프로세서;를 포함하고,
상기 프로세서는,
상기 어플리케이션을 실행하여 입력 데이터를 코드북을 참조하여 코드로 변환하고,
상기 변환된 코드를 상기 코드북을 참조하여 패턴을 추출하고,
상기 추출된 패턴을 상기 코드북에 추가하고, 상기 추출된 패턴을 사용하여 생성될 콘텐츠의 엔트로피를 계산하고,
상기 엔트로피가 '0'이 될때까지 상기 엔트로피를 최소화하는 방법으로 상기 추출된 패턴을 적용하여 상기 엔트로피 계산을 반복하는 것을 특징으로 하는 절차적 콘텐츠 생성장치.
A memory in which an application related to procedural content generation is stored; And
And a processor for generating procedural content by executing an application related to the procedural content generation.
The processor,
Execute the application to convert the input data into codes by referring to the codebook,
Extracting the pattern from the converted code by referring to the codebook,
Add the extracted pattern to the codebook, calculate entropy of the content to be generated using the extracted pattern,
And applying the extracted pattern in such a manner as to minimize the entropy until the entropy becomes '0' and repeating the entropy calculation.
KR1020170181204A 2017-12-27 2017-12-27 Apparatus and method for generating procedural content KR101975404B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170181204A KR101975404B1 (en) 2017-12-27 2017-12-27 Apparatus and method for generating procedural content

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170181204A KR101975404B1 (en) 2017-12-27 2017-12-27 Apparatus and method for generating procedural content

Publications (1)

Publication Number Publication Date
KR101975404B1 true KR101975404B1 (en) 2019-08-28

Family

ID=67775226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170181204A KR101975404B1 (en) 2017-12-27 2017-12-27 Apparatus and method for generating procedural content

Country Status (1)

Country Link
KR (1) KR101975404B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230090864A (en) 2021-12-15 2023-06-22 가천대학교 산학협력단 A method and apparatus for generating a dungeon in the form of a room and a hallway using a procedural generation algorithm.

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060083100A (en) * 2005-01-14 2006-07-20 학교법인 성균관대학 Method and apparatus for adaptive entropy encoding and decoding for scalable video coding
KR20140124448A (en) * 2013-04-15 2014-10-27 인텔렉추얼디스커버리 주식회사 Method for encoding and decoding video using intra prediction, and apparatus thereof
KR20150090178A (en) * 2013-01-30 2015-08-05 인텔 코포레이션 Content adaptive entropy coding of coded/not-coded data for next generation video

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060083100A (en) * 2005-01-14 2006-07-20 학교법인 성균관대학 Method and apparatus for adaptive entropy encoding and decoding for scalable video coding
KR20150090178A (en) * 2013-01-30 2015-08-05 인텔 코포레이션 Content adaptive entropy coding of coded/not-coded data for next generation video
KR20140124448A (en) * 2013-04-15 2014-10-27 인텔렉추얼디스커버리 주식회사 Method for encoding and decoding video using intra prediction, and apparatus thereof

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FDG '17 Proceedings of the 12th International Conference on the Foundation of Digital Games, Article No. 68에 수록된, Isaac Karth, Adam M. Smith의 논문제목 'Wave Function Collapse is Constraint Solving in the Wild'
미국공개특허 US2014/0357365(2014.12.04. 공개), 발명의 명칭: ELECTRONIC GAME PERSONALIZATION

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230090864A (en) 2021-12-15 2023-06-22 가천대학교 산학협력단 A method and apparatus for generating a dungeon in the form of a room and a hallway using a procedural generation algorithm.

Similar Documents

Publication Publication Date Title
US11270497B2 (en) Object loading method and apparatus, storage medium, and electronic device
CN110516370B (en) Prefabricated part deepening drawing generation method and device, computer equipment and medium
CN109994038B (en) Method and device for determining interest points in irregular area and electronic equipment
US8773422B1 (en) System, method, and computer program product for grouping linearly ordered primitives
CN109215123B (en) Method, system, storage medium and terminal for generating infinite terrain based on cGAN
JP4898615B2 (en) Information processing apparatus and encoding method
US9305329B2 (en) Low memory content aware fill
WO2017198189A1 (en) Generation and reading method and device for colour identified colour two-dimensional figure code
WO2021169502A1 (en) A pixel image as well as its processing method and application system
CN111260784B (en) Urban three-dimensional space grid compression coding method and device and terminal equipment
KR20170083891A (en) METHOD AND APPARATUS for generating acceleration structure
CN112579086B (en) Template construction method adaptive to multi-platform front-end View
CN111857704A (en) Code generation method and device for layout relationship
KR101975404B1 (en) Apparatus and method for generating procedural content
CN111143620B (en) Method, system and storage medium for editing concrete game map
US20040004625A1 (en) Selecting elements from an electronic document
CN108898013B (en) Android application interface similarity comparison method based on layout division feature vectors
CN115952252B (en) Semantic tile data processing method and device based on dynamic rendering and electronic equipment
JP7430792B2 (en) Attribute information prediction method, encoder, decoder and storage medium
KR20140124337A (en) Methods of and apparatus for multidimensional indexing in microprocessor systems
JP6377743B2 (en) Method and apparatus for building an intermediate character library
CN112288759B (en) Boundary extraction method, device, equipment and storage medium
CN112115680B (en) Font splitting method and device, computer equipment and computer readable storage medium
CN113546409B (en) Method for playing GIF format resource by Laya engine and storage medium
KR20200068901A (en) Method and apparatus for encoding map image based on condition