KR102396060B1 - Changing Camera View in Electronic Games - Google Patents

Changing Camera View in Electronic Games Download PDF

Info

Publication number
KR102396060B1
KR102396060B1 KR1020227003493A KR20227003493A KR102396060B1 KR 102396060 B1 KR102396060 B1 KR 102396060B1 KR 1020227003493 A KR1020227003493 A KR 1020227003493A KR 20227003493 A KR20227003493 A KR 20227003493A KR 102396060 B1 KR102396060 B1 KR 102396060B1
Authority
KR
South Korea
Prior art keywords
graphical object
camera view
avatar
threshold level
occlusion
Prior art date
Application number
KR1020227003493A
Other languages
Korean (ko)
Other versions
KR20220017536A (en
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 로브록스 코포레이션
Publication of KR20220017536A publication Critical patent/KR20220017536A/en
Application granted granted Critical
Publication of KR102396060B1 publication Critical patent/KR102396060B1/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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5258Changing parameters of virtual cameras by dynamically adapting the position of the virtual camera to keep a game object or game character in its viewing frustum, e.g. for tracking a character or a ball
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics

Abstract

전자 게임에서 3차원(3D) 세계를 횡단하는 아바타의 카메라 뷰는 카메라 뷰에 있는 그래픽 객체에 의한 아바타의 오클루전을 피하기 위해 변경될 수 있다. 카메라 뷰는 오클루전을 피하도록 아바타를 향해 앞으로 이동될 수 있고, 카메라 뷰는 이후 아바타가 그래픽 객체를 통과한 후 아바타로부터 멀어지게 뒤로 이동될 수 있다. 카메라 뷰에서 아바타를 상당히 오클루딩하지 않는 그래픽 객체는 카메라 뷰에서 변경을 유발하지 않을 수 있다.In electronic games, the camera view of an avatar traversing a three-dimensional (3D) world may be altered to avoid occlusion of the avatar by graphical objects in the camera view. The camera view can be moved forward towards the avatar to avoid occlusion, and the camera view can then be moved back away from the avatar after the avatar has passed the graphical object. Graphic objects that do not significantly occlude the avatar in the camera view may not cause changes in the camera view.

Description

전자 게임에서 카메라 뷰 변경Changing Camera View in Electronic Games

본 개시는 일반적으로 컴퓨터 기반 게이밍 관한 것으로, 배타적이지는 않지만 보다 구체적으로, 전자 게임에서 카메라 뷰를 표시하기 위한 방법, 시스템 및 컴퓨터 판독가능 매체에 관한 것이다.BACKGROUND This disclosure relates generally, but not exclusively, to computer-based gaming, and more particularly, to methods, systems, and computer-readable media for displaying a camera view in an electronic game.

일부 온라인 게이밍 플랫폼은 사용자(예컨대, 플레이어)가 3차원(3D) 세계 내에서 자신의 아바타를 탐색할 수 있도록 허용한다. 자신의 클라이언트 장치에 제공된 마우스, 키보드 또는 기타 입력 메커니즘을 사용함으로써, 사용자는 3D 세계 내의 건물, 들판, 숲, 공원, 산 및 기타 환경을 통해 자신의 아바타의 달리기, 걷기, 등산하기, 비행하기 등을 제어할 수 있고, 나무, 벽, 기둥, 구름 및 기타 구조/객체와 같은 다양한 요소가 3D 세계 내에서 시각적 그래픽 표현으로 렌더링될 수 있다.Some online gaming platforms allow users (eg, players) to explore their avatars within a three-dimensional (3D) world. By using the mouse, keyboard or other input mechanism provided on their client device, the user can run, walk, climb, fly, etc., of his avatar through buildings, fields, forests, parks, mountains and other environments within the 3D world. various elements such as trees, walls, columns, clouds and other structures/objects can be rendered as visual graphical representations within the 3D world.

전형적으로, 3D 세계는 아바타가 3D 세계를 통해 한 지점에서 다른 지점으로 횡단함에 따라 라이브 카메라가 아바타를 따라가는 것처럼 카메라 뷰로 표시된다. 그러나, 많은 전자 게임의 카메라 뷰는 종종 많은 사용자를 귀찮게 하는 거슬리는 불연속성과 파괴적인 시각 효과로 가득 차 있다.Typically, the 3D world is presented in a camera view as a live camera follows the avatar as the avatar traverses from one point to another through the 3D world. However, the camera view of many electronic games is filled with annoying discontinuities and destructive visual effects that often annoy many users.

제1 양태에 따르면, 전자 게임에서 렌더링되는 3차원(3D) 세계의 카메라 뷰를 변경하기 위한 방법이 제공된다. 방법은: 3D 세계에서 렌더링된 제1 그래픽 객체의 횡단(traversal)의 속도 및 방향을 결정하는 단계; 횡단의 방향을 따라 위치된 제2 그래픽 객체를 식별하는 단계; 횡단의 방향을 따르는 제1 그래픽 객체의 횡단 동안 제2 그래픽 객체가 적어도 임계 레벨만큼 현재 카메라 뷰에서 제1 그래픽 객체를 오클루딩(occluding)하는지 여부를 결정하는 단계; 제2 그래픽 객체에 의한 제1 그래픽 객체의 오클루전(occlusion)이 적어도 임계 레벨을 초과한다는 결정에 응답하여, 카메라 뷰를 제1 그래픽 객체를 향해 앞으로 이동함으로써 제2 그래픽 객체에 의한 오클루전을 피하도록 제1 그래픽 객체의 현재 카메라 뷰를 변경하는 단계; 및 제2 그래픽 객체에 의한 오클루전이 임계 레벨 미만이라는 결정에 응답하여, 현재 카메라 뷰를 유지하는 단계를 포함한다.According to a first aspect, there is provided a method for altering a camera view of a three-dimensional (3D) world rendered in an electronic game. The method includes: determining a speed and direction of traversal of a rendered first graphical object in a 3D world; identifying a second graphical object located along a direction of traversal; determining whether a second graphical object occluding the first graphical object in the current camera view by at least a threshold level during traversal of the first graphical object along a direction of traversal; In response to determining that occlusion of the first graphical object by the second graphical object exceeds at least a threshold level, occlusion by the second graphical object by moving the camera view forward toward the first graphical object changing the current camera view of the first graphic object to avoid and in response to determining that occlusion by the second graphical object is below the threshold level, maintaining the current camera view.

다른 양태에 따르면, 프로세서에 의한 실행에 응답하여, 프로세서로 하여금, 동작의 수행을 제어하거나 수행하도록 하는 명령어가 저장된 비일시적 컴퓨터 판독가능 매체가 제공된다. 동작은: 전자 게임의 3차원(3D) 세계에서 렌더링된 제1 그래픽 객체의 횡단의 속도 및 방향을 결정하는 것; 횡단의 방향을 따라 위치된 제2 그래픽 객체를 식별하는 것; 횡단의 방향을 따르는 제1 그래픽 객체의 횡단 동안 제2 그래픽 객체가 적어도 임계 레벨만큼 현재 카메라 뷰에서 제1 그래픽 객체를 오클루딩하는지 여부를 결정하는 것; 제2 그래픽 객체에 의한 제1 그래픽 객체의 오클루전이 적어도 임계 레벨을 초과한다는 결정에 응답하여, 카메라 뷰를 제1 그래픽 객체를 향해 앞으로 이동함으로써 제2 그래픽 객체에 의한 오클루전을 피하도록 제1 그래픽 객체의 현재 카메라 뷰를 변경하는 것; 및 제2 그래픽 객체에 의한 오클루전이 임계 레벨 미만이라는 결정에 응답하여, 현재 카메라 뷰를 유지하는 것을 포함한다.According to another aspect, there is provided a non-transitory computer-readable medium having stored thereon instructions that, in response to execution by a processor, cause the processor to control or perform an operation. The actions include: determining a speed and direction of traversal of a rendered first graphical object in a three-dimensional (3D) world of the electronic game; identifying a second graphical object located along the direction of traversal; determining whether the second graphical object occludes the first graphical object in the current camera view by at least a threshold level during traversal of the first graphical object along a direction of traversal; In response to determining that occlusion of the first graphical object by the second graphical object exceeds at least a threshold level, move the camera view forward toward the first graphical object to avoid occlusion by the second graphical object. 1 Changing the current camera view of a graphic object; and in response to determining that occlusion by the second graphical object is below the threshold level, maintaining the current camera view.

또 다른 양태에 따르면, 사용자 인터페이스; 및 사용자 인터페이스와 저장된 게임 애플리케이션을 갖는 메모리에 결합된 프로세서를 포함하고, 게임 애플리케이션은 프로세서에 의한 실행에 응답하여, 프로세서로 하여금, 사용자 인터페이스 상에서 전자 게임의 3차원(3D) 세계의 카메라 뷰를 표시하도록 하며, 여기에서 게임 애플리케이션은 프로세서로 하여금, 동작의 수행을 제어하거나 수행하도록 프로세서에 의해 더 실행 가능하다. 동작은: 3D 세계에서 렌더링된 제1 그래픽 객체의 횡단의 속도 및 방향을 결정하는 것; 횡단의 방향을 따라 위치된 제2 그래픽 객체를 식별하는 것; 횡단의 방향을 따르는 제1 그래픽 객체의 횡단 동안 제2 그래픽 객체가 적어도 임계 레벨만큼 현재 카메라 뷰에서 제1 그래픽 객체를 오클루딩하는지 여부를 결정하는 것; 제2 그래픽 객체에 의한 제1 그래픽 객체의 오클루전이 적어도 임계 레벨을 초과한다는 결정에 응답하여, 카메라 뷰를 제1 그래픽 객체를 향해 앞으로 이동함으로써 제2 그래픽 객체에 의한 오클루전을 피하도록 제1 그래픽 객체의 현재 카메라 뷰를 변경하는 것; 및 제2 그래픽 객체에 의한 오클루전이 임계 레벨 미만이라는 결정에 응답하여, 현재 카메라 뷰를 유지하는 것을 포함한다.According to another aspect, a user interface; and a processor coupled to the memory having a user interface and a stored game application, wherein the game application, in response to execution by the processor, causes the processor to display a camera view of the three-dimensional (3D) world of the electronic game on the user interface. , wherein the game application is further executable by the processor to cause the processor to control or perform the performance of the action. The operations include: determining a speed and direction of traversal of a rendered first graphical object in the 3D world; identifying a second graphical object located along the direction of traversal; determining whether the second graphical object occludes the first graphical object in the current camera view by at least a threshold level during traversal of the first graphical object along a direction of traversal; In response to determining that occlusion of the first graphical object by the second graphical object exceeds at least a threshold level, move the camera view forward toward the first graphical object to avoid occlusion by the second graphical object. 1 Changing the current camera view of a graphic object; and in response to determining that occlusion by the second graphical object is below the threshold level, maintaining the current camera view.

도 1a는 3D 세계를 통해 횡단하는 아바타의 예시적인 카메라 뷰이며, 여기에서 카메라 뷰는 앞으로 이동하지 않았다.
도 1b는 도 1a의 3D 세계를 통해 횡단하는 아바타의 평면도이다.
도 2a는 3D 세계를 통해 횡단하는 아바타의 다른 예시적인 카메라 뷰이며, 여기에서 카메라 뷰는 앞으로 이동한 다음 뒤로 이동했다.
도 2b는 도 2a의 3D 세계를 통해 횡단하는 아바타의 평면도이다.
도 3은 일부 구현에 따른, 전자 게임에서 카메라 뷰를 변경할지 여부를 결정하는 데 사용될 수 있는 예시적인 파라미터를 예시하는 도식이다.
도 4는 일부 구현에 따른, 도 1a, 1b, 2a 및 2b의 카메라 뷰를 제공할 수 있는 온라인 게임을 위한 예시적인 시스템 아키텍처의 도식이다.
도 5는 일부 구현에 따른, 전자 게임에서 카메라 뷰를 변경하기 위한 방법을 예시하는 흐름도이다.
도 6은 일부 구현에 따른, 예시적인 컴퓨팅 장치를 예시하는 블록도이다.
1A is an exemplary camera view of an avatar traversing through a 3D world, wherein the camera view has not moved forward.
1B is a top view of an avatar traversing through the 3D world of FIG. 1A ;
2A is another exemplary camera view of an avatar traversing through a 3D world, wherein the camera view has moved forward and then back.
FIG. 2B is a top view of an avatar traversing through the 3D world of FIG. 2A ;
3 is a schematic diagram illustrating example parameters that may be used to determine whether to change a camera view in an electronic game, in accordance with some implementations.
4 is a schematic diagram of an example system architecture for an online game that may provide the camera views of FIGS. 1A , 1B , 2A and 2B , in accordance with some implementations.
5 is a flow diagram illustrating a method for changing a camera view in an electronic game, in accordance with some implementations.
6 is a block diagram illustrating an example computing device, in accordance with some implementations.

다음의 상세한 설명에서, 그 일부를 형성하는 첨부 도면에 대한 참조가 이루어진다. 도면에서, 유사한 기호는 문맥에서 달리 지시하지 않는 한 전형적으로 유사한 컴포넌트를 식별한다. 상세한 설명, 도면 및 청구범위에 설명된 예시적인 실시예는 제한을 의미하지 않는다. 다른 실시예가 활용될 수 있고, 여기에서 제시된 대상의 정신 또는 범위를 벗어나지 않고 다른 변경이 이루어질 수 있다. 여기에서 일반적으로 설명되고 도면에 예시된 본 개시의 양태는 매우 다양한 상이한 구성으로 배열, 대체, 결합, 분리 및 설계될 수 있으며, 이들 모두는 여기에서 고려된다.In the following detailed description, reference is made to the accompanying drawings, which form a part thereof. In the drawings, like symbols typically identify similar components, unless the context dictates otherwise. The exemplary embodiments described in the detailed description, drawings and claims are not meant to be limiting. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the subject matter presented herein. Aspects of the disclosure generally described herein and illustrated in the drawings may be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are contemplated herein.

본 명세서에서 "일 실시예", "실시예", "예시적인 실시예" 등에 대한 참조는 설명된 실시예가 특정 특징, 구조 또는 특성을 포함할 수 있지만, 모든 실시예가 특정 기능, 구조 또는 특성을 반드시 포함하지 않을 수 있다. 또한, 그러한 문구는 반드시 동일한 실시예를 지칭하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성이 실시예와 관련하여 설명될 때, 그러한 특징, 구조 또는 특성은 명시적으로 설명되는지 여부와 관계없이 다른 실시예와 관련하여 영향을 받을 수 있다.References herein to “one embodiment”, “an embodiment”, “exemplary embodiment”, etc. may indicate that the described embodiment may include a particular feature, structure, or characteristic, but not all embodiments may incorporate the particular function, structure, or characteristic. may not necessarily be included. Also, such phrases are not necessarily referring to the same embodiment. Also, when a particular feature, structure, or characteristic is described in connection with an embodiment, that feature, structure, or characteristic may be affected in connection with another embodiment, whether or not explicitly described.

본 개시는 (카메라 뷰에서 아바타의 오클루전을 피하기 위해) 발생할 오클루전의 레벨에 따라 카메라 뷰를 아바타를 향해 앞으로 선택적으로 이동함으로써, 전자 게임에서 전술한 문제점을 해결한다. 카메라 뷰를 고정할지, 카메라 뷰를 앞으로 이동할지, 또는 카메라 뷰를 뒤로 이동할지는 아바타가 전자 게임의 3차원(3D) 세계에서 횡단하는 속도 및 방향, 오클루전이 하드 오클루전(hard occlusion)인지 여부, 오클루전이 소프트 오클루전(soft occlusion)인지 여부, 또는 다른 요인과 같은, 여러 요인에 의존할 수 있다.The present disclosure solves the aforementioned problem in electronic games by selectively moving the camera view forward towards the avatar according to the level of occlusion to occur (to avoid occlusion of the avatar in the camera view). Whether to freeze the camera view, move the camera view forward, or move the camera view backward, the speed and direction the avatar traverses in the three-dimensional (3D) world of an electronic game, whether the occlusion is hard occlusion It may depend on several factors, such as whether or not the occlusion is soft occlusion, or other factors.

예컨대, (벽 또는 기타 불투명한 그래픽 객체와 같은) 하드 오클루전은 벽이 카메라 뷰에서 제거되고 따라서 아바타의 카메라 뷰를 오클루딩하지 않도록, 카메라 뷰가 앞으로 이동되게 할 수 있다. (투명한 창 또는 아바타를 부분적으로만 오클루딩하는 다른 적어도 반투명한 구조/객체와 같은) 소프트 오클루전은 아바타가 소프트 오크루전 뒤에서 움직이는 것을 볼 수 있도록, 카메라 뷰를 고정 상태로 유지되게 할 수 있다 (예컨대, 카메라 뷰가 앞으로 이동하지 않음).For example, hard occlusion (such as a wall or other opaque graphical object) may cause the camera view to be moved forward such that the wall is removed from the camera view and thus does not occlude the avatar's camera view. Soft occlusion (such as a transparent window or other at least translucent structure/object that only partially occludes the avatar) allows the camera view to remain fixed, allowing the avatar to be seen moving behind the soft occlusion. (eg, the camera view does not move forward).

아바타가 3D 세계를 통해 횡단할 때, 아바타의 방향 및 속도는 카메라 뷰를 변경할지 여부를 결정하는 데 사용될 수 있다. 예컨대, 횡단의 방향 및 속도가 아바타를 하드 오클루전 뒤로 통과하게 하는 것으로 예컨대, 게임 애플리케이션에 의해 결정되면, 카메라 뷰는 (아바타의 오클루딩되지 않은 카메라 뷰를 제공하기 위해) 횡단의 방향에 수직인 방향으로 아바타를 향해 앞으로 이동된다. 다른 예시로서, 횡단의 방향 및 속도가 아바타를 소프트 오클루전 뒤로 통과하게 하는 것으로 예컨대, 게임 애플리케이션에 의해 결정되면, 게임 애플리케이션은 카메라 뷰가 고정 상태를 유지하도록 제어하여 (횡단의 방향에 수직인 방향으로 아바타를 향해 앞으로 이동하지 않음), 카메라 뷰는 아바타가 소프트 오클루전 뒤에서 횡단할 때 아바타가 부분적으로 오클루딩되는 것을 보여준다.As the avatar traverses through the 3D world, the direction and speed of the avatar can be used to determine whether to change the camera view. For example, if the direction and speed of traversal is determined by, eg, a game application, to cause the avatar to pass behind hard occlusion, the camera view will be in the direction of traversal (to provide an unassigned camera view of the avatar). It moves forward towards the avatar in a vertical direction. As another example, if the direction and speed of traversing are determined by, for example, the game application to cause the avatar to pass behind soft occlusion, the game application may control the camera view to remain stationary (perpendicular to the direction of traversing). direction, not moving forward towards the avatar), the camera view shows that the avatar is partially occluded when the avatar traverses behind soft occlusion.

아바타의 횡단의 속도 및/또는 잠재적 오클루전의 양은 또한 카메라 뷰를 변경할지 여부를 결정하기 위한 요인/임계값으로서 사용될 수 있다. 일 예시로서, 게임 애플리케이션은 아바타가 (벽과 같은) 하드 오클루전 뒤에서 빠르게 횡단할 것이라고 결정할 수 있다. 따라서, 벽이 100% 오클루전까지 아바타를 오클루딩할 수 있다고 하더라도, 아바타는 100% 오클루전이 짧은 시간 창 동안, 예컨대, 몇 초 미만 동안 발생할 수 있도록 충분한 속도로 이동할 수 있다. 그러한 경우, 예컨대 카메라를 고속으로 이동하는 것보다 게임의 부드러운 뷰를 렌더링하기 위해, 전체 오클루전의 지속 시간이 허용 가능한 것으로 결정될 수 있어서, 게임 애플리케이션이 오클루전을 피하기 위해 카메라 뷰를 앞으로 이동하지 않을 수 있다. 다른 예시에서, 아바타는 아바타를 부분적으로만 오클루딩(예컨대, 10% 오클루전)하는 소프트 오클루전(예컨대, 좁은 폴) 뒤에서 일시 정지/중지할 수 있다 - 이러한 경우, 부분 오클루전의 지속 시간은 몇 초 이상 발생하므로, 게임 애플리케이션은 카메라 뷰를 앞으로 이동하여 아바타의 전체(오클루딩되지 않은) 뷰를 제공할 수 있다.The speed of the avatar's traversal and/or the amount of potential occlusion may also be used as factors/thresholds for determining whether to change the camera view. As an example, the gaming application may determine that the avatar will quickly traverse behind a hard occlusion (such as a wall). Thus, even if a wall can occlude the avatar up to 100% occlusion, the avatar can move at sufficient speed so that 100% occlusion can occur for a short window of time, eg, less than a few seconds. In such cases, the duration of full occlusion may be determined to be acceptable, such as to render a smoother view of the game rather than moving the camera at high speed, so that the gaming application does not move the camera view forward to avoid occlusion. it may not be In another example, the avatar may pause/pause behind a soft occlusion (eg, narrow pole) that only partially occludes the avatar (eg, 10% occlusion) - in this case, the Since durations occur over several seconds, the gaming application can move the camera view forward to provide a full (non-occluded) view of the avatar.

상기 및 다른 양태의 세부사항은 도 1a, 1b, 2a 및 2b를 참조하여 더 이해될 수 있다. 먼저, 도 1a는 전자 게임에서 3D 세계를 통해 횡단하는 아바타(102)의 예시적인 카메라 뷰(100)이다. 카메라 뷰(100)는 예컨대, 3D 세계 내에서 아바타(102)의 이동을 (예컨대, 팬(pan)을) 따르기 위해 클라이언트 장치의 사용자 인터페이스에서 렌더링되는 측면 뷰일 수 있다. 여기에서 도시되고 설명된 카메라 뷰는 카메라 뷰를 생성하고 상이한 뷰를 생성하기 위해 3D 세계의 어느 곳에나 위치될 수 있는 "가상 카메라"에 의해 제공될 수 있다. 가상 카메라의 위치 또한 업데이트/변경될 수 있다.The details of these and other aspects may be further understood with reference to FIGS. 1A, 1B, 2A and 2B. First, FIG. 1A is an exemplary camera view 100 of an avatar 102 traversing through a 3D world in an electronic game. The camera view 100 may be, for example, a side view rendered in a user interface of the client device to follow (eg, pan) the movement of the avatar 102 within the 3D world. The camera views shown and described herein may be provided by a “virtual camera” that may be positioned anywhere in the 3D world to create a camera view and to generate different views. The position of the virtual camera may also be updated/changed.

일부 구현에서, 아바타(102)는 전자 게임을 플레이하기 위해 클라이언트 장치를 동작하고 있는 플레이어/사용자를 나타내는 그래픽 객체일 수 있다. 전자 게임을 플레이하는 동안, 아바타(102)는 하나 이상의 화살표(104)에 의해 표현된 바와 같이, 3D 세계에서 왼쪽에서 오른쪽으로 횡단(예컨대, 걷기 또는 달리기)하고 있다. 아바타(102)가 카메라 뷰(100)에서 왼쪽에서 오른쪽으로 횡단함에 따라, 아바타(102)의 복수의 점선 표현에 의해 아바타(102)의 후속 위치가 도 1a에 (또한 다른 도면에) 도시된다.In some implementations, the avatar 102 may be a graphical object representing a player/user operating a client device to play an electronic game. While playing the electronic game, the avatar 102 is traversing (eg, walking or running) from left to right in the 3D world, as represented by one or more arrows 104 . As the avatar 102 traverses from left to right in the camera view 100 , the subsequent location of the avatar 102 is shown in FIG.

카메라 뷰(100)는 아바타(102)가 초기에 왼쪽에서 오른쪽 방향으로 실질적으로 평평한 경로(flat path)(106)를 따라 횡단하는 것을 도시한다. 평평한 경로(106)는 3D 세계에서 평면 영역(x-y 좌표로 표현될 수 있음)에 놓일 수 있다. 아바타(102)가 왼쪽에서 오른쪽으로 계속 횡단함에 따라, 아바타(102)는 또한 3D 세계에서 경사(108)(x-y-z 좌표로 표현될 수 있음)를 오르기 위해 고도를 변경할 수 있다.Camera view 100 shows avatar 102 initially traversing along a substantially flat path 106 in a left-to-right direction. A flat path 106 may lie in a planar region (which may be expressed in x-y coordinates) in the 3D world. As the avatar 102 continues to traverse from left to right, the avatar 102 may also change elevation to climb a slope 108 (which may be expressed in x-y-z coordinates) in the 3D world.

복수의 그래픽 객체는 아바타(102)에 추가하여 3D 세계에서 렌더링될 수 있다. 예컨대, 그래픽 객체는 경로(106) 및 경사(108)를 따라 존재하는 나무(110, 112 및 114)일 수 있다. 나무(110, 112 및 114)는 각각의 나무 줄기(116, 118 및 120)를 가질 수 있다. 다른 그래픽 객체는 경사(108)의 상단에 있는 (건물의 벽과 같은) 벽(122)일 수 있다.A plurality of graphic objects may be rendered in the 3D world in addition to the avatar 102 . For example, the graphical object may be trees 110 , 112 and 114 along path 106 and slope 108 . Trees 110 , 112 and 114 may have tree trunks 116 , 118 and 120 respectively. Another graphical object may be a wall 122 (such as a wall of a building) on top of the slope 108 .

나무(110, 112 및 114)는 각각의 나무 줄기(116, 118 및 120)를 가질 수 있으며, 이는 아바타가 나무 줄기(116, 118 및 120) 각각 뒤에서 통과할 때, 나무 줄기(116, 118 및 120)가 아바타(102)를 완전히 오클루딩하지 않도록 상대적으로 얇은 프로파일(profile)을 갖는다. 나무 줄기(116, 118 및 120) 각각은 따라서 아바타(102)의 적어도 일부가 보일 수 있게 하는 "소프트" 오클루전으로서 생각될 수 있다. 따라서, 예컨대, 도 1a에서, 아바타(102)의 신체의 부분(머리, 팔다리 또는 몸통의 부분과 같은)은 카메라 뷰(100)에서 계속 볼 수 있는 반면, 아바타(102)의 신체의 다른 부분은 나무 줄기(116, 118 및 120)에 의해 오클루딩된다. 아래의 도 3과 관련하여 더 상세하게 설명되는 바와 같이, 오클루전의 양 및/또는 지속 시간은 카메라 뷰(100)를 정지 상태로 유지할지 여부(예컨대, 도 1a에 도시된 바와 같이, 여기에서 나무 줄기(116, 118 및 120)는 카메라 뷰(100)에서 아바타(102)의 어떤 부분을 오클루딩함) 또는 아바타(102)가 나무 줄기(116, 118 및 120) 뒤를 횡단할 때 아바타(102)의 오클루딩되지 않은 뷰를 도시하기 위하여, 카메라 뷰(100)를 아바타(102)와 나무 줄기(116, 118 및 120) 사이의 위치로 앞으로 이동할지 여부를 결정하는 데 사용될 수 있다.Trees 110 , 112 and 114 may have respective tree trunks 116 , 118 and 120 , which as the avatar passes behind tree trunks 116 , 118 and 120 respectively, the tree trunks 116 , 118 and 120 has a relatively thin profile such that it does not completely occlude the avatar 102 . Each of the tree trunks 116 , 118 , and 120 can thus be thought of as a “soft” occlusion that allows at least a portion of the avatar 102 to be visible. Thus, for example, in FIG. 1A , parts of the body of the avatar 102 (such as parts of the head, limbs, or torso) are still visible in the camera view 100 , while other parts of the body of the avatar 102 are It is occluded by tree trunks 116 , 118 and 120 . As will be described in more detail with respect to FIG. 3 below, the amount and/or duration of occlusion determines whether or not the camera view 100 remains stationary (eg, as shown in FIG. 1A , where Tree trunks 116 , 118 and 120 occlude any portion of avatar 102 in camera view 100 ) or avatar 102 as avatar 102 traverses behind tree trunks 116 , 118 and 120 . ) may be used to determine whether to move the camera view 100 forward to a position between the avatar 102 and the tree trunks 116 , 118 and 120 , to show an unoccluded view of .

도 1b는 도 1a의 3D 세계를 통해 횡단하는 아바타(102)의 평면도이다. 일 실시예에서, 도 1b의 평면도는 사용자가 전자 게임을 플레이하는 동안 오버헤드 평면 뷰 또는 조감도를 선택한 경우와 같이, 전자 게임에서 렌더링되는 카메라 뷰(150)일 수 있다. 도 1의 카메라 뷰(100)에 도시된 그래픽 객체의 위치에 대응하여, 도 1b의 카메라 뷰(150)는 도 1b는 아바타(102) 및 파선의 그 후속 위치, 아바타(102)의 횡단의 방향을 도시하는 화살표(104), 나무(110, 112 및 114) 및 벽(122)을 도시한다.1B is a top view of the avatar 102 traversing through the 3D world of FIG. 1A . In one embodiment, the top view of FIG. 1B may be a camera view 150 rendered in the electronic game, such as when the user selects an overhead plan view or aerial view while playing the electronic game. Corresponding to the position of the graphical object shown in the camera view 100 of FIG. 1 , the camera view 150 of FIG. arrow 104 , trees 110 , 112 and 114 , and wall 122 .

도 1b는 나무(110)가 아바타(102)가 통과하는 뻗어나온 가지(124)를 갖는 것을 도시한다. 도 1의 카메라 뷰(100)와 유사하게, 도 1b의 카메라 뷰(150)는 아바타(102)가 가지(124) 아래를 횡단할 때 가지(124)는 아바타(102)의 어떤 부분를 오클루딩하는 소프트 오클루전으로 처리되는 반면 아바타(102)의 다른 부분은 가지(124) 아래에 보이는 상태로 남아 있도록 고정 상태로 남아 있다. (오클루전의 더 긴 지속 시간 동안 및/또는) 아바타(102)의 더 많은 부분을 오클루딩할 가지(124)보다 더 큰 프로파일(더 두꺼운 가지, 구름, 고가 고속도로 등)을 갖는 그래픽 객체가 있는 경우, 카메라 뷰(150)는 아바타(102)가 카메라 뷰에서 오클루딩되지 않도록 그러한 그래픽 객체와 아바타(102) "사이에서" 카메라 뷰를 이동하도록 변경될 수 있다.1B shows the tree 110 having protruding branches 124 through which the avatar 102 passes. Similar to camera view 100 of FIG. 1 , camera view 150 of FIG. 1B shows that branch 124 occludes any portion of avatar 102 as avatar 102 traverses under branch 124 . is treated with soft occlusion while other parts of the avatar 102 remain stationary such that they remain visible under the branches 124 . Graphic objects with a larger profile (thicker branches, clouds, overpasses, etc.) than branches 124 that will occlude a larger portion of the avatar 102 (and/or for a longer duration of occlusion) If present, the camera view 150 may be altered to move the camera view “between” the avatar 102 and a graphical object such that the avatar 102 is not occluded in the camera view.

도 1a 및 도 1b에 도시된 바와 같이, 아바타(102)는 벽(122)에 접근하고 있다. 아바타(102)가 벽(122) 뒤를 횡단하는 동안 카메라 뷰(100)가 변경되지 않은 채로 남아 있으면, 아바타(102)는 벽(122)에 의해 완전히 오클루딩될 것이다. 벽(122)은 이에 따라 아바타(102)를 완전히 오클루딩하는 하드 오클루전인 것으로 간주될 수 있다. 따라서, 일 실시예는 아바타(102)가 벽(122) 뒤에 위치되는 동안, 벽(122)이 아바타(102)를 오클루딩하지 않도록 카메라 뷰를 변경한다. 도 2a 및 2b는 이 양태를 더 상세히 예시한다.1A and 1B , the avatar 102 is approaching the wall 122 . If the camera view 100 remains unchanged while the avatar 102 traverses behind the wall 122 , the avatar 102 will be fully occluded by the wall 122 . The wall 122 can thus be considered to be a hard occlusion that completely occludes the avatar 102 . Accordingly, one embodiment changes the camera view so that the wall 122 does not occlude the avatar 102 while the avatar 102 is positioned behind the wall 122 . 2A and 2B illustrate this aspect in more detail.

구체적으로, 도 2a는 벽(122) 뒤를 횡단하는 아바타(102)의 카메라 뷰(200)이고(다시 아바타(102)의 파선 표현 및 화살표(104)에 의해 도시됨), 여기에서 카메라 뷰(200)는 도 1a의 카메라 뷰(100)에 대해 앞으로 이동했다. 따라서, 도 2a에서, 카메라 뷰(200)를 렌더링하는 카메라는 벽(122)과 아바타(102) 사이의 위치로 (아바타(102)를 향해 그리고 화살표(104)에 수직인 방향으로) 앞으로 이동된다 (예컨대, 아바타(102)에 더 가까이 이동함). 이러한 방식으로, 벽(122)은 카메라 뷰(200)에서 사라지고(예컨대, 제거됨), 이에 따라 더 이상 아바타(102)를 오클루딩하지 않는다. 도 2a에 도시된 바와 같이, 아바타(102)는 또한 카메라 뷰(200)가 아바타(102)에 더 가깝게 줌인되었음을 나타내는 확대된 크기에서 렌더링되는 것으로 도시된다.Specifically, FIG. 2A is a camera view 200 of the avatar 102 traversing behind a wall 122 (again shown by the dashed line representation of the avatar 102 and arrow 104 ), wherein the camera view 200 ) moved forward with respect to the camera view 100 of FIG. 1A . Thus, in FIG. 2A , the camera rendering the camera view 200 is moved forward (toward the avatar 102 and in a direction perpendicular to the arrow 104 ) to a position between the wall 122 and the avatar 102 . (eg, moving closer to the avatar 102 ). In this way, the wall 122 disappears (eg, removed) from the camera view 200 and thus no longer occludes the avatar 102 . As shown in FIG. 2A , the avatar 102 is also shown rendered at an enlarged size indicating that the camera view 200 has been zoomed in closer to the avatar 102 .

도 2b의 평면도에서 아바타(102)의 대응하는 위치(들)에 도시된 바와 같이, 벽(122) 자체가 계속 존재하고, 아바타(102)는 여전히 벽(122) 뒤를 횡단하고 있다. 전술한 바와 같이, 도 1a에 도시된 것과 비교하여, 카메라 뷰(200)는 이제 벽(122)을 통과하여 앞으로 이동함으로써 벽(122)을 배제하고, 이에 의해 벽(122)이 카메라 뷰(200)에서 아바타(102)를 오클루딩하는 것을 방지한다.As shown in the plan view of FIG. 2B at the corresponding location(s) of the avatar 102 , the wall 122 itself continues to exist and the avatar 102 still traverses behind the wall 122 . As mentioned above, compared to that shown in FIG. 1A , the camera view 200 now excludes the wall 122 by moving forward through the wall 122 , whereby the wall 122 becomes the camera view 200 . ) to prevent occlusion of the avatar 102 .

도 2a 및 도 2b의 예시에서, 아바타(102)는 계속해서 벽(122) 뒤를 횡단하고 창틀(206)에 장착된 창(202 및 204)을 포함하는 벽(122)의 일부에 도달한다. 창(202 및 204)과 창틀(206)은 아바타(102)가 창(202 및 204)과 창틀(206) 뒤를 횡단할 때, 아바타(102)의 부분이 보이도록 허용하는 소프트 오클루전으로 간주될 수 있다. 예컨대, 창(202 및 204)은 투명하거나 반투명할 수 있으며, 창틀(206)은 아바타(102)의 프로파일에 비해 더 좁은 프로파일을 가질 수 있다.In the example of FIGS. 2A and 2B , the avatar 102 continues traversing behind the wall 122 and reaches a portion of the wall 122 including windows 202 and 204 mounted to a sash 206 . Windows 202 and 204 and sash 206 are considered soft occlusion allowing portions of avatar 102 to be visible when avatar 102 traverses behind windows 202 and 204 and sash 206 can be For example, windows 202 and 204 may be transparent or translucent, and window sill 206 may have a narrower profile compared to that of avatar 102 .

도 2a는 카메라 뷰(200)에 대해 뒤로(아바타(102)로부터 멀어지고 횡단의 방향에 수직인 방향으로) 이동한 카메라 뷰(250)를 생성하는 카메라를 더 도시한다. 즉, 카메라 뷰(250)를 생성하는 카메라는 창(202 및 204)과 창틀(206)의 앞에 있기 위하여, 이제 그 원래 위치로 다시 이동했다. 아바타(102)는 이제 카메라 뷰(200)의 확대된 크기에 비해 크기가 더 작아지고 (원래 크기로 돌아옴), 아바타(102)가 창(202 및 204)과 창틀(206) 뒤를 횡단할 때 아바타(102)는 부분적으로 보이거나 부분적으로 오클루딩된다.FIG. 2A further shows a camera generating a camera view 250 that has been moved back (away from the avatar 102 and perpendicular to the direction of traversal) with respect to the camera view 200 . That is, the camera generating the camera view 250 has now moved back to its original position in order to be in front of the windows 202 and 204 and the window frame 206 . The avatar 102 is now smaller in size (returns to its original size) compared to the enlarged size of the camera view 200 , and when the avatar 102 traverses behind the windows 202 and 204 and the sash 206 , the avatar 102 . 102 is partially visible or partially occluded.

도 3은 일부 구현에 따른, 전자 게임에서 카메라 뷰를 변경할지 여부를 결정하는 데 사용될 수 있는 예시적인 파라미터를 예시하는 도식이다. 도 3에 도시된 다양한 그래픽 요소 및 다른 정보는 이해를 더 돕고 일관성을 위해, 도 1a, 1b, 2a 및 2b와 유사하게 라벨링된다.3 is a schematic diagram illustrating example parameters that may be used to determine whether to change a camera view in an electronic game, in accordance with some implementations. The various graphical elements and other information shown in FIG. 3 are labeled similarly to FIGS. 1A, 1B, 2A and 2B for better understanding and consistency.

도 1b 및 2b와 유사하게, 도 3은 3D 세계의 평면도를 나타낸다. 3D 세계 및 그 안에 포함된 그래픽 요소는 일 예시로서 x-y-z 좌표계(300)에 따라 레이아웃될 수 있지만, 그래픽 요소의 위치 및 상대 위치를 식별하기 위한 다른 유형의 좌표계 및 기법이 상이한 실시예에서 사용될 수 있다. 도 3에서, x-y 좌표축은 도면 시트의 평면에 놓여 있는 반면, z-좌표는 도면 시트의 평면에 수직인 축에 놓여 있다. 설명의 단순함을 위해, 아바타(102)는 화살표(104) 방향으로 x-축만을 따라 횡단하는 것으로 이하에서 도시되고 설명되며, x-축을 벗어나 y-좌표 및 z-좌표를 따라 횡단하지 않는다. 3D 세계 내에서 아바타(102)의 이러한 단일 차원 횡단은 단지 예시이고, 플레이어/사용자는 좌표계(300)에서 임의의 방향으로 아바타(102)를 탐색할 수 있음을 이해해야 한다 - x-축을 따른 아바타(102)의 단일 차원 이동에 관한 이하의 설명은 y-축 및 z-축을 따른 아바타(102)의 다른 이동에 적용될 수 있다.Similar to Figures 1b and 2b, Figure 3 shows a top view of the 3D world. The 3D world and the graphic elements contained therein may be laid out according to the x-y-z coordinate system 300 as an example, although other types of coordinate systems and techniques for identifying the position and relative positions of graphic elements may be used in different embodiments. . In Fig. 3, the x-y coordinate axis lies in the plane of the drawing sheet, whereas the z-coordinate lies in an axis perpendicular to the plane of the drawing sheet. For simplicity of explanation, the avatar 102 is shown and described below as traversing only along the x-axis in the direction of arrow 104 , and not traversing along the y- and z-coordinates off the x-axis. It should be understood that this single-dimensional traversal of the avatar 102 within the 3D world is exemplary only, and that the player/user may navigate the avatar 102 in any direction in the coordinate system 300 - the avatar 102 along the x-axis. The following discussion of single-dimensional movement of 102 may apply to other movements of avatar 102 along the y-axis and z-axis.

아바타(102)는 디스플레이 스크린 또는 다른 측정 단위(들)에 걸쳐 초당 픽셀에 관하여 측정될 수 있는 특정 속도(v)에서 x-축을 따라 횡단하고 있다. 임의의 주어진 경우에서, 아바타(102)의 위치는 좌표계(300)의 점 A, A1, A2, A3, A4 등에서 식별될 수 있다. 점 A, A1, A2, A3, A4 등은 아바타(102), 아바타의 에지(손가락 끝과 같은), 또는 좌표계(300)에서 아바타(102)의 즉각적인 위치를 식별하기에 충분한 아바타(102) 신체의 그래픽 표현 상의 다른 위치를 통과하는 중심 축에 대응할 수 있다. 3D 세계에서 다른 그래픽 요소의 위치는 또한 좌표계(300)에서 하나 이상의 점 B-H로 표현될 수 있다. 예컨대, 나무(114)의 나무 줄기(120)의 위치는 나무 줄기(120)의 중심 z-축을 따라 점 C에서 정의될 수 있다. 대안적으로 또는 추가적으로, 나무 줄기(120)의 에지 경계는 점 B 및 D에서 식별될 수 있다. 여전히 대안적으로 또는 추가적으로, 나무 줄기(120)의 z-축을 따른 점 C는 나무 줄기(120)의 위치를 식별하는 데 사용될 수 있고, 다른 구성 정보는 (나무 줄기(120)의 z-축을 따라 점 C 및 다른 점으로부터 측정된, 픽셀에 관한 반경과 같은) 나무 줄기(120)의 일정하거나 변하는 에지를 지정하는 데 사용될 수 있다.The avatar 102 is traversing along the x-axis at a particular velocity v, which can be measured in terms of pixels per second across a display screen or other unit of measure(s). In any given case, the location of the avatar 102 may be identified at points A, A1, A2, A3, A4, etc. of the coordinate system 300 . Points A, A1, A2, A3, A4, etc. are sufficient to identify the avatar 102 , an edge of the avatar (such as a fingertip), or an immediate location of the avatar 102 in the coordinate system 300 , the body of the avatar 102 . may correspond to a central axis passing through different locations on the graphical representation of The positions of other graphic elements in the 3D world may also be represented by one or more points B-H in the coordinate system 300 . For example, the location of the tree trunk 120 of the tree 114 may be defined at point C along the central z-axis of the tree trunk 120 . Alternatively or additionally, an edge boundary of the tree trunk 120 may be identified at points B and D. Still alternatively or additionally, a point C along the z-axis of the tree trunk 120 may be used to identify a location of the tree trunk 120 , and other configuration information (along the z-axis of the tree trunk 120 ) may be used to specify a constant or varying edge of the tree trunk 120 (such as a radius in terms of a pixel, measured from point C and another point).

유사한 방식으로, 벽(122)의 에지는 점 E 및 F에 위치될 수 있고, 창(202)의 에지는 점 F 및 G에 위치될 수 있으며, 창틀(206)의 에지는 점 G 및 H에 위치될 수 있다. 점 A-H에 대응하는 특정 좌표 및 기타 크기/위치 정보는 3D 세계에서 그래픽 요소 각각에 대한 속성/구성 정보로 저장될 수 있다.In a similar manner, the edge of the wall 122 may be located at points E and F, the edge of the window 202 may be located at points F and G, and the edge of the window frame 206 may be located at points G and H can be located. Specific coordinates and other size/position information corresponding to points A-H may be stored as attribute/configuration information for each graphic element in the 3D world.

도 1a 및 2a의 카메라 뷰(100, 200 및 250)는 또한 도 3에 파선으로 표현된다. 카메라 뷰(100)에 대하여 먼저 시작하여, 아바타(102)는 점 A에서 점 A1을 향해 그리고 이후 점 A2를 향해 횡단하는 것으로 결정된다. 점 B 또는 C에 대응하는 x-좌표 앞(예컨대, 왼쪽)의 영역에서, 게임 애플리케이션은 아바타(102)를 오클루딩하는 그래픽 객체가 없다고 결정하고, 따라서 카메라 뷰(100)는 변경되지 않은 채로 있다.Camera views 100 , 200 and 250 of FIGS. 1A and 2A are also represented by dashed lines in FIG. 3 . Starting first with respect to the camera view 100 , the avatar 102 is determined to traverse from point A to point A1 and then to point A2 . In the region in front (eg, to the left) of the x-coordinate corresponding to point B or C, the game application determines that there is no graphic object occluded the avatar 102 , so that the camera view 100 remains unchanged. there is.

아바타(102)가 점 B 또는 C에 대응하는 x-좌표에 접근함에 따라, 예컨대, 게임 애플리케이션(또는 게임 엔진)에 의해, 그래픽 객체(예컨대, 나무(114))는 아바타(102)의 횡단의 경로에 근접하게 놓여 있고, 아바타(102)를 오클루딩할 것으로 결정된다. 그러나, 게임 애플리케이션은 또한 아바타(102)가 점 A1(오클루전의 최대량이 있을 수 있는 점 C의 x-좌표에 대응함)에 도달했을 때, 아바타(102)가 완전히 오클루딩되지 않을 것이고, 그리고/또는 오직 일시적으로만 오클루딩될 것으로 결정한다. 예컨대, 오클루전의 최대량은 아바타(102)의 프로파일의 50% 미만이거나, 일부 다른 임계 레벨보다 작을 수 있다. 예컨대, 나무 줄기(120)의 직경의 점 B와 D 사이의 길이는 아바타(102)의 가시적 프로파일의 길이보다 상당히 짧을 수 있고, 따라서 오클루전의 최대량은 아바타(102)의 가시적 프로파일의 50% 미만일 수 있다. 50% 임계량은 예시이며, 전자 게임에 대한 다른 임계량 또는 범위로 구성될 수 있다. 다른 임계값 또는 그 조합이 사용될 수 있다. 예컨대, 카메라 뷰를 변경할지 여부를 결정하기 위한 임계값은 지속 시간(예컨대, 0.5초 이하의 오클루전), 또는 시간과 오클루전의 양의 조합(예컨대, 60% 이상의 오클루전, 0.5초 이상 등)에 기초할 수 있다. 이 예시에서, 게임 애플리케이션은 오클루전의 양이 카메라 뷰의 변경에 대한 임계값을 충족하지 않기 때문에. 카메라 뷰(100)를 변경하지 않은 상태로 유지한다 (예컨대, 카메라 뷰를 앞으로 이동하지 않음).As the avatar 102 approaches the x-coordinate corresponding to point B or C, eg, by a game application (or game engine), a graphical object (eg, tree 114 ) becomes the traversal of avatar 102 . It is determined to lie proximate to the path and to occlude the avatar 102 . However, the game application also indicates that when the avatar 102 reaches point A1 (corresponding to the x-coordinate of point C where there may be the maximum amount of occlusion), the avatar 102 will not be fully occluded, and /or decide to be occluded only temporarily. For example, the maximum amount of occlusion may be less than 50% of the profile of the avatar 102 , or less than some other threshold level. For example, the length between points B and D of the diameter of the tree trunk 120 may be significantly shorter than the length of the visible profile of the avatar 102 , so that the maximum amount of occlusion is less than 50% of the visible profile of the avatar 102 . can The 50% threshold is exemplary and may be configured with other threshold amounts or ranges for electronic games. Other thresholds or combinations thereof may be used. For example, a threshold for determining whether to change the camera view may be a duration (eg, occlusion less than or equal to 0.5 seconds), or a combination of time and amount of occlusion (eg, greater than 60% occlusion, 0.5 seconds). above, etc.). In this example, the gaming application does not meet the threshold for the amount of occlusion to change the camera view. Keep the camera view 100 unchanged (eg, do not move the camera view forward).

일부 실시예에서, 오클루전의 지속 시간은 카메라 뷰를 변경할지 여부를 결정하기 위한 추가적 또는 대안적 파라미터로서 사용될 수 있다. 예컨대, 일부 구현에서 나무 줄기(120)는 아바타(102)의 프로파일의 50% 이상, 아마도 심지어 100% 오클루전까지 오클루딩하도록 충분히 넓을 수 있다. 그러나, 아바타(102)의 속도(v)가 충분히 높아서 오클루전의 지속 시간이 1초 미만이거나 전자 게임에 대해 설정될 수 있는 다른 임계 수준이면, 게임 애플리케이션은 카메라 뷰(100)를 변경하지 않을 수 있다 (예컨대, 카메라 뷰(100)는 정지 상태로 유지되고, 앞으로 이동되지 않음). 그 이유는 앞뒤 방향에서 카메라의 빠른 이동에 비교하여, 오클루전의 지속 시간이 시간적으로 충분히 짧기 때문이고, 이는 일시적인 오클루전보다 사용자 인터페이스로서 덜 즐거운 높은 수준의 움직임을 갖는 카메라 뷰를 제공할 수 있다.In some embodiments, the duration of occlusion may be used as an additional or alternative parameter to determine whether to change the camera view. For example, in some implementations tree trunk 120 may be wide enough to occlude more than 50% of the profile of avatar 102 , perhaps even 100% occlusion. However, if the speed v of the avatar 102 is high enough so that the duration of occlusion is less than 1 second or some other threshold level that may be set for the electronic game, the gaming application may not change the camera view 100 . (eg, camera view 100 remains stationary and is not moved forward). The reason is that the duration of occlusion is short enough in time compared to the fast movement of the camera in the forward and backward directions, which can provide a camera view with a high level of motion that is less enjoyable as a user interface than temporary occlusion. .

다른 예시에서, 나무 줄기(120)(또는 다른 그래픽 객체)에 의해 야기된 오클루전의 양은 아바타가 부분적으로 오클루딩되는 동안 사용자가 아바타(102)의 속도(v)를 일시 중지하거나 감속하기로 결정한 것을 제외하고는 50% 이하일 수 있다. 따라서, 오클루전의 지속 시간은 1초 또는 전자 게임에서 설정되는 다른 임계 시간 양을 초과할 수 있다. 그러한 상황에서, 게임 애플리케이션은 카메라 뷰를 아바타(102)를 향해 앞으로 이동하기 위하여 카메라 뷰를 변경할 수 있고, 이에 의해 아바타(102)가 일시 정지되거나 느리게 움직이는 동안 아바타(102)의 오클루딩되지 않은 뷰를 제공한다.In another example, the amount of occlusion caused by the tree trunk 120 (or other graphical object) is determined by the user choosing to pause or slow down the speed v of the avatar 102 while the avatar is partially occluded. Except as determined, it may be less than or equal to 50%. Thus, the duration of occlusion may exceed one second or other threshold amount of time set in electronic games. In such a situation, the game application may change the camera view to move the camera view forward towards the avatar 102 , whereby the avatar 102 is not occluded while the avatar 102 is paused or moved slowly. provides a view.

도 3으로 계속하면, 아바타(102)는 계속해서 횡단하고, 점 A2에 도달했다. 점 A2는 점 E의 x-좌표 바로 앞에, 정확히 점 E의 x-좌표에, 또는 점 E의 x-좌표를 바로 통과해 있을 수 있다. 이러한 상황에서, 게임 애플리케이션은 속도(v)와 아바타(102)의 횡단 방향이 아바타(102)를 벽(122) 뒤에 배치하는 것으로 결정한다. 게임 애플리케이션은 또한 벽(122)이 점 E와 F 사이에서 아바타(102)를 완전히 오클루딩하는 하드 오클루전을 제공한다는 것을 구성 정보로부터 알고 있다. 이와 같이, 게임 애플리케이션은 카메라 뷰가 카메라 뷰(100)에서 카메라 뷰(200)로 변경되도록 카메라의 위치를 변경하여, 아바타(102)가 점 E 및 F에 대응하는 x 좌표 사이를 횡단하는 동안 (예컨대, 아바타(102)가 점 A3에 있는 동안), 벽(122)과 아바타(102) 사이의 카메라 뷰를 이동한다.Continuing with FIG. 3 , the avatar 102 continues traversing, reaching point A2 . Point A2 may be immediately before the x-coordinate of point E, exactly at the x-coordinate of point E, or directly through the x-coordinate of point E. In this situation, the gaming application determines that the speed v and the transverse direction of the avatar 102 place the avatar 102 behind the wall 122 . The game application also knows from the configuration information that the wall 122 provides a hard occlusion that completely occludes the avatar 102 between points E and F. As such, the game application changes the position of the camera so that the camera view changes from camera view 100 to camera view 200, while avatar 102 traverses between the x coordinates corresponding to points E and F ( For example, while the avatar 102 is at point A3 ), it moves the camera view between the wall 122 and the avatar 102 .

후속적으로, 아바타(102)가 점 F의 x 좌표에 접근하거나, 정확히 점 F의 x 좌표에 있거나, 점 F의 x 좌표를 바로 통과할 때, 게임 애플리케이션은 횡단의 속도 및 방향이 아바타(102)가 소프트 오클루전인 창(202) 및 창틀(206) 뒤로 통과하게 하도록 결정할 것이다. 따라서, 게임 애플리케이션은 카메라 뷰(200)에서 카메라 뷰(250)로 변경하도록 카메라 위치를 변경할 수 있고, 이에 의해 카메라 뷰를 그 원래 위치로 뒤로 이동할 수 있다. 아바타(102)는 이에 다라 점 F와 G 사이의 창(202) 뒤에서 완전히 보일 수 있고, 점 G와 H 사이에서 부분적으로 오클루딩된다. 카메라 뷰(100, 150, 250 등)를 제공하기 위한 카메라의 앞뒤 이동은 전환하는 동안 오클루딩하는 그래픽 객체의 렌더링을 피하는 "저키 줌(jerky zoom)"일 수 있거나, 오클루딩하는 그래픽 객체를 통해 미끄러지는 카메라 뷰를 갖는 상대적으로 부드러운 전환(relatively smooth transition)일 수 있다. 전환의 유형은 개발자 및/또는 플레이어 구성 설정에 기초하여, 구현마다 다를 수 있다.Subsequently, when the avatar 102 approaches the x-coordinate of point F, is exactly at the x-coordinate of point F, or passes directly through the x-coordinate of point F, the game application determines that the speed and direction of traversal is ) will pass behind the window 202 and window sill 206 , which are soft occlusion. Accordingly, the game application may change the camera position to change from camera view 200 to camera view 250 , thereby moving the camera view back to its original position. The avatar 102 is thus fully visible behind the window 202 between points F and G, and is partially occluded between points G and H. Moving the camera back and forth to provide a camera view (100, 150, 250, etc.) can be a "jerky zoom" that avoids rendering of the occluded graphic object during the transition, or the occluded graphic object. It can be a relatively smooth transition with the camera view sliding through. The type of transition may vary from implementation to implementation, based on developer and/or player configuration settings.

따라서 카메라 뷰(250)는 아바타(102)가 지점 G와 지점 H 사이의 창틀(206)에 의해 야기된 소프트 오클루전 뒤에서 일시 정지하는지 또는 감속하는지 여부에 따라 카메라 뷰(250)를 변경할 수 있는 것을 포함하여, 전술한 카메라 뷰(100)와 유사할 수 있다.Thus, camera view 250 can change camera view 250 depending on whether avatar 102 pauses or decelerates behind soft occlusion caused by window frame 206 between point G and point H. may be similar to the camera view 100 described above.

도 1a, 1b, 2a, 2b 및 3은 x-방향으로의 움직임을 예시하지만, 아바타는 사용자 입력에 기초하여, 임의의 방향, 예컨대, x-y 방향, y-z 방향 또는 x-y-z 방향으로 이동할 수 있음을 이해할 것이다. 예컨대, 측면 움직임(예컨대, 키보드에서 단일 화살표 키를 누르는 것, 단일 방향으로의 제스처 입력 등으로 나타냄)은 단일 방향을 따르는 움직임을 포함할 수 있다. 다른 예시에서, 조합 움직임(예컨대, 두 개의 수직 화살표 키, 예컨대 왼쪽(Left) 및 위쪽(Up)을 동시에 누르는 것, "도약(leap)" 제스처 등으로 나타냄)은 둘 이상의 방향에서의 움직임을 포함할 수 있다. 다른 구현에서, 카메라 뷰를 생성하는 카메라는 움직임의 기본 방향에 일반적으로 수직인 방향으로 위치될 수 있다 (예컨대, 아바타가 사용자 인터페이스에서 왼쪽에서 오른쪽으로 이동할 때, 카메라는 아바타를 디스플레이하는 스크린에 수직인 방향으로 위치될 수 있음). 상이한 구현에서, 3D 세계 내에서 아바타의 움직임은 게임의 개발자에 의해 지정된 규칙에 의해 관리될 수 있다. 일부 구현에서, 게임의 각 그래픽 객체는 대응하는 속성, 예컨대 치수, 투명도 수준, 색상, 질감 등을 갖는 데이터 저장소에 저장될 수 있다.1A, 1B, 2A, 2B and 3 illustrate movement in the x-direction, it will be understood that the avatar can move in any direction, eg, the x-y direction, the y-z direction, or the x-y-z direction, based on user input. . For example, lateral movement (eg, as indicated by pressing a single arrow key on a keyboard, entering a gesture in a single direction, etc.) may include movement along a single direction. In another example, a combined movement (e.g., simultaneously pressing two vertical arrow keys, such as Left and Up, represented by a "leap" gesture, etc.) includes movement in two or more directions. can do. In another implementation, the camera generating the camera view may be positioned in a direction generally perpendicular to the primary direction of movement (eg, as the avatar moves from left to right in the user interface, the camera is perpendicular to the screen displaying the avatar) may be positioned in the direction of phosphorus). In a different implementation, the movement of the avatar within the 3D world may be governed by rules specified by the game's developer. In some implementations, each graphic object in the game may be stored in a data store having a corresponding attribute, such as a dimension, transparency level, color, texture, and the like.

도 4는 일부 구현에 따른, 도 1a, 1b, 2a, 및 2b의 카메라 뷰를 제공할 수 있는 온라인 게임을 위한 예시적인 시스템 아키텍처의 도식이다. 온라인 게이밍 플랫폼("사용자 생성 콘텐츠 플랫폼" 또는 "사용자 생성 콘텐츠 시스템"이라고도 지칭됨)은 사용자가 전자 게임을 플레이하는 동안과 같이, 사용자가 서로 상호작용하는 다양한 방식을 제공한다. 예컨대, 온라인 게이밍 플랫폼의 사용자는 공통 목표를 위해 함께 작업하고, 다양한 가상 게이밍 아이템을 공유하고, 서로에게 전자 메시지를 전송하는 것 등을 할 수 있다. 온라인 게이밍 플랫폼의 사용자는 전자 게임에서 렌더링된 3D 세계를 통해 사용자가 탐색할 수 있는, 전술한 아바타(102)와 같은 캐릭터를 사용하여 게임을 플레이할 수 있다.4 is a schematic diagram of an example system architecture for an online game that may provide the camera views of FIGS. 1A, 1B, 2A, and 2B, in accordance with some implementations. Online gaming platforms (also referred to as “user-generated content platforms” or “user-generated content systems”) provide a variety of ways for users to interact with each other, such as while users are playing electronic games. For example, users of an online gaming platform may work together for a common goal, share various virtual gaming items, send electronic messages to each other, and the like. A user of the online gaming platform may play a game using a character, such as the avatar 102 described above, that the user may navigate through a rendered 3D world in the electronic game.

온라인 게이밍 플랫폼은 또한 플랫폼의 사용자가 아바타를 생성하고 애니메이팅할 수 있도록 허용할 뿐만 아니라, 사용자가 다른 그래픽 객체를 생성하여 3D 세계에 배치하도록 허용할 수 있다. 예컨대, 온라인 게이밍 플랫폼의 사용자는 아바타(102)를 생성, 디자인 및 커스터마이징하고, 3D 세계에서 벽(122), 창(202) 및 다른 그래픽 객체를 생성, 디자인 및 삽입하도록 허용될 수 있다.Online gaming platforms may also allow users of the platform to create and animate avatars, as well as allow users to create other graphical objects and place them in the 3D world. For example, a user of an online gaming platform may be permitted to create, design, and customize an avatar 102 , and to create, design, and insert walls 122 , windows 202 and other graphical objects in the 3D world.

도 4에서, 예시적인 시스템 아키텍처(400)(여기에서 "시스템"이라고도 지칭됨)는 온라인 게이밍 플랫폼(402), 제1 클라이언트 장치(410)(여기에서 일반적으로 "클라이언트 장치(들)(410)"으로 지칭됨) 및 적어도 하나의 제2 클라이언트 장치(416)를 포함한다. 온라인 게이밍 플랫폼(402)은 그 중에서도, 게임 엔진(404) 및 하나 이상의 전자 게임(406)을 포함할 수 있다. 시스템 아키텍처(400)는 하나의 가능한 구현을 예시하기 위해 제공된다. 다른 구현에서, 시스템 아키텍처(400)는 도 4에 도시된 것과 동일하거나 상이한 방식으로 구성된 동일하거나, 더 적거나, 더 많거나, 또는 상이한 요소를 포함할 수 있다.In FIG. 4 , an exemplary system architecture 400 (also referred to herein as a “system”) includes an online gaming platform 402 , a first client device 410 (herein generally referred to as “client device(s) 410 ). ") and at least one second client device 416 . The online gaming platform 402 may include a game engine 404 and one or more electronic games 406 , among others. System architecture 400 is provided to illustrate one possible implementation. In other implementations, the system architecture 400 may include the same, fewer, more, or different elements configured in the same or different manner as shown in FIG. 4 .

통신 네트워크(422)는 온라인 게이밍 플랫폼(402)과 클라이언트 장치(410/416) 사이 및/또는 시스템 아키텍처(400)의 다른 요소들 사이의 통신을 위해 사용될 수 있다. 네트워크(422)는 공중 네트워크(예컨대, 인터넷), 사설 네트워크(예컨대, LAN(local area network) 또는 WAN(wide area network)), 유선 네트워크(예컨대, 이더넷 네트워크), 무선 네트워크(예컨대, 802.11 네트워크, Wi-Fi 네트워크 또는 WLAN(wireless LAN)), 셀룰러 네트워크(예컨대, LTE(long term evolution) 네트워크), 라우터, 허브, 스위치, 서버 컴퓨터 또는 이들의 조합을 포함할 수 있다.The communications network 422 may be used for communications between the online gaming platform 402 and the client devices 410/416 and/or other elements of the system architecture 400 . Network 422 may include a public network (eg, the Internet), a private network (eg, a local area network (LAN) or wide area network (WAN)), a wired network (eg, an Ethernet network), a wireless network (eg, an 802.11 network, It may include a Wi-Fi network or wireless LAN (WLAN), a cellular network (eg, a long term evolution (LTE) network), a router, a hub, a switch, a server computer, or a combination thereof.

클라이언트 장치(410)는 게임 애플리케이션(412) 및 하나 이상의 사용자 인터페이스(414)(예컨대, 오디오/비디오 입력/출력 장치)를 포함할 수 있다. 클라이언트 장치(416)는 게임 애플리케이션(420) 및 사용자 인터페이스(418)(예컨대, 오디오/비디오 입력/출력 장치)를 포함할 수 있다. 오디오/비디오 입력/출력 장치는 마이크로폰, 스피커, 헤드폰, 디스플레이 장치 등 중 하나 이상을 포함할 수 있다.The client device 410 may include a gaming application 412 and one or more user interfaces 414 (eg, audio/video input/output devices). The client device 416 may include a game application 420 and a user interface 418 (eg, an audio/video input/output device). The audio/video input/output device may include one or more of a microphone, a speaker, a headphone, a display device, and the like.

시스템 아키텍처(400)는 하나 이상의 스토리지 장치(424)를 더 포함할 수 있다. 스토리지 장치(424)는 예컨대, 온라인 게이밍 플랫폼(402) 내에 위치되거나, (도 4에 도시된 바와 같이) 네트워크(422)를 통해 온라인 게이밍 플랫폼(402)에 통신적으로 결합된 스토리지 장치일 수 있다. 스토리지 장치(424)는 예컨대, 게임 엔진(404) 또는 게임 애플리케이션(412/420)에 의해 게임(406)에서 렌더링되는 그래픽 객체 뿐만 아니라 그래픽 객체의 구성/속성 정보(예컨대, 전술한 좌표 정보, 크기 치수 등)를 저장할 수 있다. 일부 실시예에서, 스토리지 장치(424)는 게임(406)에서 렌더링된 그래픽 객체를 제공하는 별도의 콘텐츠 전달 네트워크(content delivery network)의 일부일 수 있다. 예컨대, 게임 애플리케이션(412)은 게임을 플레이하는 동안의 표시를 위해 스토리지 장치(424)에 저장된 그래픽 객체를 당길 수 있다 (또는 밀었을 수 있음).System architecture 400 may further include one or more storage devices 424 . The storage device 424 may be, for example, a storage device located within the online gaming platform 402 or communicatively coupled to the online gaming platform 402 via a network 422 (as shown in FIG. 4 ). . The storage device 424 includes, for example, the graphic object rendered in the game 406 by the game engine 404 or the game application 412/420, as well as configuration/property information (eg, the coordinate information described above, the size of the graphic object). dimensions, etc.). In some embodiments, storage device 424 may be part of a separate content delivery network that provides graphical objects rendered in game 406 . For example, game application 412 may pull (or push) a graphical object stored on storage device 424 for display while playing a game.

일 구현에서, 스토리지 장치(424)는 비일시적 컴퓨터 판독가능 메모리(예컨대, 랜덤 액세스 메모리), 캐시, 드라이브(예컨대, 하드 드라이브), 플래시 드라이브, 데이터베이스 시스템, 또는 데이터 및 다른 콘텐츠를 저장할 수 있는 다른 유형의 컴포넌트 또는 장치일 수 있다. 스토리지 장치(424)는 또한 다중 컴퓨팅 장치(예컨대, 다중 서버 컴퓨터)에 걸쳐 있을 수도 있는, 다중 저장 컴포넌트(예컨대, 다중 드라이브 또는 다중 데이터베이스)를 포함할 수 있다.In one implementation, storage device 424 may be a non-transitory computer readable memory (eg, random access memory), cache, drive (eg, hard drive), flash drive, database system, or other device capable of storing data and other content. It can be a tangible component or device. Storage device 424 may also include multiple storage components (eg, multiple drives or multiple databases), which may span multiple computing devices (eg, multiple server computers).

일부 구현에서, 온라인 게이밍 플랫폼(402)은 하나 이상의 컴퓨팅 장치(예컨대, 클라우드 컴퓨팅 시스템, 랙마운트 서버, 서버 컴퓨터, 물리적 서버의 클러스터 등)를 갖는 서버를 포함할 수 있다. 일부 구현에서, 서버는 온라인 게이밍 플랫폼(402)에 포함될 수 있거나, 독립적인 시스템일 수 있거나, 또는 다른 시스템 또는 플랫폼의 일부일 수 있다.In some implementations, the online gaming platform 402 may include a server having one or more computing devices (eg, cloud computing systems, rackmount servers, server computers, clusters of physical servers, etc.). In some implementations, the server may be included in the online gaming platform 402 , may be a standalone system, or may be part of another system or platform.

일부 구현에서, 온라인 게이밍 플랫폼(402)은 온라인 게이밍 플랫폼(402)에서 동작을 수행하고 사용자에게 온라인 게이밍 플랫폼(402)에 대한 액세스를 제공하는 데 사용될 수 있는 하나 이상의 컴퓨팅 장치(예컨대, 랙마운트 서버, 라우터 컴퓨터, 서버 컴퓨터, 개인용 컴퓨터, 메인프레임 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 데스크톱 컴퓨터 등), 데이터 저장소(예컨대, 하드 디스크, 메모리, 데이터베이스), 네트워크, 소프트웨어 컴포넌트 및/또는 하드웨어 컴포넌트를 포함할 수 있다. 온라인 게이밍 플랫폼(402)은 또한 온라인 게이밍 플랫폼(402)에 의해 제공되는 콘텐츠에 대한 액세스를 사용자에게 제공하는 데 사용될 수 있는 웹사이트(예컨대, 웹페이지) 또는 애플리케이션 백엔드 소프트웨어를 포함할 수 있다. 예컨대, 사용자는 클라이언트 장치(410) 상의 게임 애플리케이션(412)을 사용하여, 온라인 게이밍 플랫폼(402)에 액세스할 수 있다.In some implementations, the online gaming platform 402 is one or more computing devices (eg, a rackmount server) that may be used to perform operations on the online gaming platform 402 and provide access to the online gaming platform 402 to a user. , router computers, server computers, personal computers, mainframe computers, laptop computers, tablet computers, desktop computers, etc.), data storage (eg, hard disks, memory, databases), networks, software components and/or hardware components. can The online gaming platform 402 may also include a website (eg, a webpage) or application backend software that may be used to provide users with access to content provided by the online gaming platform 402 . For example, a user may access the online gaming platform 402 using a gaming application 412 on the client device 410 .

일부 구현에서, 온라인 게이밍 플랫폼(402)은 사용자 간의 연결을 제공하는 소셜 네트워크의 유형 또는 사용자(예컨대, 최종 사용자 또는 소비자)가 온라인 게이밍 플랫폼(402) 상에서 다른 사용자와 통신하도록 허용하는 사용자 생성 콘텐츠 시스템의 유형일 수 있고, 여기에서 통신은 음성 채팅(예컨대, 동기 및/또는 비동기 음성 통신), 비디오 채팅(예컨대, 동기 및/또는 비동기 비디오 통신), 또는 텍스트 채팅(예컨대, 동기 및/또는 비동기 텍스트 기반 통신)을 포함할 수 있다. 본 개시의 일부 구현에서, "사용자"는 단일 개인으로 표현될 수 있다. 그러나, 본 개시의 다른 구현은 "사용자"(예컨대, 사용자 생성)가 사용자의 세트 또는 자동화된 소스에 의해 제어되는 엔티티인 것을 포함한다. 예컨대, 사용자 생성 콘텐츠 시스템에서 커뮤니티 또는 그룹으로 연합된 개별 사용자의 세트는 "사용자"로 간주될 수 있다.In some implementations, the online gaming platform 402 is a type of social network that provides connections between users or a user-generated content system that allows users (eg, end users or consumers) to communicate with other users on the online gaming platform 402 . wherein the communication is voice chat (eg, synchronous and/or asynchronous voice communication), video chat (eg, synchronous and/or asynchronous video communication), or text chat (eg, synchronous and/or asynchronous text-based communication) communication) may be included. In some implementations of the present disclosure, a “user” may be represented as a single individual. However, other implementations of the present disclosure include that a “user” (eg, user-created) is an entity controlled by a set of users or an automated source. For example, in a user-generated content system, a set of individual users associated as a community or group may be considered a “user.”

일부 구현에서, 온라인 게이밍 플랫폼(402)은 가상 게이밍 플랫폼일 수 있다. 예컨대, 게이밍 플랫폼은 네트워크(422)를 통해 클라이언트 장치(410)를 사용하여 게임에 액세스하거나 상호작용할 수 있는 사용자의 커뮤니티에 싱글 플레이어 또는 멀티 플레이어 게임을 제공할 수 있다. 일부 구현에서, 게임(여기에서 “비디오 게임”, “온라인 게임" 또는 "가상 게임" 등으로도 지칭됨)은 예컨대, 2차원(2D) 게임, 3차원(3D) 게임(예컨대, 3D 사용자 생성 게임), 가상 현실(VR) 게임 또는 증강 현실(AR) 게임일 수 있다. 일부 구현에서, 사용자는 다른 사용자와 게임플레이에 참여할 수 있다. 일부 구현에서, 게임은 게임의 다른 사용자와 실시간으로 플레이될 수 있다.In some implementations, the online gaming platform 402 may be a virtual gaming platform. For example, the gaming platform may provide a single player or multiplayer game to a community of users who may access or interact with the game using the client device 410 over the network 422 . In some implementations, games (also referred to herein as “video games,” “online games,” or “virtual games,” etc.) are, for example, two-dimensional (2D) games, three-dimensional (3D) games (eg, 3D user-generated). game), virtual reality (VR) game, or augmented reality (AR) game.In some implementations, the user can engage in gameplay with other users.In some implementations, the game can be played in real time with other users of the game. can be

일부 구현에서, 게임플레이는 게임(예컨대, 게임(406)) 내에서 클라이언트 장치(예컨대, 클라이언트 장치(410 및/또는 416))를 사용하는 하나 이상의 플레이어의 상호작용 또는 클라이언트 장치(410 또는 416)의 디스플레이 또는 다른 사용자 인터페이스(예컨대, 사용자 인터페이스(414/418)) 상의 상호작용의 표시를 지칭할 수 있다.In some implementations, gameplay is one or more player interactions with a client device (eg, client device 410 and/or 416 ) within a game (eg, game 406 ) or client device 410 or 416 . may refer to the display of an interaction on a display or other user interface (eg, user interface 414/418).

일부 구현에서, 게임(406)은 게임 콘텐츠(예컨대, 디지털 미디어 아이템)를 엔티티에 제시하도록 구성된 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행되거나 로드될 수 있는 전자 파일을 포함할 수 있다. 일부 구현에서, 게임 애플리케이션(412)은 실행될 수 있고, 게임(406)은 게임 엔진(404)과 관련하여 렌더링될 수 있다. 일부 구현에서, 게임(406)은 규칙의 공통 세트 또는 공통 목표를 가질 수 있고, 게임(406)의 환경은 규칙의 공통 세트 또는 공통 목표를 공유한다. 일부 구현에서, 상이한 게임은 서로 상이한 규칙 또는 목표를 가질 수 있다.In some implementations, game 406 may include electronic files that may be executed or loaded using software, firmware, or hardware configured to present game content (eg, digital media items) to an entity. In some implementations, a game application 412 may be executed and a game 406 may be rendered in conjunction with a game engine 404 . In some implementations, games 406 may have a common set of rules or common goals, and environments of games 406 share a common set of rules or common goals. In some implementations, different games may have different rules or goals from each other.

일부 구현에서, 게임은 다중 환경이 링크될 수 있는 하나 이상의 환경(여기에서, "게이밍 환경" 또는 "가상 환경"이라고도 지칭됨)을 가질 수 있다. 환경의 예시는 3D 환경일 수 있다. 게임(406)의 하나 이상의 환경은 여기에서 "세계" 또는 "게이밍 세계" 또는 "가상 세계" 또는 "유니버스"로 집합적으로 지칭될 수 있다. 세계의 예시는 상기 도 1a, 1b, 2a, 2b 및 3에 예시된 바와 같은, 게임(406)의 3D 세계일 수 있다. 예컨대, 사용자는 다른 사용자에 의해 생성된 다른 가상 환경에 링크되는 가상 환경을 구축할 수 있다. 가상 게임의 캐릭터는 가상 경계를 넘어 인접한 가상 환경으로 들어갈 수 있다.In some implementations, a game may have one or more environments (also referred to herein as “gaming environments” or “virtual environments”) to which multiple environments can be linked. An example of an environment may be a 3D environment. One or more environments of game 406 may be collectively referred to herein as “world” or “gaming world” or “virtual world” or “universe”. An example of a world could be the 3D world of the game 406 , as illustrated in FIGS. 1A , 1B , 2A , 2B and 3 above. For example, a user may build a virtual environment that is linked to another virtual environment created by another user. A character in a virtual game can cross virtual boundaries and enter an adjacent virtual environment.

3D 환경 또는 3D 세계는 게임 콘텐츠를 나타내는 기하학적 데이터의 3차원 표현을 제공하는 그래픽을 사용한다는 점에 유의할 수 있다 (또는 기하학적 데이터의 3D 표현이 사용되는지 여부에 관계없이 적어도 현재 게임 콘텐츠가 3D 콘텐츠로 나타남). 2D 환경 또는 2D 세계는 게임 콘텐츠를 나타내는 기하학적 데이터의 2차원 표현을 제공하는 그래픽을 사용한다.It may be noted that a 3D environment, or 3D world, uses graphics that provide a three-dimensional representation of geometric data representing the game content (or at least the current game content as 3D content, whether or not a 3D representation of the geometric data is used). appear). A 2D environment, or 2D world, uses graphics to provide a two-dimensional representation of geometric data representing game content.

일부 구현에서, 온라인 게이밍 플랫폼(402)은 하나 이상의 게임(406)을 호스팅할 수 있고, 사용자가 클라이언트 장치(410)의 게임 애플리케이션(412)을 사용하여 게임(406)과 상호작용하는 것을 허가할 수 있다. 온라인 게이밍 플랫폼(402)의 사용자는 게임(406)을 플레이, 생성, 상호작용 또는 구축하고, 다른 사용자와 통신하고, 그리고/또는 게임(406)의 객체(예컨대, 여기에서 “아이템(들)” 또는 “게임 객체” 또는 “가상 게임 아이템(들) 또는 "그래픽 객체"라고도 지칭됨)를 생성 및 구축할 수 있다. 예컨대, 사용자 생성 가상 아이템을 생성하는 데 있어, 사용자는 그 중에서도 캐릭터, 캐릭터를 위한 애니메이션, 캐릭터를 위한 장식, 인터랙티브 게임을 위한 하나 이상의 가상 환경을 생성하거나, 게임(406)에서 사용된 구조를 구축할 수 있다. 일부 구현에서, 사용자는 플랫폼 내 화폐(예컨대, 가상 화폐)와 같은, 게임 가상 게임 객체를 온라인 게이밍 플랫폼(402)의 다른 사용자와 구매, 판매 또는 거래할 수 있다. 일부 구현에서, 온라인 게이밍 플랫폼(402)은 게임 콘텐츠를 게임 애플리케이션(예컨대, 게임 애플리케이션(412))으로 전송할 수 있다. 일부 구현에서, 게임 콘텐츠(여기에서 "콘텐츠"라고도 지칭됨)는 온라인 게이밍 플랫폼(402) 또는 게임 애플리케이션과 연관된 임의의 데이터 또는 소프트웨어 명령어(예컨대, 게임 객체, 게임, 사용자 정보, 비디오, 이미지, 명령, 미디어 아이템 등)를 지칭할 수 있다. 일부 구현에서, 게임 객체(예컨대, 여기에서 "아이템(들)" 또는 "객체" 또는 "가상 게임 아이템(들)"이라고도 지칭됨)는 온라인 게이밍 플랫폼(402)의 게임(406) 또는 클라이언트 장치(410/416)의 게임 애플리케이션(412 또는 420)에 사용되거나, 생성되거나, 공유되거나, 그 외 도시되는 객체를 지칭할 수 있다. 예컨대, 게임 객체는 부품, 모델, 캐릭터, 또는 그 컴포넌트(예컨대, 얼굴, 팔, 입술 등), 도구, 무기, 의복, 건물, 차량, 화폐, 식물군, 동물군, 전술한 것의 컴포넌트(예컨대, 건물의 창) 등을 포함할 수 있다.In some implementations, the online gaming platform 402 may host one or more games 406 , which may allow users to interact with the games 406 using the game application 412 on the client device 410 . can A user of the online gaming platform 402 plays, creates, interacts with, or builds a game 406 , communicates with other users, and/or an object of the game 406 (eg, “item(s)” herein). or “game objects” or “virtual game item(s) or “graphic objects”) may be created and constructed. For example, in creating a user-generated virtual item, the user creates one or more virtual environments for a character, animation for a character, decoration for a character, an interactive game, among others, or builds a structure used in game 406 . can do. In some implementations, users may purchase, sell, or trade game virtual game objects, such as in-platform currency (eg, virtual currency), with other users of the online gaming platform 402 . In some implementations, the online gaming platform 402 can send game content to a game application (eg, game application 412 ). In some implementations, game content (also referred to herein as “content”) includes any data or software instructions (eg, game objects, games, user information, videos, images, instructions) associated with the online gaming platform 402 or game application. , media items, etc.). In some implementations, a game object (eg, also referred to herein as “item(s)” or “object” or “virtual game item(s)”) is a game 406 or client device ( 410/416), may refer to an object used, created, shared, or otherwise shown in the game application 412 or 420 of FIG. For example, a game object may be a part, model, character, or component thereof (eg, face, arm, lips, etc.), tool, weapon, clothing, building, vehicle, currency, flora, fauna, component of the foregoing (eg, windows of buildings), and the like.

게임(406)을 호스팅하는 온라인 게이밍 플랫폼(402)은 예시의 목적으로 제공된다는 점에 유의할 수 있다. 일부 구현에서, 온라인 게이밍 플랫폼(402)은 한 사용자로부터 하나 이상의 다른 사용자로의 통신 메시지를 포함할 수 있는 하나 이상의 미디어 아이템을 호스팅할 수 있다. 미디어 아이템은 디지털 비디오, 디지털 영화, 디지털 사진, 디지털 음악, 오디오 콘텐츠, 멜로디, 웹사이트 콘텐츠, 소셜 미디어 업데이트, 전자 책, 전자 잡지, 디지털 신문, 디지털 오디오 북, 전자 저널, 웹 블로그, RSS(real simple syndication) 피드, 전자 만화책, 소프트웨어 애플리케이션 등을 포함할 수 있지만, 이에 제한되지는 않는다. 일부 구현에서, 미디어 아이템은 디지털 미디어 아이템을 엔티티에 제시하도록 구성된 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행되거나 로드될 수 있는 전자 파일일 수 있다.It may be noted that the online gaming platform 402 hosting the game 406 is provided for purposes of illustration. In some implementations, the online gaming platform 402 may host one or more media items that may include communication messages from one user to one or more other users. Media items include digital video, digital movies, digital photos, digital music, audio content, melodies, website content, social media updates, e-books, e-magazines, digital newspapers, digital audio books, e-journals, web blogs, real simple syndication) feeds, electronic comic books, software applications, and the like. In some implementations, a media item may be an electronic file that may be executed or loaded using software, firmware, or hardware configured to present a digital media item to an entity.

일부 구현에서, 게임(406)은 특정 사용자 또는 사용자의 특정 그룹과 연관되거나 (예컨대, 비공개 게임), 온라인 게이밍 플랫폼(402)의 사용자에게 널리 이용 가능하게 만들어질 수 있다 (예컨대, 공개 게임). 온라인 게이밍 플랫폼(402)이 하나 이상의 게임(406)을 특정 사용자 또는 사용자 그룹과 연관시키는 일부 구현에서, 온라인 게이밍 플랫폼(402)은 사용자 계정 정보(예컨대, 사용자 이름 및 비밀번호와 같은 사용자 계정 식별자)를 사용하여 특정 사용자(들)를 게임(406)과 연관시킬 수 있다.In some implementations, the game 406 may be associated with a particular user or a particular group of users (eg, a private game) or made widely available to users of the online gaming platform 402 (eg, a public game). In some implementations where the online gaming platform 402 associates one or more games 406 with a particular user or group of users, the online gaming platform 402 may send user account information (eg, a user account identifier such as a user name and password). may be used to associate specific user(s) with the game 406 .

일부 구현에서, 온라인 게이밍 플랫폼(402) 또는 클라이언트 장치(410/416)는 게임 엔진(404) 또는 게임 애플리케이션(412/420)을 포함할 수 있다. 일부 구현에서, 게임 엔진(404)은 게임(406)의 개발 또는 실행을 위해 사용될 수 있다. 예컨대, 게임 엔진(404)은 다른 특징 중에서, 2D, 3D, VR 또는 AR 그래픽을 위한 렌더링 엔진("렌더러(renderer)"), 물리 엔진, 충돌 감지 엔진(및 충돌 응답), 사운드 엔진, 스크립팅 기능, 애니메이션 엔진, 인공 지능 엔진, 네트워킹 기능, 스트리밍 기능, 메모리 관리 기능, 스레딩 기능(threading functionality), 장면 그래프 기능 또는 시네마틱에 대한 비디오 지원을 포함할 수 있다. 게임 엔진(404)의 컴포넌트는 게임을 컴퓨팅하고 렌더링하는 것을 돕는 명령(예컨대, 렌더링 명령, 충돌 명령, 애니메이션 명령, 물리 명령 등)을 생성할 수 있다. 일부 구현에서, 클라이언트 장치(410/416)의 게임 애플리케이션(412/418)은 각각 독립적으로, 온라인 게이밍 플랫폼(402)의 게임 엔진(404)과 협력하여, 또는 이 둘의 조합으로 작동할 수 있다.In some implementations, the online gaming platform 402 or client device 410/416 may include a game engine 404 or game application 412/420. In some implementations, game engine 404 may be used for development or execution of game 406 . For example, the game engine 404 may include, among other features, a rendering engine (“renderer”) for 2D, 3D, VR or AR graphics, a physics engine, a collision detection engine (and collision response), a sound engine, and scripting capabilities. , animation engines, artificial intelligence engines, networking functions, streaming functions, memory management functions, threading functions, scene graph functions, or video support for cinematics. Components of the game engine 404 may generate instructions (eg, rendering instructions, collision instructions, animation instructions, physics instructions, etc.) to help compute and render the game. In some implementations, the gaming applications 412/418 of the client devices 410/416 may each operate independently, in cooperation with the game engine 404 of the online gaming platform 402 , or a combination of the two. .

일부 구현에서, 온라인 게이밍 플랫폼(402) 및 클라이언트 장치(410/416) 모두는 게임 엔진 또는 게임 애플리케이션(각각, 404, 412, 420)을 실행할 수 있다. 게임 엔진(404)을 사용하는 온라인 게이밍 플랫폼(402)은 일부 또는 모든 게임 엔진 기능(예컨대, 전술한 카메라 뷰에 대한 변경을 제어하는 것을 포함하는, 물리 명령, 애니메이션 명령, 렌더링 명령 생성 등)을 수행하거나, 일부 또는 모든 게임 엔진 기능을 클라이언트 장치(410)의 게임 애플리케이션(412)에 오프로드할 수 있다. 일부 구현에서, 각각의 게임(406)은 온라인 게이밍 플랫폼(402)에서 수행되는 게임 엔진 기능과 클라이언트 장치(410 및 416)에서 수행되는 게임 엔진 기능 사이에 상이한 비율을 가질 수 있다.In some implementations, both the online gaming platform 402 and the client devices 410/416 may execute a game engine or game application (404, 412, 420, respectively). The online gaming platform 402 using the game engine 404 may implement some or all game engine functions (eg, generating physics commands, animation commands, rendering commands, etc., including controlling changes to the camera view described above). or offload some or all game engine functions to the game application 412 of the client device 410 . In some implementations, each game 406 may have a different ratio between the game engine functions performed on the online gaming platform 402 and the game engine functions performed on the client devices 410 and 416 .

예컨대, 온라인 게이밍 플랫폼(402)의 게임 엔진(404)은 적어도 2개의 게임 객체 사이에 충돌이 있는 경우 물리 명령을 생성하는 데 사용될 수 있는 반면, 추가 게임 엔진 기능(예컨대, 카메라 뷰를 변경하는 것을 포함하는, 렌더링 명령 생성)은 클라이언트 장치(410)로 오프로드될 수 있다. 일부 구현에서, 온라인 게이밍 플랫폼(402) 및 클라이언트 장치(410) 상에서 수행되는 게임 엔진 기능의 비율은 게임플레이 조건에 기초하여 (예컨대, 동적으로) 변경될 수 있다. 예컨대, 특정 게임(406)의 게임플레이에 참여하는 사용자의 수가 임계 수를 초과하는 경우, 온라인 게이밍 플랫폼(402)은 클라이언트 장치(410 또는 416)에 의해 이전에 수행되었던 하나 이상의 게임 엔진 기능을 수행할 수 있다.For example, the game engine 404 of the online gaming platform 402 can be used to generate physics commands when there is a conflict between at least two game objects, while additional game engine functions (eg, changing the camera view) , including rendering command generation) may be offloaded to the client device 410 . In some implementations, the proportion of game engine functions performed on the online gaming platform 402 and the client device 410 may be changed (eg, dynamically) based on gameplay conditions. For example, if the number of users participating in gameplay of a particular game 406 exceeds a threshold number, the online gaming platform 402 performs one or more game engine functions previously performed by the client device 410 or 416 . can do.

예컨대, 사용자는 클라이언트 장치(410 및 416)에서 게임(406)을 플레이할 수 있고, 제어 명령어(예컨대, 오른쪽, 왼쪽, 위, 아래, 사용자 선택, 또는 캐릭터 위치 및 속도 정보 등과 같은 사용자 입력)를 온라인 게이밍 플랫폼(402)에 전송할 수 있다. 클라이언트 장치(410 및 416)로부터 제어 명령어를 수신한 후, 온라인 게이밍 플랫폼(402)은 게임플레이 명령어(예컨대, 그룹 게임플레이에 참여하는 캐릭터의 위치 및 속도 정보 또는 렌더링 명령, 충돌 명령과 같은 명령 등)를 제어 명령어에 기초하여 클라이언트 장치(410 및 416)에 전송할 수 있다. 예컨대, 온라인 게이밍 플랫폼(402)은 클라이언트 장치(410 및 416)에 대한 게임플레이 명령어를 생성하기 위해 제어 명령어에 대한 (예컨대, 게임 엔진(404)을 사용하는) 하나 이상의 논리 연산을 수행할 수 있다. 다른 경우에서, 온라인 게이밍 플랫폼(402)은 하나의 클라이언트 장치(410)로부터 게임(406)에 참여하는 다른 클라이언트 장치(예컨대, 클라이언트 장치(416))로 제어 명령어 중 하나 이상을 전달할 수 있다. 클라이언트 장치(410 및 416)는 게임플레이 명령어를 사용하고, 전술한 조정가능한 카메라 뷰를 포함하는, 클라이언트 장치(410 및 416)의 디스플레이 상에서의 표시를 위해 게임플레이를 렌더링할 수 있다.For example, a user may play a game 406 on client devices 410 and 416 and issue control commands (eg, right, left, up, down, user selection, or user input such as character position and speed information, etc.). to the online gaming platform 402 . After receiving control commands from the client devices 410 and 416, the online gaming platform 402 provides gameplay commands (eg, location and speed information or rendering commands of characters participating in group gameplay, commands such as collision commands, etc.) ) to the client devices 410 and 416 based on the control command. For example, the online gaming platform 402 may perform one or more logical operations (eg, using the game engine 404 ) on the control instructions to generate gameplay instructions for the client devices 410 and 416 . . In other instances, the online gaming platform 402 may pass one or more of the control instructions from one client device 410 to another client device participating in the game 406 (eg, client device 416 ). Client devices 410 and 416 may use gameplay commands and render gameplay for display on the display of client devices 410 and 416 , including the adjustable camera views described above.

일부 구현에서, 제어 명령어는 사용자의 캐릭터의 게임 내 활동을 나타내는 명령어를 지칭할 수 있다. 예컨대, 제어 명령어는 오른쪽, 왼쪽, 위, 아래, 사용자 선택, 자이로스코프 위치 및 방향 데이터, 힘 센서 데이터 등과 같은 게임 내 활동을 제어하기 위한 사용자 입력을 포함할 수 있다. 제어 명령어는 캐릭터 위치 및 속도 정보를 포함할 수 있다. 일부 구현에서, 제어 명령어는 온라인 게이밍 플랫폼(402)으로 직접 전송된다. 다른 구현에서, 제어 명령어는 클라이언트 장치(410)로부터 다른 클라이언트 장치(예컨대, 클라이언트 장치(416))로 전송될 수 있으며, 여기에서 다른 클라이언트 장치는 로컬 게임 애플리케이션(420)을 사용하여 게임플레이 명령어를 생성한다. 제어 명령어는 음성 통신 메시지 또는 오디오 장치(예컨대, 스피커, 헤드폰 등)에서 다른 사용자로부터의 다른 사운드, 예컨대, 음성 통신 또는 여기에서 설명된 오디오 공간화 기법을 사용하여 생성된 다른 사운드를 플레이하기 위한 명령어를 포함할 수 있다.In some implementations, the control instructions may refer to instructions that indicate in-game activities of the user's character. For example, the control commands may include user inputs for controlling in-game activities such as right, left, up, down, user selections, gyroscope position and orientation data, force sensor data, and the like. The control command may include character position and speed information. In some implementations, the control commands are sent directly to the online gaming platform 402 . In another implementation, control commands may be sent from a client device 410 to another client device (eg, client device 416 ), where the other client device uses the local game application 420 to execute gameplay commands. create The control instructions may include voice communication messages or instructions for playing other sounds from other users on an audio device (eg, speakers, headphones, etc.), eg, other sounds generated using voice communication or the audio spatialization techniques described herein. may include

일부 구현에서, 게임플레이 명령어는 클라이언트 장치(410)가 멀티 플레이어 게임과 같은, 게임의 게임플레이를 렌더링하도록 허용하는 명령어를 지칭할 수 있다. 게임플레이 명령어는 사용자 입력(예컨대, 제어 명령어), 캐릭터 위치 및 속도 정보, 또는 명령(예컨대, 물리 명령, 애니메이션 명령, 렌더링 명령, 충돌 명령 등) 중 하나 이상을 포함할 수 있다.In some implementations, gameplay instructions may refer to instructions that allow the client device 410 to render the gameplay of a game, such as a multiplayer game. Gameplay commands may include one or more of user input (eg, control commands), character position and speed information, or commands (eg, physics commands, animation commands, rendering commands, collision commands, etc.).

일부 구현에서, 클라이언트 장치(들)(410 또는 416)는 개인용 컴퓨터(PC), 모바일 장치(예컨대, 랩톱, 모바일 전화, 스마트폰, 태블릿 컴퓨터, 또는 넷북 컴퓨터), 네트워크 연결된 텔레비전, 게이밍 콘솔 등과 같은 컴퓨팅 장치를 각각 포함할 수 있다. 일부 구현에서, 클라이언트 장치(410 또는 416)는 또한 "사용자 장치"로도 지칭될 수 있다. 일부 구현에서, 하나 이상의 클라이언트 장치(410 또는 416)는 임의의 주어진 순간에 온라인 게이밍 플랫폼(402)에 연결할 수 있다. 클라이언트 장치(410 또는 416)의 수는 제한보다는, 예시로서 제공된다는 점에 유의할 수 있다. 일부 구현에서, 임의의 수의 클라이언트 장치(410 또는 416)가 사용될 수 있다.In some implementations, the client device(s) 410 or 416 are personal computers (PCs), mobile devices (eg, laptops, mobile phones, smartphones, tablet computers, or netbook computers), networked televisions, gaming consoles, etc. Each of the computing devices may be included. In some implementations, client device 410 or 416 may also be referred to as a “user device”. In some implementations, one or more client devices 410 or 416 may connect to the online gaming platform 402 at any given moment. It may be noted that the number of client devices 410 or 416 is provided by way of example rather than limitation. In some implementations, any number of client devices 410 or 416 may be used.

일부 구현에서, 각각의 클라이언트 장치(410 또는 416)는 게임 애플리케이션(412 또는 420)의 인스턴스를 각각 포함할 수 있다. 일 구현에서, 게임 애플리케이션(412 또는 420)은 사용자가 온라인 게이밍 플랫폼(402)에 의해 호스팅되는 가상 게임에서 가상 캐릭터를 제어하거나, 게임(406), 이미지, 비디오 아이템, 웹 페이지, 문서 등과 같은 콘텐츠를 보거나 업로드하는 것과 같이, 온라인 게이밍 플랫폼(402)을 사용하고 상호작용하는 것을 허가할 수 있다. 일 예시에서, 게임 애플리케이션은 웹 서버에 의해 제공된 콘텐츠(예컨대, 가상 환경의 가상 캐릭터 등)에 액세스, 검색, 제시 또는 탐색할 수 있는 웹 애플리케이션(예컨대, 웹 브라우저와 함께 동작하는 애플리케이션)일 수 있다. 다른 예시에서, 게임 애플리케이션은 클라이언트 장치(410 또는 416)에 설치 및 로컬로 실행되고, 사용자가 온라인 게이밍 플랫폼(402)와 상호작용할 수 있도록 허용하는 네이티브 애플리케이션(예컨대, 모바일 애플리케이션, 앱, 또는 게이밍 프로그램)일 수 있다. 게임 애플리케이션은 콘텐츠(예컨대, 웹 페이지, 미디어 뷰어)를 사용자에게 렌더링, 디스플레이 또는 제시할 수 있다. 구현에서, 게임 애플리케이션은 또한 웹 페이지에 임베디드된 임베디드 미디어 플레이어(예컨대, Flash® 플레이어)를 포함할 수 있다.In some implementations, each client device 410 or 416 may include an instance of a game application 412 or 420 , respectively. In one implementation, game application 412 or 420 allows a user to control a virtual character in a virtual game hosted by online gaming platform 402 , or content such as game 406 , images, video items, web pages, documents, etc. to use and interact with the online gaming platform 402 , such as viewing or uploading In one example, the game application may be a web application (eg, an application that works in conjunction with a web browser) that can access, search, present, or navigate content provided by the web server (eg, virtual characters in a virtual environment, etc.) . In another example, the game application is installed and executed locally on the client device 410 or 416 and is a native application (eg, a mobile application, app, or gaming program) that allows a user to interact with the online gaming platform 402 . ) can be A gaming application may render, display, or present content (eg, a web page, a media viewer) to a user. In implementations, the game application may also include an embedded media player (eg, a Flash® player) embedded in a web page.

본 개시의 양태에 따르면, 게임 애플리케이션(412/420)은 사용자가 온라인 게이밍 플랫폼(402)과 상호작용할 뿐만 아니라(예컨대, 온라인 게이밍 플랫폼(402)에 의해 호스팅되는 게임(406)을 플레이함), 콘텐츠를 온라인 게이밍 플랫폼(402)에 구축하고, 생성하고, 편집하고, 업로드하는 온라인 게이밍 플랫폼 애플리케이션일 수 있다. 이와 같이, 게임 애플리케이션(412/420)은 온라인 게이밍 플랫폼(402)에 의해 클라이언트 장치(410 또는 416)에 제공될 수 있다. 다른 예시에서, 게임 애플리케이션은 서버로부터 다운로드되는 애플리케이션일 수 있다.In accordance with aspects of the present disclosure, gaming applications 412 / 420 allow a user to interact with the online gaming platform 402 (eg, play a game 406 hosted by the online gaming platform 402 ); It may be an online gaming platform application that builds, creates, edits, and uploads content to the online gaming platform 402 . As such, the gaming application 412 / 420 may be provided to the client device 410 or 416 by the online gaming platform 402 . In another example, the game application may be an application downloaded from a server.

일부 구현에서, 사용자는 게임 애플리케이션을 통해 온라인 게이밍 플랫폼(402)에 로그인할 수 있다. 사용자는 사용자 계정 정보(예컨대, 사용자 이름 및 비밀번호)를 제공함으로써 사용자 계정에 액세스할 수 있으며, 여기에서 사용자 계정은 온라인 게이밍 플랫폼(402)의 하나 이상의 게임(406)에 참여할 수 있는 하나 이상의 캐릭터와 연관된다.In some implementations, a user may log in to the online gaming platform 402 through a gaming application. A user may access a user account by providing user account information (eg, a username and password), wherein the user account includes one or more characters that may participate in one or more games 406 of the online gaming platform 402 and related

일반적으로, 온라인 게이밍 플랫폼(402)에 의해 수행되는 것으로 일 구현에서 설명된 기능은 또한 적절한 경우 다른 구현에서 클라이언트 장치(들)(410 또는 416) 또는 서버에 의해 수행될 수 있다. 또한, 특정 컴포넌트에 부여된 기능은 함께 동작하는 상이한 또는 복수의 컴포넌트에 의해 수행될 수 있다. 온라인 게이밍 플랫폼(402)은 또한 적절한 API(application programming interface)를 통해 다른 시스템 또는 장치에 제공된 서비스로서 액세스될 수 있고, 따라서 웹사이트에서의 사용에 제한되지 않는다.In general, functions described in one implementation as being performed by the online gaming platform 402 may also be performed by the client device(s) 410 or 416 or the server in another implementation where appropriate. In addition, a function assigned to a specific component may be performed by different or a plurality of components operating together. The online gaming platform 402 may also be accessed as a service provided to other systems or devices via an appropriate application programming interface (API), and thus is not limited to use on a website.

도 5는 일부 구현에 따른, 전자 게임에서 카메라 뷰를 변경하기 위한 방법(500)을 예시하는 흐름도이다. 단순함을 위해, 방법(500)의 다양한 동작은 동작을 수행하는 게임 애플리케이션(412)의 맥락에서 설명될 것이다. 그러나, 도 4에 대해 전술한 바와 같이, 동작 중 일부는 게이밍 플랫폼(402)에서 게임 엔진(404)에 의해, 전체적으로 또는 부분적으로, 대안적으로 또는 추가적으로 수행될 수 있다. 예시적인 방법(500)은 블록(502 내지 514)과 같은, 하나 이상의 블록으로 예시된 하나 이상의 동작을 포함할 수 있다. 방법(500) 및/또는 여기에서 설명된 임의의 다른 프로세스(들)의 다양한 블록은 더 적은 수의 블록으로 조합되고, 추가 블록으로 분할되고, 추가 블록으로 보완되고, 및/또는 원하는 구현에 기초하여 제거될 수 있다.5 is a flow diagram illustrating a method 500 for changing a camera view in an electronic game, in accordance with some implementations. For simplicity, various operations of method 500 will be described in the context of a gaming application 412 performing the operations. However, as described above with respect to FIG. 4 , some of the operations may alternatively or additionally be performed, in whole or in part, by the game engine 404 on the gaming platform 402 . Example method 500 may include one or more operations illustrated in one or more blocks, such as blocks 502 - 514 . The various blocks of method 500 and/or any other process(s) described herein may be combined into fewer blocks, divided into additional blocks, supplemented with additional blocks, and/or based on a desired implementation can be removed.

도 5의 방법(500)은 도 1a, 1b, 2a, 2b 및 3에 도시된 요소를 참조하여 여기에서 설명될 수 있다. 일 실시예에서, 방법(500)의 동작은 파이프라인된 순차적 방식으로 수행될 수 있다. 다른 실시예에서, 일부 동작은 비순차적, 병렬 등으로 수행될 수 있다.The method 500 of FIG. 5 may be described herein with reference to the elements shown in FIGS. 1A, 1B, 2A, 2B and 3 . In one embodiment, the operations of method 500 may be performed in a pipelined sequential manner. In other embodiments, some operations may be performed out of sequence, in parallel, or the like.

블록(502)("아바타의 횡단의 방향 및 속도를 결정함")에서, 사용자는 3D 세계 내에서 아바타(102)와 같은 그래픽 객체를 이동하는 것을 포함하는 전자 게임을 플레이하고 있다. 게임 애플리케이션(412)은 3D 세계 내에서 아바타(102)의 횡단의 속도(예컨대, 초당 픽셀 수) 및 방향(예컨대, 좌표계(300)에 따른 특정 방향)을 식별한다. 블록(502)은 블록(504)으로 이어질 수 있다.At block 502 (“determining the direction and speed of traversing of the avatar”), the user is playing an electronic game that includes moving a graphical object, such as the avatar 102 , within the 3D world. The gaming application 412 identifies the speed (eg, pixels per second) and direction (eg, a particular direction along the coordinate system 300 ) of traversing the avatar 102 within the 3D world. Block 502 may continue to block 504 .

블록(504)("횡단의 방향을 따라 그래픽 객체를 식별함")에서, 게임 애플리케이션(412)은 횡단의 방향을 따라 위치된 그래픽 객체를 식별하기 위하여, 아바타(102)의 횡단의 방향을 전자 게임의 설정/속성 정보와 비교한다. 예컨대, 도 1a 및 3에서, 그래픽 객체는 게임 애플리케이션(412)이 아바타(102)의 횡단의 방향을 따라 위치되도록 결정하는 좌표계(300)의 좌표를 갖는 나무 줄기(120) 또는 벽(122)일 수 있다. 블록(504)은 블록(506)으로 이어질 수 있다.At block 504 (“Identify graphical object along direction of traversal”), game application 412 electronically determines the direction of traversal of avatar 102 to identify graphical objects located along direction of traverse. Compare with setting/property information of game. For example, in FIGS. 1A and 3 , the graphical object is a tree trunk 120 or wall 122 having coordinates in a coordinate system 300 that determines that the game application 412 is positioned along the direction of traversal of the avatar 102 . can Block 504 may be followed by block 506 .

블록(506)("그래픽 객체가 임계 레벨보다 크게 아바타를 오클루딩하는가?")에서, 게임 애플리케이션(412)은 그래픽 객체가 현재 카메라 뷰에서 아바타(102)를 오클루딩할 것인지, 그렇다면, 어느 정도인지 결정한다. 예컨대, 게임 애플리케이션(412)은 그래픽 객체가 현재 카메라 뷰에서 아바타(102)를 오클루딩하도록, 아바타(102)가 그래픽 객체(도 1a 및 2a에 도시된 것과 같은) 뒤를 횡단할 것이라고 결정할 수 있다. 잠재적 오클루전이 있는 경우, 게임 애플리케이션(412)은 임계 레벨에 대한 오클루전의 레벨을 참조함으로써 오클루전의 레벨을 결정한다.At block 506 (“Does the graphical object occlude the avatar greater than a threshold level?”), the game application 412 determines whether the graphical object will occlude the avatar 102 in the current camera view, and if so, decide how much For example, the game application 412 may determine that the avatar 102 will traverse behind the graphical object (such as shown in FIGS. 1A and 2A ) such that the graphical object occludes the avatar 102 in the current camera view. . If there is potential occlusion, the game application 412 determines the level of occlusion by referencing the level of occlusion relative to a threshold level.

예컨대, 임계 레벨은 임계 레벨이 50% 오클루전(또는 일부 다른 임계 레벨)으로 설정되는 위에서 제공된 예시에서와 같이, 양 임계값(amount threshold)일 수 있다. 50% 미만의 오클루전은 부드러운 오클루전으로 간주될 수 있고, 50%를 초과하는 오클루전은 하드 오클루전으로 간주될 수 있다. 게임 애플리케이션(412)이 비교하는 임계값은 또한 아바타의 횡단의 속도가 오클루전이 오직 짧은 지속 시간 동안 또는 상대적으로 긴 지속 시간 동안 발생하게 하는지 여부와 같은 시간 임계값일 수 있다.For example, the threshold level may be an amount threshold, as in the example provided above where the threshold level is set to 50% occlusion (or some other threshold level). An occlusion of less than 50% may be considered soft occlusion, and an occlusion greater than 50% may be considered hard occlusion. The threshold to which the gaming application 412 compares may also be a time threshold, such as whether the speed of the avatar's traversal causes occlusion to occur only for short durations or for relatively long durations.

블록(506)에서 게임 애플리케이션(412)이 임계 레벨을 초과하지 않을 것이라고 결정하면(블록(506)에서 "아니오"), 이후 게임 애플리케이션(412)은 블록(507)("기존 카메라 뷰를 유지함")에서 카메라 뷰를 변경하지 않는다. 예컨대, 카메라 뷰는 카메라 뷰로부터 그래픽 객체를 제거하는 방식으로 아바타(102)를 향해 앞으로 이동하지 않는다. 블록(507)은 블록(502)으로 이어질 수 있다.If at block 506 the gaming application 412 determines that the threshold level will not be exceeded (“No” at block 506 ), then the gaming application 412 at block 507 (“keep the existing camera view”) ) does not change the camera view. For example, the camera view does not move forward towards the avatar 102 in a way that removes the graphical object from the camera view. Block 507 may continue to block 502 .

그러나 블록(506)에서, 게임 애플리케이션(412)이 임계 레벨이 초과될 것이라고 결정하면(블록(506)에서 "예"), 게임 애플리케이션(412)은 블록(508)("카메라 뷰를 아바타를 향해 앞으로 이동함으로써, 오클루전을 피하도록 카메라 뷰를 변경함")에서 카메라 뷰를 변경한다. 예컨대, 도 2a에 도시된 바와 같이, 벽(122)이 카메라 뷰에서 제거되고 확대된 오클루딩되지 않은 아바타(102)가 카메라 뷰에서 렌더링되도록, 카메라 뷰는 벽(122)과 아바타(102) 사이의 위치로 앞으로 이동된다. 블록(508)은 블록(510)으로 이어질 수 있다.If, however, at block 506 the gaming application 412 determines that the threshold level will be exceeded (“Yes” at block 506 ), then the gaming application 412 returns at block 508 (“turn the camera view towards the avatar”). By moving forward, change the camera view in "change the camera view to avoid occlusion"). For example, as shown in FIG. 2A , the camera view is between the wall 122 and the avatar 102 , such that the wall 122 is removed from the camera view and the enlarged unassembled avatar 102 is rendered in the camera view. moved forward to a position between Block 508 may be followed by block 510 .

블록(510)("임계 레벨이 여전히 초과되는가?")에서, 게임 애플리케이션(412)은 카메라 뷰가 원래 위치로 뒤로 이동되는 경우 오클루전이 여전히 임계값 위에 남아 있을 것인지 여부를 결정한다. 예컨대, 아바타(102)가 여전히 벽(122) 뒤를 횡단하는 동안, 카메라 뷰가 이전 카메라 뷰로 돌아가면(뒤로 이동되면) 임계값은 여전히 초과되고(블록(510)에서 "예"), 따라서 게임 애플리케이션은 블록(512)("기존 카메라 뷰를 유지함")에서 기존 카메라 뷰를 변경하지 않고 유지한다. 다른 예시에서, 아바타(102)는 벽(122)을 통과했을 수 있고, 임계값을 초과하는 오클루전을 초래하는 추가 그래픽 객체를 즉시 마주칠 수 있다(블록(510)에서 또 다른 "예") - 이러한 상황에서, 게임 애플리케이션(412)은 카메라 뷰를 아바타(102)로부터 멀어지게 뒤로 이동시키는 것보다, 카메라 뷰에서 추가 그래픽 객체를 제외하기 위하여, 기존 카메라 뷰를 계속 유지한다. 블록(512)은 블록(510)으로 이어질 수 있다.At block 510 (“Is the threshold level still exceeded?”), the game application 412 determines whether occlusion will still remain above the threshold if the camera view is moved back to its original position. For example, if the camera view returns to the previous camera view (moved back) while the avatar 102 is still traversing behind the wall 122 , the threshold is still exceeded (“Yes” at block 510 ), and thus the game application keeps the existing camera view unchanged at block 512 (“keep the existing camera view”). In another example, the avatar 102 may have passed through the wall 122 and may immediately encounter additional graphical objects that result in occlusion exceeding a threshold (another “Yes” at block 510 ). ) - In this situation, the game application 412 retains the existing camera view, in order to exclude additional graphical objects from the camera view, rather than moving the camera view back away from the avatar 102 . Block 512 may be followed by block 510 .

그러나 블록(510)에서, 오클루전에 대한 임계 레벨이 더 이상 초과되지 않으면(블록(510)에서 "아니오"), 이후 카메라 뷰는 블록(514)("카메라 뷰를 아바타로부터 멀어지게 뒤로 이동함으로써, 이전 카메라 뷰로 돌아감")에서 아바타(102)로부터 멀어지게 뒤로 이동하기 위하여 다시 변경될 수 있다. 예컨대, 아바타(102)는 이제 벽(122)을 통과했을 수 있고, 그래픽 객체가 없거나 그래픽 객체가 존재하지만 오클루전에 대한 임계 레벨을 충족하지 않을 경로를 따라 횡단하고 있다. 이 상황에서, 카메라 뷰는 카메라 뷰가 아바타(102)를 향해 앞으로 이동하지 않는 이전 위치로 되돌아갈 수 있다.However, at block 510 , if the threshold level for occlusion is no longer exceeded (“NO” at block 510 ), then the camera view is displayed at block 514 (“by moving the camera view back away from the avatar”). , back to previous camera view") can be changed back to move back away from the avatar 102 . For example, the avatar 102 may now have passed through the wall 122 and is traversing along a path where there is no graphical object or a graphical object is present but will not satisfy the threshold level for occlusion. In this situation, the camera view may return to a previous position where the camera view did not move forward towards the avatar 102 .

방법(500)은 이후 아바타(102)의 횡단의 속도 및 방향을 계속 모니터링하기 위해 블록(502)으로 돌아간다. 방법(500)은 아바타(102)가 3D 세계를 통해 계속 이동함에 따라 반복될 수 있다.The method 500 then returns to block 502 to continue monitoring the speed and direction of traversing of the avatar 102 . Method 500 may be repeated as avatar 102 continues to move through the 3D world.

도 6은 여기에서 설명된 하나 이상의 특징을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치(600)의 블록도이다. 도 4의 클라이언트 장치(410 및 416) 및/또는 게이밍 플랫폼(402)은 도 6의 컴퓨팅 장치(600)의 형태로 제공될 수 있다. 일 예시에서, 컴퓨팅 장치(600)는 여기에서 설명된 방법을 수행하는 데 사용될 수 있다. 컴퓨팅 장치(600)는 임의의 적합한 컴퓨터 시스템, 서버, 또는 다른 전자 또는 하드웨어 장치일 수 있다. 예컨대, 컴퓨팅 장치(600)는 메인프레임 컴퓨터, 데스크톱 컴퓨터, 워크스테이션, 휴대용 컴퓨터, 또는 전자 장치(휴대용 장치, 모바일 장치, 휴대 전화, 스마트폰, 태블릿 컴퓨터, 텔레비전, TV 셋톱 박스, PDA(personal digital assistant), 미디어 플레이어, 게임 장치, 웨어러블 장치 등)일 수 있다. 일부 구현에서, 장치(600)는 프로세서(602), 메모리(604), 입력/출력(I/O) 인터페이스(606) 및 오디오/비디오 입력/출력 장치(614)를 포함한다.6 is a block diagram of an example computing device 600 that may be used to implement one or more features described herein. The client devices 410 and 416 of FIG. 4 and/or the gaming platform 402 may be provided in the form of the computing device 600 of FIG. 6 . In one example, computing device 600 may be used to perform the methods described herein. Computing device 600 may be any suitable computer system, server, or other electronic or hardware device. For example, computing device 600 may be a mainframe computer, desktop computer, workstation, portable computer, or electronic device (portable device, mobile device, cell phone, smartphone, tablet computer, television, TV set-top box, personal digital assistant (PDA)). assistant), media player, game device, wearable device, etc.). In some implementations, device 600 includes a processor 602 , a memory 604 , an input/output (I/O) interface 606 , and an audio/video input/output device 614 .

프로세서(602)는 프로그램 코드를 실행하고, 컴퓨팅 장치(600)의 기본 동작을 제어하기 위한 하나 이상의 프로세서 및/또는 프로세싱 회로일 수 있다. "프로세서"는 데이터, 신호 또는 기타 정보를 프로세싱하는 임의의 적합한 하드웨어 및/또는 소프트웨어 시스템, 메커니즘 또는 컴포넌트를 포함한다. 프로세서는 범용 CPU(central processing unit), 다중 프로세싱 유닛, 기능을 달성하기 위한 전용 회로(dedicated circuitry)를 갖는 시스템 또는 다른 시스템을 포함할 수 있다. 프로세싱은 특정 지리적 위치에 제한되거나, 시간적 제한이 있을 필요는 없다. 예컨대, 프로세서는 "실시간", "오프라인", "배치 모드(batch mode)" 등으로 그 기능을 수행할 수 있다. 프로세싱의 일부는 상이한(또는 동일한) 프로세싱 시스템에 의해, 상이한 시간 및 상이한 위치에서 수행될 수 있다. 컴퓨터는 메모리와 통신하는 임의의 프로세서일 수 있다.Processor 602 may be one or more processors and/or processing circuitry for executing program code and controlling basic operations of computing device 600 . “Processor” includes any suitable hardware and/or software system, mechanism or component that processes data, signals, or other information. A processor may include a general-purpose central processing unit (CPU), multiple processing units, systems having dedicated circuitry to accomplish the functions, or other systems. Processing need not be limited to a particular geographic location or time constrained. For example, the processor may perform its function in "real time", "offline", "batch mode", and the like. Portions of processing may be performed by different (or the same) processing systems, at different times and at different locations. A computer may be any processor in communication with a memory.

메모리(604)는 프로세서(602)에 의한 액세스를 위해 컴퓨팅 장치(600)에 제공되며, 프로세스에 의한 실행을 위한 명령어를 저장하는 데 적합하고 프로세서(602)와 분리되어 위치되고, 그리고/또는 그와 통합된 임의의 적합한 프로세서 판독가능 저장 매체, 예컨대, RAM(random access memory), ROM(read-only memory), EEPROM(electrical erasable read-only memory), 플래시 메모리 등일 수 있다. 메모리(604)는 프로세서(602)에 의해 컴퓨팅 장치(600) 상에서 실행 가능한 소프트웨어를 저장할 수 있고, 운영 체제(608), 하나 이상의 애플리케이션(610) 및 그 관련 데이터(612)를 포함한다. 애플리케이션(610)은 게임 애플리케이션(412/420) 또는 게임 엔진(404)을 구현하는 데 사용될 수 있다. 일부 구현에서, 애플리케이션(610)은 프로세서(602)에 의한 실행에 응답하여, 프로세서(602)가 카메라 뷰를 변경할지 여부를 결정하고, 이후 그에 따라 카메라 뷰를 변경하는 것과 관련하여, 여기에서 설명된 동작의 수행을 제어 또는 수행할 수 있도록 하는 명령어를 포함할 수 있다.Memory 604 is provided in computing device 600 for access by processor 602 , suitable for storing instructions for execution by the process, and located separately from processor 602 , and/or its It may be any suitable processor-readable storage medium integrated with the processor, such as random access memory (RAM), read-only memory (ROM), electrical erasable read-only memory (EEPROM), flash memory, and the like. Memory 604 may store software executable on computing device 600 by processor 602 , and includes an operating system 608 , one or more applications 610 , and associated data 612 . Application 610 may be used to implement game application 412 / 420 or game engine 404 . In some implementations, the application 610 , in response to execution by the processor 602 , determines whether the processor 602 changes the camera view, and thereafter changes the camera view accordingly, as described herein It may include a command to control or perform the performed operation.

메모리(604)에서 소프트웨어 중 임의의 것은 대안적으로 임의의 다른 적합한 저장 위치 또는 컴퓨터 판독가능 매체에 저장될 수 있다. 또한, 메모리(604)(및/또는 다른 연결된 스토리지 장치(들))는 여기에서 설명된 특징에 사용된 명령어 및 데이터를 저장할 수 있다. 메모리(604) 및 임의의 다른 유형의 스토리지(자기 디스크, 광 디스크, 자기 테이프 또는 기타 실감 매체(tangible media))는 "스토리지" 또는 "스토리지 장치"로 간주될 수 있다.Any of the software in memory 604 may alternatively be stored in any other suitable storage location or computer readable medium. In addition, memory 604 (and/or other attached storage device(s)) may store instructions and data used in the features described herein. Memory 604 and any other type of storage (magnetic disk, optical disk, magnetic tape, or other tangible media) may be considered "storage" or "storage device."

I/O 인터페이스(606)는 컴퓨팅 장치(600)를 다른 시스템 및 장치와 인터페이스할 수 있도록 하는 기능을 제공할 수 있다. 예컨대, 네트워크 통신 장치, 스토리지 장치 및 입력/출력 장치는 I/O 인터페이스(606)를 통해 컴퓨팅 장치(600)와 통신할 수 있다. 일부 구현에서, I/O 인터페이스(606)는 적어도 하나의 오디오/비디오 입력/출력 장치(614)로서 집합적으로 도시되는, 입력 장치(키보드, 포인팅 장치, 터치스크린, 마이크로폰, 카메라, 스캐너 등) 및/또는 출력 장치(디스플레이 장치, 스피커 장치, 프린터, 모터 등)을 포함하는 인터페이스 장치에 연결될 수 있다.The I/O interface 606 may provide functionality that enables the computing device 600 to interface with other systems and devices. For example, network communication devices, storage devices, and input/output devices may communicate with computing device 600 via I/O interface 606 . In some implementations, I/O interface 606 is an input device (keyboard, pointing device, touchscreen, microphone, camera, scanner, etc.), collectively shown as at least one audio/video input/output device 614 . and/or an interface device including an output device (display device, speaker device, printer, motor, etc.).

오디오/비디오 입력/출력 장치(614)는 입력으로 오디오 메시지를 수신하는 데 사용될 수 있는 오디오 입력 장치(예컨대, 마이크로폰 등), 오디오 출력 장치(예컨대, 스피커, 헤드폰 등) 및/또는 디스플레이 장치를 포함할 수 있고, 이는 전술한 예시적인 카메라 뷰와 같은, 그래픽 및 시각적 출력을 제공하는 데 사용될 수 있다.Audio/video input/output devices 614 include audio input devices (eg, microphones, etc.), audio output devices (eg, speakers, headphones, etc.) and/or display devices that may be used to receive audio messages as inputs. , which can be used to provide graphical and visual output, such as the example camera view described above.

설명의 편의를 위해, 도 6은 프로세서(602), 메모리(604), I/O 인터페이스(606) 및 애플리케이션(610) 등의 각각에 대해 하나의 블록을 도시한다. 이들 블록은 하나 이상의 프로세서 또는 프로세싱 회로, 운영 체제, 메모리, I/O 인터페이스, 애플리케이션 및/또는 소프트웨어 모듈을 표현할 수 있다. 다른 구현에서, 장치(600)는 도시된 컴포넌트들 모두를 갖지 않을 수 있고, 그리고/또는 여기에서 도시된 것들 대신에 또는 이에 추가하여 다른 유형의 요소를 포함하는 다른 요소를 가질 수 있다.For convenience of explanation, FIG. 6 shows one block for each of the processor 602 , the memory 604 , the I/O interface 606 , and the application 610 . These blocks may represent one or more processors or processing circuits, operating systems, memory, I/O interfaces, applications, and/or software modules. In other implementations, device 600 may not have all of the components shown, and/or may have other elements that include other types of elements instead of or in addition to those shown herein.

사용자 장치는 또한 여기에서 설명된 특징을 구현 및/또는 사용할 수 있다. 예시적인 사용자 장치는 컴퓨팅 장치(600)와 일부 유사한 컴포넌트, 예컨대, 프로세서(들)(602), 메모리(604) 및 I/O 인터페이스(606)를 포함하는 컴퓨터 장치일 수 있다. 클라이언트 장치에 적합한 운영 체제, 소프트웨어 및 애플리케이션은 메모리에 제공되고, 프로세서에 의해 사용될 수 있다. 클라이언트 장치를 위한 I/O 인터페이스는 네트워크 통신 장치뿐만 아니라, 입력 및 출력 장치, 예컨대, 사운드를 캡처하기 위한 마이크로폰, 이미지 또는 비디오를 캡처하기 위한 카메라, 소리를 출력하기 위한 오디오 스피커 장치, 이미지 또는 비디오를 출력하기 위한 디스플레이 장치, 또는 기타 출력 장치에 연결될 수 있다. 예컨대, 오디오/비디오 입력/출력 장치(614) 내의 디스플레이 장치는 장치(600)에 연결(또는 포함)되어, 여기에서 설명된 바와 같은 이미지 전처리 및 후처리(images pre- and post-processing)를 디스플레이할 수 있으며, 여기에서 이러한 디스플레이 장치는 임의의 적합한 디스플레이 장치, 예컨대, LCD, LED 또는 플라즈마 디스플레이 스크린, CRT, 텔레비전, 모니터, 터치스크린, 3-D 디스플레이 스크린, 프로젝터, 또는 기타 시각적 디스플레이 장치를 포함할 수 있다. 일부 구현은 오디오 출력 장치, 예컨대, 텍스트를 말하는 음성 출력 또는 합성을 제공할 수 있다.User devices may also implement and/or use features described herein. An example user device may be a computer device that includes some similar components to computing device 600 , such as processor(s) 602 , memory 604 , and I/O interface 606 . An operating system, software and applications suitable for the client device may be provided in memory and used by the processor. I/O interfaces for client devices include network communication devices, as well as input and output devices, such as a microphone for capturing sound, a camera for capturing images or video, an audio speaker device for outputting sound, images or video It may be connected to a display device for outputting , or other output devices. For example, a display device within audio/video input/output device 614 may be coupled to (or included) with device 600 to display images pre- and post-processing as described herein. wherein such display device includes any suitable display device, such as an LCD, LED or plasma display screen, CRT, television, monitor, touchscreen, 3-D display screen, projector, or other visual display device. can do. Some implementations may provide audio output devices, such as speech output or synthesis to speak text.

여기에서 설명된 하나 이상의 방법(예컨대, 방법(500))은 컴퓨터에서 실행될 수 있는 컴퓨터 프로그램 명령어 또는 코드에 의해 구현될 수 있다. 예컨대, 코드는 하나 이상의 디지털 프로세서(예컨대, 마이크로프로세서 또는 다른 프로세싱 회로)에 의해 구현될 수 있고, 비일시적 컴퓨터 판독가능 매체(예컨대, 저장 매체), 예컨대, 반도체 또는 솔리드 스테이트 메모리를 포함하는, 자기, 광학, 전자기 또는 반도체 저장 매체, 자기 테이프, 이동식 컴퓨터 디스켓(removable computer diskette), RAM(random access memory), ROM(read-only memory), 플래시 메모리, 강자성 디스크(rigid magnetic disk), 광 디스크, 솔리드 스테이트 메모리 드라이브 등을 포함하는, 컴퓨터 프로그램 제품에 저장될 수 있다. 프로그램 명령어는 예컨대, 서버(예컨대, 분산 시스템 및/또는 클라우드 컴퓨팅 시스템)로부터 전달되는 SaaS(software as a service)의 형태에서, 전자 신호에 포함되고, 제공될 수도 있다. 대안적으로, 하나 이상의 방법은 하드웨어(논리 게이트 등), 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 예시적인 하드웨어는 프로그래밍 가능한 프로세서(예컨대, FPGA(field-programmable gate array), 복합 프로그래밍 가능 논리 소자(complex programmable logic device)), 범용 프로세서, 그래픽 프로세서, ASIC(application specific integrated circuit) 등일 수 있다. 하나 이상의 방법은 시스템에서 실행되는 애플리케이션의 일부 또는 컴포넌트, 또는 다른 애플리케이션 및 운영 체제와 함께 실행되는 애플리케이션 또는 소프트웨어로 수행될 수 있다.One or more methods (eg, method 500 ) described herein may be implemented by computer program instructions or code that may be executed on a computer. For example, the code may be implemented by one or more digital processors (eg, microprocessors or other processing circuitry) and may be magnetic, including non-transitory computer-readable media (eg, storage media) such as semiconductors or solid state memory. , optical, electromagnetic or semiconductor storage media, magnetic tape, removable computer diskette, random access memory (RAM), read-only memory (ROM), flash memory, rigid magnetic disk, optical disk, may be stored in a computer program product, including a solid state memory drive and the like. The program instructions may be included and provided in an electronic signal, for example, in the form of software as a service (SaaS) delivered from a server (eg, a distributed system and/or a cloud computing system). Alternatively, one or more methods may be implemented in hardware (such as logic gates), or a combination of hardware and software. Exemplary hardware may be a programmable processor (eg, a field-programmable gate array (FPGA), a complex programmable logic device), a general-purpose processor, a graphics processor, an application specific integrated circuit (ASIC), or the like. One or more methods may be performed as part or component of an application running on a system, or as an application or software running in conjunction with other applications and operating systems.

여기에서 설명된 하나 이상의 방법은 임의의 유형의 컴퓨팅 장치에서 실행될 수 있는 자립형 프로그램(standalone program), 웹 브라우저에서 실행되는 프로그램, 모바일 컴퓨팅 장치(예컨대, 휴대 전화, 스마트폰, 태블릿 컴퓨터, 웨어러블 장치(손목시계, 암 밴드, 보석, 모자, 고글, 안경 등), 랩톱 컴퓨터 등)에서 실행되는 모바일 애플리케이션("앱")에서 실행될 수 있다. 일 예시에서, 클라이언트/서버 아키텍처가 사용될 수 있으며, 예컨대, (클라이언트 장치로서) 모바일 컴퓨팅 장치는 사용자 입력 데이터를 서버 장치로 전송하고, 서버로부터 출력을 위한(예컨대, 디스플레이를 위한) 최종 출력 데이터를 수신한다. 다른 예시에서, 모든 계산은 모바일 컴퓨팅 장치의 모바일 앱(및/또는 다른 앱) 내에서 수행될 수 있다. 다른 예시에서, 계산은 모바일 컴퓨팅 장치와 하나 이상의 서버 장치 사이에서 분할될 수 있다.One or more methods described herein can be implemented as a standalone program that can run on any type of computing device, a program running on a web browser, a mobile computing device (e.g., a cell phone, smart phone, tablet computer, wearable device) Wristwatches, armbands, jewelry, hats, goggles, eyeglasses, etc.), laptop computers, etc.) may run in a mobile application ("App"). In one example, a client/server architecture may be used, eg, a mobile computing device (as a client device) sends user input data to a server device and final output data for output (eg, for display) from the server. receive In another example, all calculations may be performed within a mobile app (and/or other app) of the mobile computing device. In another example, the computation may be split between the mobile computing device and one or more server devices.

설명이 그 특정 구현과 관련하여 설명되었지만, 이러한 특정 구현은 단지 예시적이며 제한적이지 않는다. 예시에 설명된 개념은 다른 예시 및 구현에 적용될 수 있다.Although the description has been described in terms of its specific implementation, this specific implementation is illustrative only and not restrictive. Concepts described in the examples may be applied to other examples and implementations.

본 개시에 설명된 기능 블록, 동작, 특징, 방법, 장치 및 시스템은 당업자에게 알려진 바와 같이 시스템, 장치 및 기능 블록의 상이한 조합으로 통합되거나 분할될 수 있음에 유의한다. 임의의 적합한 프로그래밍 언어 및 프로그래밍 기법이 특정 구현의 루틴을 구현하는 데 사용될 수 있다. 상이한 프로그래밍 기법, 예컨대, 절차적 또는 객체 지향(procedural or object-oriented)이 이용될 수 있다. 루틴은 단일 프로세싱 장치 또는 다중 프로세서에서 실행할 수 있다. 단계, 동작 또는 계산이 특정 순서로 제시될 수 있지만, 순서는 상이한 특정 구현에서 변경될 수 있다. 일부 구현에서, 본 명세서에서 순차적으로 도시된 복수의 단계 또는 동작은 동시에 수행될 수 있다.Note that the functional blocks, operations, features, methods, apparatus, and systems described in this disclosure may be integrated or divided into different combinations of systems, apparatuses, and functional blocks, as known to those skilled in the art. Any suitable programming language and programming technique may be used to implement the routines of the particular implementation. Different programming techniques may be used, such as procedural or object-oriented. A routine may execute on a single processing unit or on multiple processors. Although steps, acts, or calculations may be presented in a particular order, the order may be changed in different particular implementations. In some implementations, a plurality of steps or actions shown sequentially herein may be performed concurrently.

Claims (20)

전자 게임에서 렌더링된 3차원(3D) 세계의 카메라 뷰를 변경하기 위한 방법에 있어서,
상기 3D 세계에서 렌더링된 제1 그래픽 객체의 횡단(traversal)의 속도 및 방향을 결정하는 단계;
상기 횡단의 방향을 따라 위치된 제2 그래픽 객체를 식별하는 단계;
상기 횡단의 방향을 따르는 상기 제1 그래픽 객체의 횡단 동안 상기 제2 그래픽 객체가 적어도 임계 레벨만큼 현재 카메라 뷰에서 상기 제1 그래픽 객체를 오클루딩(occluding)하는지 여부를 결정하는 단계;
상기 제2 그래픽 객체에 의한 상기 제1 그래픽 객체의 오클루전(occlusion)이 적어도 상기 임계 레벨을 초과한다는 결정에 응답하여, 상기 카메라 뷰를 상기 제1 그래픽 객체를 향해 앞으로 이동함으로써, 상기 제2 그래픽 객체에 의한 오클루전을 피하도록 상기 제1 그래픽 객체의 상기 현재 카메라 뷰를 변경하는 단계; 및
상기 제2 그래픽 객체에 의한 오클루전이 상기 임계 레벨 미만이라는 결정에 응답하여, 상기 현재 카메라 뷰를 유지하는 단계
를 포함하고,
상기 제2 그래픽 객체가 상기 현재 카메라 뷰에서 상기 제1 그래픽 객체를 볼 수 있는 적어도 반투명한 그래픽 객체인 경우, 상기 제2 그래픽 객체에 의한 오클루전은 상기 임계 레벨 미만인 것인, 카메라 뷰를 변경하기 위한 방법.
A method for changing a camera view of a rendered three-dimensional (3D) world in an electronic game, the method comprising:
determining a speed and direction of traversal of a first graphical object rendered in the 3D world;
identifying a second graphical object located along the direction of traversing;
determining whether the second graphical object is occluding the first graphical object in a current camera view by at least a threshold level during traversal of the first graphical object along the direction of traversing;
In response to determining that occlusion of the first graphical object by the second graphical object exceeds at least the threshold level, by moving the camera view forward toward the first graphical object, the second graphical object changing the current camera view of the first graphic object to avoid occlusion by the graphic object; and
in response to determining that occlusion by the second graphical object is below the threshold level, maintaining the current camera view;
including,
If the second graphic object is at least a translucent graphic object that can see the first graphic object in the current camera view, occlusion by the second graphic object is less than the threshold level, changing the camera view how to do it.
제1항에 있어서,
상기 제1 그래픽 객체는 상기 전자 게임의 플레이어와 연관된 아바타를 포함하고, 상기 제1 그래픽 객체의 횡단의 속도 및 방향은 상기 플레이어에 의해 제어가능한 것인, 카메라 뷰를 변경하기 위한 방법.
According to claim 1,
wherein the first graphical object comprises an avatar associated with a player of the electronic game, and wherein the speed and direction of traversing of the first graphical object is controllable by the player.
제1항에 있어서,
상기 임계 레벨은 상기 제2 그래픽 객체에 의해 오클루딩되는 상기 제1 그래픽 객체의 프로파일(profile)의 양과 연관되는 것인, 카메라 뷰를 변경하기 위한 방법.
According to claim 1,
wherein the threshold level is associated with an amount of a profile of the first graphical object that is occluded by the second graphical object.
제1항에 있어서,
상기 임계 레벨은 상기 제1 그래픽 객체의 프로파일이 상기 제2 그래픽 객체에 의해 오클루딩되는 상기 횡단의 속도와 연관된 지속 시간과 연관되는 것인, 카메라 뷰를 변경하기 위한 방법.
According to claim 1,
wherein the threshold level is associated with a duration associated with the speed of the traversing over which the profile of the first graphical object is occluded by the second graphical object.
제1항에 있어서,
상기 제2 그래픽 객체에 의한 오클루전을 피하도록 상기 카메라 뷰를 상기 제1 그래픽 객체를 향해 앞으로 이동한 후, 상기 제1 그래픽 객체가 상기 횡단의 방향을 따라 상기 제2 그래픽 객체를 통과한 것에 응답하여, 상기 카메라 뷰를 상기 제1 그래픽 객체로부터 멀어지게 뒤로 이동하는 단계를 더 포함하는 카메라 뷰를 변경하기 위한 방법.
According to claim 1,
After moving the camera view forward towards the first graphic object to avoid occlusion by the second graphic object, the first graphic object passes through the second graphic object along the direction of traversal. in response, moving the camera view back away from the first graphical object.
제1항에 있어서,
상기 제1 그래픽 객체가 상기 제2 그래픽 객체 뒤에 위치하는 동안 또는 상기 제2 그래픽 객체 바로 뒤에 상기 횡단의 방향을 따라 위치되고 적어도 상기 임계 레벨만큼 상기 제1 그래픽 객체를 오클루딩하는 제3 그래픽 객체를 식별하는 것에 응답하여, 상기 제1 그래픽 객체를 향해 앞으로 이동되는 상기 카메라 뷰를 유지하는 단계를 더 포함하는 카메라 뷰를 변경하기 위한 방법.
According to claim 1,
a third graphical object positioned along the direction of traversal while the first graphical object is positioned behind the second graphical object or immediately behind the second graphical object and occludes the first graphical object by at least the threshold level in response to identifying a, maintaining the camera view moved forward towards the first graphical object.
제1항에 있어서,
상기 현재 카메라 뷰에서 상기 제1 그래픽 객체를 볼 수 있는 상기 적어도 반투명한 그래픽 객체는 상기 제1 그래픽 객체를 볼 수 있는 투명한 창을 포함하는 것인, 카메라 뷰를 변경하기 위한 방법.
According to claim 1,
wherein the at least translucent graphic object through which the first graphic object is visible in the current camera view comprises a transparent window through which the first graphic object is visible.
프로세서에 의한 실행에 응답하여, 상기 프로세서로 하여금, 동작의 수행을 제어하거나 수행하도록 하는 저장된 명령어를 갖는 비일시적 컴퓨터 판독가능 매체로서, 상기 동작은:
전자 게임의 3차원(3D) 세계에서 렌더링된 제1 그래픽 객체의 횡단의 속도 및 방향을 결정하는 것;
상기 횡단의 방향을 따라 위치된 제2 그래픽 객체를 식별하는 것;
상기 횡단의 방향을 따르는 상기 제1 그래픽 객체의 횡단 동안 상기 제2 그래픽 객체가 적어도 임계 레벨만큼 현재 카메라 뷰에서 상기 제1 그래픽 객체를 오클루딩하는지 여부를 결정하는 것;
상기 제2 그래픽 객체에 의한 상기 제1 그래픽 객체의 오클루전이 적어도 상기 임계 레벨을 초과한다는 결정에 응답하여, 상기 카메라 뷰를 상기 제1 그래픽 객체를 향해 앞으로 이동함으로써, 상기 제2 그래픽 객체에 의한 오클루전을 피하도록 상기 제1 그래픽 객체의 상기 현재 카메라 뷰를 변경하는 것; 및
상기 제2 그래픽 객체에 의한 오클루전이 상기 임계 레벨 미만이라는 결정에 응답하여, 상기 현재 카메라 뷰를 유지하는 것
을 포함하고
상기 제2 그래픽 객체가 상기 현재 카메라 뷰에서 상기 제1 그래픽 객체를 볼 수 있는 적어도 반투명한 그래픽 객체인 경우, 상기 제2 그래픽 객체에 의한 오클루전은 상기 임계 레벨 미만인 것인, 비일시적 컴퓨터 판독가능 매체
A non-transitory computer-readable medium having stored thereon instructions that, in response to execution by a processor, cause the processor to control or perform performance of an operation, the operation comprising:
determining a speed and direction of traversal of a rendered first graphical object in the three-dimensional (3D) world of the electronic game;
identifying a second graphical object located along the direction of traversing;
determining whether the second graphical object occludes the first graphical object in a current camera view by at least a threshold level during traversal of the first graphical object along the direction of traversal;
in response to determining that occlusion of the first graphical object by the second graphical object exceeds at least the threshold level, by moving the camera view forward toward the first graphical object, changing the current camera view of the first graphical object to avoid occlusion; and
in response to determining that occlusion by the second graphical object is below the threshold level, maintaining the current camera view.
includes
occlusion by the second graphical object is less than the threshold level, if the second graphical object is at least a translucent graphical object that makes the first graphical object visible in the current camera view possible medium
제8항에 있어서,
상기 제1 그래픽 객체는 상기 전자 게임의 플레이어와 연관된 아바타를 포함하고, 상기 제1 그래픽 객체의 횡단의 속도 및 방향은 상기 플레이어에 의해 제어가능한 것인, 비일시적 컴퓨터 판독가능 매체.
9. The method of claim 8,
wherein the first graphical object comprises an avatar associated with a player of the electronic game, and wherein the speed and direction of traversing of the first graphical object is controllable by the player.
제8항에 있어서,
상기 임계 레벨은 상기 제2 그래픽 객체에 의해 오클루딩되는 상기 제1 그래픽 객체의 프로파일의 양과 연관되는 것인, 비일시적 컴퓨터 판독가능 매체.
9. The method of claim 8,
and the threshold level is associated with an amount of a profile of the first graphical object that is occluded by the second graphical object.
제8항에 있어서,
상기 임계 레벨은 상기 제1 그래픽 객체의 프로파일이 상기 제2 그래픽 객체에 의해 오클루딩되는 상기 횡단의 속도와 연관된 지속 시간과 연관되는 것인, 비일시적 컴퓨터 판독가능 매체.
9. The method of claim 8,
and the threshold level is associated with a duration associated with the speed of the traversing over which the profile of the first graphical object is occluded by the second graphical object.
제8항에 있어서,
상기 동작은 상기 제2 그래픽 객체에 의한 오클루전을 피하도록 상기 카메라 뷰를 상기 제1 그래픽 객체를 향해 앞으로 이동한 후, 상기 제1 그래픽 객체가 상기 횡단의 방향을 따라 상기 제2 그래픽 객체를 통과한 것에 응답하여, 상기 카메라 뷰를 상기 제1 그래픽 객체로부터 멀어지게 뒤로 이동하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
9. The method of claim 8,
The operation is performed by moving the camera view forward toward the first graphic object to avoid occlusion by the second graphic object, and then the first graphic object moves the second graphic object along the direction of the traversal. responsive to passing through, further comprising moving the camera view back away from the first graphical object.
제8항에 있어서,
상기 동작은 상기 제1 그래픽 객체가 상기 제2 그래픽 객체 뒤에 위치하는 동안 또는 상기 제2 그래픽 객체 바로 뒤에 상기 횡단의 방향을 따라 위치되고 적어도 상기 임계 레벨만큼 상기 제1 그래픽 객체를 오클루딩하는 제3 그래픽 객체의 식별에 응답하여, 상기 제1 그래픽 객체를 향해 앞으로 이동되는 상기 카메라 뷰를 유지하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
9. The method of claim 8,
The operation comprises a second graphical object positioned along the direction of traversal while the first graphical object is positioned behind the second graphical object or immediately behind the second graphical object and occluded the first graphical object by at least the threshold level. 3 in response to identification of the graphical object, maintaining the camera view moved forward towards the first graphical object.
제8항에 있어서,
상기 현재 카메라 뷰에서 상기 제1 그래픽 객체를 볼 수 있는 상기 적어도 반투명한 그래픽 객체는 상기 제1 그래픽 객체를 볼 수 있는 투명한 창을 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
9. The method of claim 8,
wherein the at least translucent graphical object through which the first graphical object is visible in the current camera view comprises a transparent window through which the first graphical object is visible.
장치로서,
사용자 인터페이스; 및
상기 사용자 인터페이스와 저장된 게임 애플리케이션을 갖는 메모리에 결합된 프로세서
를 포함하고,
상기 게임 애플리케이션은 상기 프로세서에 의한 실행에 응답하여, 상기 프로세서로 하여금, 상기 사용자 인터페이스 상에서 전자 게임의 3차원(3D) 세계의 카메라 뷰를 표시하도록 하고, 상기 게임 애플리케이션은 상기 프로세서로 하여금, 동작의 수행을 제어하거나 수행하도록 상기 프로세서에 의해 더 실행 가능하며, 상기 동작은:
상기 3D 세계에서 렌더링된 제1 그래픽 객체의 횡단의 속도 및 방향을 결정하는 것;
상기 횡단의 방향을 따라 위치된 제2 그래픽 객체를 식별하는 것;
상기 횡단의 방향을 따르는 상기 제1 그래픽 객체의 횡단 동안 상기 제2 그래픽 객체가 적어도 임계 레벨만큼 현재 카메라 뷰에서 상기 제1 그래픽 객체를 오클루딩하는지 여부를 결정하는 것;
상기 제2 그래픽 객체에 의한 상기 제1 그래픽 객체의 오클루전이 적어도 상기 임계 레벨을 초과한다는 결정에 응답하여, 상기 카메라 뷰를 상기 제1 그래픽 객체를 향해 앞으로 이동함으로써, 상기 제2 그래픽 객체에 의한 오클루전을 피하도록 상기 제1 그래픽 객체의 상기 현재 카메라 뷰를 변경하는 것; 및
상기 제2 그래픽 객체에 의한 오클루전이 상기 임계 레벨 미만이라는 결정에 응답하여, 상기 현재 카메라 뷰를 유지하는 것
을 포함하고,
상기 제2 그래픽 객체가 상기 현재 카메라 뷰에서 상기 제1 그래픽 객체를 볼 수 있는 적어도 반투명한 그래픽 객체인 경우, 상기 제2 그래픽 객체에 의한 오클루전은 상기 임계 레벨 미만인 것인, 장치.
As a device,
user interface; and
a processor coupled to a memory having the user interface and a stored game application
including,
the game application, in response to execution by the processor, causes the processor to display a camera view of a three-dimensional (3D) world of an electronic game on the user interface, the game application causing the processor to: further executable by the processor to control or perform the operation, the operation comprising:
determining a speed and direction of traversal of a rendered first graphical object in the 3D world;
identifying a second graphical object located along the direction of traversing;
determining whether the second graphical object occludes the first graphical object in a current camera view by at least a threshold level during traversal of the first graphical object along the direction of traversal;
in response to determining that occlusion of the first graphical object by the second graphical object exceeds at least the threshold level, by moving the camera view forward toward the first graphical object, changing the current camera view of the first graphical object to avoid occlusion; and
in response to determining that occlusion by the second graphical object is below the threshold level, maintaining the current camera view.
including,
If the second graphic object is at least a translucent graphic object that can see the first graphic object in the current camera view, occlusion by the second graphic object is less than the threshold level.
제15항에 있어서,
상기 제1 그래픽 객체는 상기 전자 게임의 플레이어와 연관된 아바타를 포함하고, 상기 제1 그래픽 객체의 횡단의 속도 및 방향은 상기 플레이어에 의해 제어가능한 것인, 장치.
16. The method of claim 15,
wherein the first graphical object comprises an avatar associated with a player of the electronic game, and wherein the speed and direction of traversing of the first graphical object is controllable by the player.
제15항에 있어서,
상기 임계 레벨은 상기 제2 그래픽 객체에 의해 오클루딩되는 상기 제1 그래픽 객체의 프로파일의 양과 연관되는 것인, 장치.
16. The method of claim 15,
and the threshold level is associated with an amount of a profile of the first graphical object that is occluded by the second graphical object.
제15항에 있어서,
상기 임계 레벨은 상기 제1 그래픽 객체의 프로파일이 상기 제2 그래픽 객체에 의해 오클루딩되는 상기 횡단의 속도와 연관된 지속 시간과 연관되는 것인, 장치.
16. The method of claim 15,
wherein the threshold level is associated with a duration associated with the speed of the traversal over which the profile of the first graphical object is occluded by the second graphical object.
제15항에 있어서,
상기 제2 그래픽 객체에 의한 오클루전을 피하도록 상기 카메라 뷰를 상기 제1 그래픽 객체를 향해 앞으로 이동한 후, 상기 게임 애플리케이션은 상기 프로세서로 하여금,
상기 제1 그래픽 객체가 상기 횡단의 방향을 따라 상기 제2 그래픽 객체를 통과한 것에 응답하여, 상기 카메라 뷰를 상기 제1 그래픽 객체로부터 멀어지게 뒤로 이동하는 것의 수행을 제어하거나 수행하도록 상기 프로세서에 의해 더 실행 가능한 것인, 장치.
16. The method of claim 15,
After moving the camera view forward towards the first graphic object to avoid occlusion by the second graphic object, the game application causes the processor to:
by the processor, in response to the first graphical object passing the second graphical object along the direction of the traversal, to control or perform an action of moving the camera view back away from the first graphical object; The more feasible one, the device.
제15항에 있어서,
상기 게임 애플리케이션은 상기 프로세서로 하여금,
상기 제1 그래픽 객체가 상기 제2 그래픽 객체 뒤에 위치하는 동안 또는 상기 제2 그래픽 객체 바로 뒤에 상기 횡단의 방향을 따라 위치되고 적어도 상기 임계 레벨만큼 상기 제1 그래픽 객체를 오클루딩하는 제3 그래픽 객체의 식별에 응답하여, 상기 제1 그래픽 객체를 향해 앞으로 이동되는 상기 카메라 뷰를 유지하는 것의 수행을 제어하거나 수행하도록 상기 프로세서에 의해 더 실행 가능한 것인, 장치.
16. The method of claim 15,
The game application causes the processor to
a third graphical object positioned along the direction of traversal while the first graphical object is positioned behind the second graphical object or immediately behind the second graphical object and occludes the first graphical object by at least the threshold level responsive to the identification of: control or perform performing of maintaining the camera view moved forward towards the first graphical object.
KR1020227003493A 2019-08-06 2019-09-17 Changing Camera View in Electronic Games KR102396060B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/533,350 2019-08-06
US16/533,350 US10967267B2 (en) 2019-08-06 2019-08-06 Changing a camera view in an electronic game
PCT/US2019/051518 WO2021025709A1 (en) 2019-08-06 2019-09-17 Changing a camera view in an electronic game

Publications (2)

Publication Number Publication Date
KR20220017536A KR20220017536A (en) 2022-02-11
KR102396060B1 true KR102396060B1 (en) 2022-05-10

Family

ID=74499486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227003493A KR102396060B1 (en) 2019-08-06 2019-09-17 Changing Camera View in Electronic Games

Country Status (6)

Country Link
US (1) US10967267B2 (en)
EP (1) EP4010095A4 (en)
JP (1) JP7335421B2 (en)
KR (1) KR102396060B1 (en)
CN (1) CN114269442A (en)
WO (1) WO2021025709A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180276874A1 (en) 2017-03-17 2018-09-27 Unity IPR ApS Method and system for automated camera collision and composition preservation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003334380A (en) 2002-05-20 2003-11-25 Konami Computer Entertainment Japan Inc Virtual camera position control program for three- dimensional game
JP4242318B2 (en) 2004-04-26 2009-03-25 任天堂株式会社 3D image generation apparatus and 3D image generation program
JP2014235596A (en) 2013-06-03 2014-12-15 任天堂株式会社 Information processing program, information processing system, information processing device, and information processing method
US20170345206A1 (en) * 2016-05-27 2017-11-30 Intel Corporation Occlusion query apparatus and method for accelerated rendering
US9972122B1 (en) * 2016-12-20 2018-05-15 Canon Kabushiki Kaisha Method and system for rendering an object in a virtual view
JP6681352B2 (en) 2017-01-06 2020-04-15 任天堂株式会社 Information processing system, information processing program, information processing device, information processing method, game system, game program, game device, and game method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180276874A1 (en) 2017-03-17 2018-09-27 Unity IPR ApS Method and system for automated camera collision and composition preservation

Also Published As

Publication number Publication date
US10967267B2 (en) 2021-04-06
EP4010095A4 (en) 2023-08-16
KR20220017536A (en) 2022-02-11
JP7335421B2 (en) 2023-08-29
CN114269442A (en) 2022-04-01
US20210038985A1 (en) 2021-02-11
WO2021025709A1 (en) 2021-02-11
EP4010095A1 (en) 2022-06-15
JP2022543440A (en) 2022-10-12

Similar Documents

Publication Publication Date Title
KR102441514B1 (en) Hybrid streaming
KR102374307B1 (en) Modification of animated characters
CN113286641A (en) Voice communication system of online game platform
US20230017111A1 (en) Spatialized audio chat in a virtual metaverse
US11645805B2 (en) Animated faces using texture manipulation
KR20230148239A (en) Robust facial animation from video using neural networks
US20240004529A1 (en) Metaverse event sequencing
KR102396060B1 (en) Changing Camera View in Electronic Games
US20240086050A1 (en) Computer-assisted graphical development tools
US20240062456A1 (en) Variable update adaptation and simulation delay in multiuser virtual reality application
CN116917957A (en) Robust video facial animation based on neural network

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant