KR102656970B1 - 가상 객체 선택 방법 및 장치, 디바이스, 및 저장 매체 - Google Patents
가상 객체 선택 방법 및 장치, 디바이스, 및 저장 매체 Download PDFInfo
- Publication number
- KR102656970B1 KR102656970B1 KR1020217035807A KR20217035807A KR102656970B1 KR 102656970 B1 KR102656970 B1 KR 102656970B1 KR 1020217035807 A KR1020217035807 A KR 1020217035807A KR 20217035807 A KR20217035807 A KR 20217035807A KR 102656970 B1 KR102656970 B1 KR 102656970B1
- Authority
- KR
- South Korea
- Prior art keywords
- virtual object
- virtual
- offset
- ith
- distance
- Prior art date
Links
- 238000010187 selection method Methods 0.000 title claims abstract description 17
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 42
- 230000000694 effects Effects 0.000 claims description 58
- 230000008859 change Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000009471 action Effects 0.000 description 47
- 230000000875 corresponding effect Effects 0.000 description 43
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000001846 repelling effect Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 6
- 241001465754 Metazoa Species 0.000 description 5
- 230000035945 sensitivity Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000005266 casting Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/214—Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
- A63F13/2145—Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
- A63F13/422—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle automatically for the purpose of assisting the player, e.g. automatic braking in a driving game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
- A63F13/426—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving on-screen location information, e.g. screen coordinates of an area at which the player is aiming with a light gun
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/837—Shooting of targets
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/90—Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
- A63F13/92—Video game devices specially adapted to be hand-held while playing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/10—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
- A63F2300/1068—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being specially adapted to detect the point of contact of the player on a surface, e.g. floor mat, touch pad
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/30—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
- A63F2300/308—Details of the user interface
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/807—Role playing or strategy games
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
본 개시는 컴퓨터 및 인터넷 기술들의 분야에 속하는 가상 객체 선택 방법 및 장치, 단말기, 및 저장 매체를 개시한다. 방법은: 가상 환경에 대응하는 디스플레이 픽처 및 가상 환경에 위치한 제1 가상 객체를 포함하는 사용자 인터페이스를 디스플레이하는 단계; 가상 환경에서 제1 가상 객체의 제1 동작의 실행 범위를 획득하는 단계; 실행 범위에서의 복수의 제2 가상 객체의 밀도가 제1 조건을 충족시키는 것에 응답하여, 복수의 제2 가상 객체에서의 적어도 하나의 제2 가상 객체의 논리 위치를 오프셋하여, 적어도 하나의 제2 가상 객체의 오프셋 논리 위치를 획득하는 단계; 및 적어도 하나의 제2 가상 객체의 오프셋 논리 위치에 기초하여 복수의 제2 가상 객체로부터 제1 동작에 대응하는 타깃 가상 객체를 선택하는 단계를 포함한다.
Description
관련 출원
본 개시는 2020년 6월 5일자로 중국 지적 재산권 관리국(China National Intellectual Property Administration)에 출원된, 발명의 명칭이 "VIRTUAL OBJECT SELECTION METHOD AND APPARATUS, DEVICE, AND STORAGE MEDIUM"인 중국 특허 출원 제202010507561.6호에 대한 우선권을 주장하고, 그 전체 내용이 참조로서 본 명세서에 포함된다.
분야
본 개시의 실시예들은 컴퓨터 및 인터넷 기술 분야에 관한 것으로, 특히, 가상 객체 선택 방법 및 장치, 디바이스, 및 저장 매체에 관한 것이다.
MOBA(multiplayer online battle arena) 게임에서, 사용자는 가상 환경에서 사용자에 대응하는 가상 객체를 제어하기 위해 MOBA 게임의 클라이언트에 로그인할 수 있다.
관련 기술에서, 사용자는 특정 스킬을 캐스팅(cast)하기 위해 사용자에 대응하는 가상 객체를 제어할 수 있고, 스킬은 가상 환경에서 타깃 가상 객체에 대한 손상과 같은 효과를 생성할 수 있다. 관련 기술에서, 클라이언트에 의해 디스플레이된 사용자 인터페이스에서, 각각의 스킬은 동작 버튼에 대응하고, 사용자는 동작 버튼을 터치함으로써 타깃 가상 객체를 능동적으로 선택할 수 있다. 예를 들어, 사용자는 동작 버튼을 터치함으로써 스킬의 실행 범위를 결정할 수 있고, 그 후 클라이언트는 규칙에 따라 스킬의 실행 범위로부터 타깃 가상 객체를 선택하고 스킬을 캐스팅한다.
본 개시의 실시예는 가상 객체 선택 방법을 제공하며, 이 방법은 다음을 포함한다:
가상 환경에 대응하는 이미지 및 가상 환경에 위치한 제1 가상 객체를 포함하는 사용자 인터페이스를 디스플레이하는 단계;
가상 환경에서 제1 가상 객체의 제1 동작의 실행 범위를 획득하는 단계;
실행 범위에서 복수의 제2 가상 객체의 밀도가 제1 조건을 만족시키는 것에 기초하여, 복수의 제2 가상 객체에서의 적어도 하나의 제2 가상 객체의 논리 위치를 오프셋하여, 적어도 하나의 제2 가상 객체의 오프셋 논리 위치를 획득하는 단계- 논리 위치는 논리 계층에서 제2 가상 객체를 처리하는 데 사용되는 위치임 -; 및
적어도 하나의 제2 가상 객체의 오프셋 논리 위치에 기초하여 복수의 제2 가상 객체로부터, 제1 동작에 대응하는 것이 수행되는 타깃 가상 객체를 선택하는 단계.
본 개시의 실시예는 가상 객체 선택 장치를 추가로 제공하며, 이 장치는 다음을 포함한다:
사용자 인터페이스를 디스플레이하도록 구성된 사용자 인터페이스 디스플레이 모듈- 사용자 인터페이스는 가상 환경에 대응하는 이미지 및 가상 환경에 위치한 제1 가상 객체를 포함함 -;
가상 환경에서 제1 가상 객체의 제1 동작의 실행 범위를 획득하도록 구성된 실행 범위 획득 모듈;
실행 범위에서의 복수의 제2 가상 객체의 밀도가 제1 조건을 만족시키는 것에 기초하여, 복수의 제2 가상 객체에서의 적어도 하나의 제2 가상 객체의 논리 위치를 오프셋하여, 적어도 하나의 제2 가상 객체의 오프셋 논리 위치를 획득하도록 구성된 논리 위치 오프셋 모듈- 논리 위치는 논리 계층에서 제2 가상 객체를 처리하는 데 사용되는 위치임 -; 및
적어도 하나의 제2 가상 객체의 오프셋 논리 위치에 기초하여 복수의 제2 가상 객체로부터, 제1 동작에 대응하는 것이 수행되는 타깃 가상 객체를 선택하도록 구성된 타깃 객체 선택 모듈.
본 개시의 실시예는 프로세서 및 메모리를 포함하는 단말기를 제공하고, 메모리는 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하고, 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트는 가상 객체 선택 방법을 구현하기 위해 프로세서에 의해 로딩되고 실행된다.
본 개시의 실시예는 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트 또는 명령어 세트를 저장하는 컴퓨터 판독가능 저장 매체를 제공하고, 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트 또는 명령어 세트는 가상 객체 선택 방법을 구현하기 위해 프로세서에 의해 로딩되고 실행된다.
컴퓨터 프로그램 제품이 제공되고, 컴퓨터 프로그램 제품은 단말기 상에서 실행될 때, 단말기로 하여금 가상 객체 선택 방법을 수행하게 한다.
본 개시의 예시적인 실시예들에서의 기술적 해결책들을 보다 명확하게 설명하기 위해, 이하에서는 실시예들을 설명하는데 요구되는 첨부 도면들을 간단히 소개한다. 다음의 설명에서의 첨부 도면들은 단지 본 개시의 일부 실시예들을 도시하며, 본 기술분야의 통상의 기술자는 창의적 노력 없이도 이러한 첨부 도면들로부터 다른 첨부 도면들을 여전히 도출할 수 있다.
도 1은 본 개시의 실시예에 따른 애플리케이션 실행 환경의 개략도이다.
도 2는 본 개시의 실시예에 따른 단말기의 개략적인 구조도이다.
도 3은 본 개시의 실시예에 따른 가상 객체 선택 방법의 흐름도이다.
도 4는 본 개시의 실시예에 따른 논리 위치를 오프셋하는 것의 개략도이다.
도 5는 본 개시의 실시예에 따른 오프셋 방향을 결정하는 개략도이다.
도 6은 본 개시의 실시예에 따른 오프셋 각도를 결정하는 개략도이다.
도 7은 본 개시의 실시예에 따른 오프셋 전후의 논리 위치의 개략도이다.
도 8은 본 개시의 실시예에 따른 오프셋 프로세스의 흐름도이다.
도 9는 본 개시의 실시예에 따른 가상 객체 선택 장치의 블록도이다.
도 10은 본 개시의 다른 실시예에 따른 가상 객체 선택 장치의 블록도이다.
도 11은 본 개시의 실시예에 따른 단말기의 구조 블록도이다.
도 1은 본 개시의 실시예에 따른 애플리케이션 실행 환경의 개략도이다.
도 2는 본 개시의 실시예에 따른 단말기의 개략적인 구조도이다.
도 3은 본 개시의 실시예에 따른 가상 객체 선택 방법의 흐름도이다.
도 4는 본 개시의 실시예에 따른 논리 위치를 오프셋하는 것의 개략도이다.
도 5는 본 개시의 실시예에 따른 오프셋 방향을 결정하는 개략도이다.
도 6은 본 개시의 실시예에 따른 오프셋 각도를 결정하는 개략도이다.
도 7은 본 개시의 실시예에 따른 오프셋 전후의 논리 위치의 개략도이다.
도 8은 본 개시의 실시예에 따른 오프셋 프로세스의 흐름도이다.
도 9는 본 개시의 실시예에 따른 가상 객체 선택 장치의 블록도이다.
도 10은 본 개시의 다른 실시예에 따른 가상 객체 선택 장치의 블록도이다.
도 11은 본 개시의 실시예에 따른 단말기의 구조 블록도이다.
본 개시의 목적들, 기술적 해결책들 및 이점들을 더욱 명확하게 하기 위해, 본 개시의 구현들은 첨부 도면들을 참조하여 이하에서 더 상세히 설명된다.
관련 기술에서, 사용자가 스킬을 캐스팅하기 위해 가상 환경에서 사용자에 대응하는 가상 객체를 제어할 때, 그리고 스킬의 실행 범위에서 복수의 가상 객체가 있을 때, 사용자는 스킬의 실행 범위에서 클라이언트에 의해 선택된 타깃 가상 객체가 사용자에 의해 요구되는 타깃 가상 객체인 것을 보장하기 위해, 스킬에 대응하는 동작 버튼을 조작(예를 들어, 터치)하는데 상당한 양의 시간을 소비할 필요가 있고, 그 결과 사용자의 동작 비용의 증가를 초래한다.
본 개시의 실시예들은 사용자의 동작 시간 비용들을 감소시키고 동작 효율을 개선하기 위해 사용될 수 있는 가상 객체 선택 방법 및 장치, 단말기, 및 저장 매체를 제공한다.
도 1은 본 개시의 실시예에 따른 가상 객체 선택 방법이 적용가능한 애플리케이션 실행 환경의 개략도이다. 애플리케이션 실행 환경은 단말기(10) 및 서버(20)를 포함할 수 있다.
단말기(10)는 모바일 폰, 태블릿 컴퓨터, 게임 콘솔, 전자책 리더, 멀티미디어 플레이어, 웨어러블 디바이스, 및 개인용 컴퓨터(PC)와 같은 전자 디바이스일 수 있다. 애플리케이션의 클라이언트는 단말기(10) 상에 설치될 수 있다.
본 개시의 이 실시예에서, 애플리케이션은 가상 환경에서 움직이도록 사용자에 의해 대체되고 동작되는 가상 객체를 위한 가상 환경을 제공할 수 있는 임의의 애플리케이션일 수 있다. 애플리케이션은 게임 애플리케이션, 예를 들어, MOBA(multiplayer online battle arena) 게임, BR(battle royale) 게임, TPS(third-person shooting) 게임, FPS(first-person shooting) 게임, 또는 멀티플레이어 슈팅 생존 게임일 수 있다. 게임 애플리케이션들에 더하여, 가상 객체는 또한 사용자에게 제시될 수 있고, 다른 타입의 애플리케이션들, 예를 들어, 가상 현실(VR) 애플리케이션, 증강 현실(AR) 애플리케이션, 3차원 맵 프로그램, 군사 시뮬레이션 프로그램, 소셜 애플리케이션, 및 상호작용 엔터테인먼트 애플리케이션에서 대응하는 기능을 제공받을 수 있다. 이는 본 개시의 실시예들에 제한되지 않는다. 가상 객체의 형태 및 대응하는 기능은 상이한 애플리케이션들에 따라 변하고, 실제 요건에 따라 미리 설정될 수 있다. 이는 본 개시의 실시예들에 제한되지 않는다. 애플리케이션의 클라이언트는 단말기(10)에서 실행된다. 일부 실시예들에서, 애플리케이션은 3차원 가상 환경 엔진에 기초하여 개발된 애플리케이션이고, 예를 들어, 가상 환경 엔진은 유니티(unity) 엔진이다. 가상 환경 엔진은 3차원 가상 환경, 가상 객체, 가상 프로프 등을 구축하고, 사용자에게 더 몰입적인 게임 경험을 가져올 수 있다.
가상 환경은 애플리케이션(예를 들어, 게임 애플리케이션)의 클라이언트가 단말기 상에서 실행될 때 디스플레이되는(또는 제공되는) 장면이다. 가상 환경은 활동들(예를 들어, 게임 경쟁)을 수행하기 위해 가상 객체를 위해 생성된 장면, 예를 들어, 가상 집, 가상 섬, 가상 맵, 또는 가상 건물을 지칭한다. 가상 환경은 실제 세계의 시뮬레이션된 환경이거나, 반-시뮬레이션된 반-허구적인 환경이거나, 완전히 허구적인 환경일 수 있다. 가상 환경은 2차원 가상 환경, 2.5차원 가상 환경, 또는 3차원 가상 환경일 수 있다. 이는 본 개시의 실시예들에 제한되지 않는다.
가상 객체는 애플리케이션에서 사용자 계정에 의해 제어되는 가상 역할일 수 있거나 애플리케이션에서 컴퓨터 프로그램에 의해 제어되는 가상 역할일 수 있다. 예를 들어, 애플리케이션은 게임 애플리케이션이고, 가상 객체는 게임 애플리케이션에서 사용자 계정에 의해 제어되는 게임 역할일 수 있거나, 게임 애플리케이션에서 컴퓨터 프로그램에 의해 제어되는 게임 괴물일 수 있다. 가상 객체는 인간 형태, 동물 형태, 만화 형태, 또는 다른 형태일 수 있다. 이는 본 개시의 실시예들에 제한되지 않는다. 가상 객체는 3차원 형태 또는 2차원 형태로 제시될 수 있으며, 이는 본 개시의 실시예들에서 제한되지 않는다. 가상 환경이 3차원 가상 환경일 수 있는 경우, 가상 객체는 골격 애니메이션 기술에 기초하여 생성된 3차원 모델이다. 각각의 가상 객체는 3차원 가상 환경에서 형상 및 크기를 가지며, 3차원 가상 환경에서 일부 공간을 차지한다. 본 개시의 이 실시예에서, 단말기(10)는 가상 객체의 동작을 수신하고, 가상 환경에서의 가시 경계 범위 및 동작의 설정된 실행 범위에 따라 유효 실행 범위를 결정하고, 그 후 유효 실행 범위로부터 동작에 대응하는 타깃 가상 객체를 선택할 수 있다.
예시적인 실시예에서, 가상 객체들은 동일한 캠프에서의 가상 객체들 및 상이한 캠프들에서의 가상 객체들을 포함하는데, 즉, 애플리케이션에서, 가상 객체들은 상이한 캠프들로 분할된다. 예를 들어, MOBA 게임이 예로서 사용되고, 10명의 사용자가 게임에 대해 매칭되고 적색 팀과 청색 팀의 2개의 팀으로 분할되는데, 즉, 5명마다 한 그룹에 있다. 이 경우, 적색 팀 및 적색 팀에서의 가상 객체들은 동일한 캠프에 있고 서로 팀 동료 관계에 있고, 청색 팀 및 청색 팀에서의 가상 객체들은 동일한 캠프에 있고 서로 팀 동료 관계에 있고, 적색 팀에서의 가상 객체들 및 청색 팀에서의 가상 객체들은 상이한 캠프들에 있고 서로 적대적 관계에 있다.
서버(20)는 단말기(10)에서의 애플리케이션의 클라이언트에 백-엔드 서비스를 제공하도록 구성된다. 예를 들어, 서버(20)는 애플리케이션의 백-엔드 서버일 수 있다. 서버(20)는 하나의 서버, 복수의 서버를 포함하는 서버 클러스터, 또는 클라우드 컴퓨팅 서비스 센터일 수 있다. 서버(20)는 복수의 단말기(10)에서의 애플리케이션들에 백-엔드 서비스들을 동시에 제공하도록 구성된다.
일부 실시예들에서, 단말기(10)는 네트워크(30)를 통해 서버(20)와 통신할 수 있다. 네트워크는 유선 네트워크일 수 있거나 무선 네트워크일 수 있다. 이는 본 개시의 이 실시예에서 제한되지 않는다.
도 2는 본 개시의 실시예에 따른 단말기의 개략적인 구조도이다. 단말기(10)는 메인보드(110), 외부 출력/입력 디바이스(120), 메모리(130), 외부 인터페이스(140), 터치 시스템(150), 및 전원(160)을 포함할 수 있다.
프로세서 및 제어기와 같은 처리 요소들이 메인보드(110)에 통합된다.
일부 실시예들에서, 단말기에 대해, 외부 출력/입력 디바이스(120)는 디스플레이 컴포넌트(예를 들어, 디스플레이 스크린), 사운드 재생 컴포넌트(예를 들어, 스피커), 사운드 수집 컴포넌트(예를 들어, 마이크로폰), 다양한 버튼들 등을 포함할 수 있다. PC 단말기의 경우, 외부 출력/입력 디바이스(120)는 디스플레이 컴포넌트(예를 들어, 디스플레이 스크린), 사운드 재생 컴포넌트(예를 들어, 스피커), 사운드 수집 컴포넌트(예를 들어, 마이크로폰), 다양한 버튼들(예를 들어, 마우스 및 키보드) 등을 포함할 수 있다.
메모리(130)는 프로그램 코드 및 데이터를 저장한다.
외부 인터페이스(140)는 이어폰 인터페이스, 충전 인터페이스, 데이터 인터페이스 등을 포함할 수 있다.
터치 시스템(150)은 디스플레이 컴포넌트 또는 외부 출력/입력 디바이스(120)의 버튼들에 통합될 수 있고, 터치 시스템(150)은 디스플레이 컴포넌트 또는 버튼들에 대해 사용자에 의해 수행되는 터치 동작들을 검출하도록 구성된다.
전원(160)은 단말기(10)에서의 다른 컴포넌트들에 전력을 공급하도록 구성된다.
본 개시의 이 실시예에서, 메인보드(110)에서의 프로세서는 메모리에 저장된 프로그램 코드 및 데이터를 실행 또는 호출함으로써 사용자 인터페이스(예를 들어, 게임 인터페이스)를 생성하고, 생성된 사용자 인터페이스(예를 들어, 게임 인터페이스)를 외부 출력/입력 디바이스(120)를 사용하여 제시할 수 있다. 사용자 인터페이스(예를 들어, 게임 인터페이스)의 제시 동안, 사용자와 사용자 인터페이스(예를 들어, 게임 인터페이스) 사이의 상호작용 동안 수행되는 터치 동작이 터치 시스템(150)을 통해 검출될 수 있고, 터치 동작에 대한 응답이 이루어진다.
도 3은 본 개시의 실시예에 따른 가상 객체 선택 방법의 흐름도이다. 이 방법은 애플리케이션의 클라이언트에 적용가능하며, 예를 들어, 도 1에 도시된 애플리케이션 실행 환경에서 단말기(10)에 설치된 클라이언트(이하, "클라이언트"로서 지칭됨)에 적용가능하다. 방법은 다음의 동작들(110 내지 140)을 포함할 수 있다.
동작 110. 가상 환경에 대응하는 이미지(디스플레이 픽처) 및 가상 환경에 위치한 제1 가상 객체를 포함하는 사용자 인터페이스를 디스플레이한다.
사용자 인터페이스는 클라이언트에 의해 사용자에게 디스플레이되는 애플리케이션의 이미지를 지칭하고, 애플리케이션은 다운로드되고 설치될 필요가 있는 컴퓨터 프로그램일 수 있거나 클릭-투-유즈(click-to-use) 컴퓨터 프로그램일 수 있다. 일부 실시예들에서, 애플리케이션은 가상 환경을 제공할 수 있는 임의의 애플리케이션, 예를 들어, 게임 애플리케이션일 수 있다. 사용자 인터페이스는 가상 환경의 디스플레이 픽처를 포함한다. 디스플레이 픽처는 가상 아이템 및 가상 객체, 예를 들어, 가상 캐릭터, 가상 빌딩, 가상 환경, 및 가상 맵을 포함할 수 있다. 사용자는 가상 환경에서 가상 아이템들 또는 가상 객체들과 상호작용하도록 제1 가상 객체를 제어할 수 있다.
본 개시의 이 실시예에서, 사용자에 의해 트리거링된 애플리케이션의 시작 명령을 수신할 때, 클라이언트는 애플리케이션의 실행을 제어하고 애플리케이션에 대응하는 사용자 인터페이스를 디스플레이할 수 있다. 사용자 인터페이스는 가상 환경에 대응하는 디스플레이 이미지 및 가상 환경에서의 제1 가상 객체를 포함하고, 제1 가상 객체는 사용자에 의해 제어되는 가상 객체일 수 있다. 제1 가상 객체는 인간 형태, 동물 형태, 만화 형태, 또는 다른 형태일 수 있다. 이는 본 개시의 실시예들에 제한되지 않는다. 본 개시의 이 실시예에서, 제1 가상 객체는 3차원 형태 또는 2차원 형태로 제시될 수 있다.
동작 120. 가상 환경에서 제1 가상 객체의 제1 동작의 실행 범위를 획득한다.
제1 동작은 제1 가상 객체와 가상 환경 사이의 임의의 상호작용 동작이다. 예를 들어, 제1 동작은 제1 가상 객체의 스킬 캐스팅 동작 또는 제1 가상 객체의 정상 공격 동작이다. 상호작용 동작에 대응하는 작용 타깃(acted target)은 가상 환경에서의 가상 아이템일 수 있거나 가상 환경에서의 다른 가상 객체일 수 있다. 이는 본 개시의 이 실시예에서 제한되지 않는다.
일 예에서, 제1 동작은 사용자에 의해 제어되는 제1 가상 객체에 의해 트리거링된다. 예를 들어, 사용자는 대응하는 아이콘을 클릭하거나 대응하는 키를 누름으로써 제1 동작의 트리거 명령을 트리거링할 수 있고, 그 후 트리거 명령을 수신한 후에, 클라이언트는 제1 가상 객체를 제어하여 제1 동작을 수행한다.
다른 예에서, 제1 동작은 컴퓨터 프로그램에 의해 제어되는 제1 가상 객체에 의해 트리거링된다. 예를 들어, 애플리케이션을 실행한 후에, 클라이언트는 미리 설정된 규칙에 따라, 제1 가상 객체를 제어하여 제1 동작을 수행할 수 있다.
미리 설정된 규칙은 융통성 있게 설정될 수 있다. 예를 들어, 미리 설정된 규칙은 제1 가상 객체의 온라인 지속기간을 포함한다. 클라이언트는 제1 가상 객체의 온라인 지속기간을 검출하고, 제1 가상 객체의 온라인 지속기간이 조건을 충족시키는 경우, 제1 동작을 수행하도록 제1 가상 객체를 제어할 수 있다. 다른 예에서, 미리 설정된 규칙은 제1 가상 객체의 속성 파라미터를 포함한다. 클라이언트는 제1 가상 객체의 속성 파라미터를 검출하고, 제1 가상 객체의 하나 이상의 속성 파라미터가 조건을 충족시키는 경우, 제1 동작을 수행하도록 제1 가상 객체를 제어할 수 있다. 속성 파라미터는 수명 값, 방어 값, 공격 속도 등을 포함할 수 있다. 이는 본 개시의 이 실시예에서 제한되지 않는다. 대안적으로, 미리 설정된 규칙은 제1 가상 객체의 동작 파라미터를 포함한다. 클라이언트는 제1 가상 객체의 동작 파라미터를 검출하고, 제1 가상 객체의 동작 파라미터가 조건을 충족시키는 경우, 제1 동작을 수행하도록 제1 가상 객체를 제어할 수 있다. 동작 파라미터는 패배당한 괴물들의 수량, 스킬 캐스팅의 횟수, 아이템의 사용 수량 등일 수 있다. 이는 본 개시의 이 실시예에서 제한되지 않는다. 미리 설정된 규칙의 설명은 단지 예시적이고 설명적이다. 실제 애플리케이션에서, 미리 설정된 규칙은 실제 상황에 따라 융통성 있게 설정될 수 있다.
실행 범위는 제1 동작의 기능 범위이고, 상이한 제1 동작들에 대응하는 실행 범위들은 상이할 수 있다. 본 개시의 이 실시예에서, 사용자 인터페이스를 디스플레이한 후에, 클라이언트는 가상 환경에서 제1 가상 객체의 제1 동작의 실행 범위를 획득할 수 있다. 실행 범위의 형상은 원, 팬(fan) 형상, 직사각형, 또는 삼각형일 수 있다. 이는 본 개시의 이 실시예에서 제한되지 않는다. 일부 실시예들에서, 실행 범위는 선택된 실행 범위인데, 즉, 실행 범위의 위치는 사용자에 의해 자율적으로 선택될 수 있다.
일 예에서, 실행 범위의 반경은 미리 설정된 반경이고, 미리 설정된 반경은 설계자 또는 사용자에 의해 설정된다. 예를 들어, 실행 범위의 반경은 동작 스킬 범위 및 추가적인 범위 파라미터를 포함한다. 동작 스킬 범위는 제1 동작에 대응하는 스킬 범위이고, 추가적인 범위 파라미터는 가상 객체들이 검색될 때 동작 스킬 범위 밖에 설정되는 범위 파라미터 Y이다. 실행 범위는 동작 스킬 범위와 추가적인 범위 파라미터(스킬 범위+Y)의 합을 반경으로서 갖는 원형 영역일 수 있다. 실행 범위의 원 중심은 제1 동작의 초점이다. 사용자가 실행 범위의 위치를 자율적으로 선택할 때, 사용자는 사용자 인터페이스에서 동작 버튼을 조작(예를 들어, 터치)하고 동작 버튼을 이동시킴으로써 실행 범위의 위치를 선택할 수 있다. 사용자가 동작 버튼을 터치할 때, 클라이언트는 초기 위치(다운 위치)를 획득할 수 있고, 사용자가 동작 버튼을 드래그할 때, 클라이언트는 드래그 위치를 획득할 수 있다. 또한, 제1 동작에 대응하는 동작 버튼에 대해, 클라이언트는 동작 버튼의 최대 드래그 반경을 설정하고, 제1 동작에 대해, 클라이언트는 제1 동작의 스킬 범위를 추가로 설정하고, 길이들 사이의 비율 관계는 제1 가상 객체의 현재 위치(히어로(hero) 위치)를 참조하여 다음과 같이 획득될 수 있다: 드래그 위치 - 다운 위치| / 최대 드래그 반경 = |초점 - 히어로 위치| / 스킬 범위, 및 제1 동작의 초점의 위치는 비율 관계를 사용하여 계산될 수 있다. 길이들 사이의 비율 관계로부터, 실행 범위의 위치가 제1 가상 객체의 위치의 변화에 따라 변하는 것을 알 수 있다. 제1 가상 객체의 위치가 변할 때, 실행 범위의 원 중심의 위치도 변하고, 실행 범위의 위치도 변한다.
다른 예에서, 실행 범위의 반경은 조건 반경이고, 조건 반경은 애플리케이션의 실행 동안 상이한 조건들에 따라 변한다. 예를 들어, 반경의 크기는 제1 동작의 실행들의 수량과 양의 상관 또는 음의 상관에 있을 수 있다. 실제 애플리케이션에서, 조건은 실제 상황에 따라 융통성 있게 설정될 수 있다. 이는 본 개시의 이 실시예에서 제한되지 않는다.
본 개시의 이 실시예에서, 사용자 인터페이스를 디스플레이한 후에, 클라이언트는 실시간으로 제1 동작의 실행 범위를 획득하고, 제1 가상 객체의 위치 정보의 변화 및 사용자에 의해 터치된 제1 동작에 대응하는 동작 버튼의 변화에 따라 실행 범위의 위치를 업데이트할 수 있거나; 또는 제1 동작의 트리거 명령을 수신한 후에, 클라이언트는 제1 동작의 실행 범위를 획득할 수 있다. 이는 본 개시의 이 실시예에서 제한되지 않는다.
동작 130. 실행 범위에서의 복수의 제2 가상 객체의 밀도가 제1 조건을 만족시키는 것에 기초하여, 복수의 제2 가상 객체에서의 적어도 하나의 제2 가상 객체의 논리 위치를 오프셋하여 적어도 하나의 제2 가상 객체의 오프셋 논리 위치를 획득하고, 논리 위치는 논리 계층에서 제2 가상 객체를 처리하는 데 사용되는 위치이다.
본 개시의 이 실시예에서, 제1 동작의 실행 범위가 복수의 제2 가상 객체를 포함할 때, 클라이언트는 실행 범위에서의 복수의 제2 가상 객체(이하, 제2 가상 객체들로 지칭됨)의 밀도를 결정할 수 있고, 밀도는 제2 가상 객체들의 분포를 표시하기 위해 사용된다. 일반적으로, 밀도가 비교적 낮을 때, 제2 가상 객체들 사이의 거리들은 비교적 크고, 실행 범위에서의 제2 가상 객체들의 분포는 비교적 희박하고; 밀도가 비교적 높을 때, 제2 가상 객체들 사이의 거리들은 비교적 작고, 실행 범위에서의 제2 가상 객체들의 분포는 비교적 조밀하고, 위치 중첩 등이 발생할 수 있다. 제2 가상 객체들의 밀도가 제1 조건을 충족시킬 때, 클라이언트는 제2 가상 객체들의 논리 위치들을 오프셋한다. 제1 조건을 결정하는 방식은 본 개시의 이 실시예에서 제한되지 않고, 제1 조건은 개발자 또는 사용자에 의해 미리 설정되거나; 또는 제1 조건은 제1 동작에 따라 클라이언트에 의해 실시간으로 결정된다.
전술한 분석으로부터 밀도가 제2 가상 객체들 사이의 거리와 연관된다는 것을 알 수 있다. 따라서, 본 개시의 이 실시예에서, 제2 가상 객체들 사이의 거리를 결정함으로써, 제2 가상 객체들의 밀도를 결정하는 방식이 제공된다. 일 예에서, n개의 제2 가상 객체가 있고, n은 1보다 큰 정수이다. 동작 120 후에, 방법은 다음을 추가로 포함한다: n개의 제2 가상 객체에서 2개의 제2 가상 객체마다 그 사이(between every two second virtual objects)의 거리를 결정하는 단계; 및 제1 거리보다 작은 거리가 거리들에 존재하는 것에 응답하여, 밀도가 제1 조건을 충족시킨다고 결정하는 단계.
n개의 제2 가상 객체 사이의 거리를 결정할 때, 클라이언트는 n개의 제2 가상 객체에서의 각각의 제2 가상 객체에 대해, 각각의 제2 가상 객체와 다른 제2 가상 객체들 사이의 거리들을 계산하고, 다른 제2 가상 객체들은 n개의 제2 가상 객체에서 대응하는 제2 가상 객체 이외의 제2 가상 객체들이다. 또한, 클라이언트는 n개의 제2 가상 객체에서 2개의 제2 가상 객체마다 그 사이의 거리를 결정하고, 제1 거리보다 작은 거리가 거리들에 존재할 때, 제2 가상 객체들의 밀도가 제1 조건을 충족시킨다고 결정할 수 있는데, 즉, 제1 거리보다 작은 하나의 거리가 거리들에 존재할 때, 실행 범위에서의 제2 가상 객체들이 비교적 조밀한 것으로 간주되고, 제2 가상 객체들의 논리 위치들이 오프셋되어, 제2 가상 객체들의 논리 위치들을 구별할 필요가 있다.
제1 거리를 결정하는 방식은 본 개시의 이 실시예에서 제한되지 않는다. 일부 실시예들에서, 제1 거리는 사용자 또는 개발자에 의해 미리 설정되거나; 또는 제1 거리는 제1 동작에 따라 클라이언트에 의해 실시간으로 결정된다. 예를 들어, 방법은 다음을 추가로 포함한다: 제1 동작에 대응하는 동작 효과를 획득하는 단계- 동작 효과는 제1 동작에 의해 생성되는 효과임 -; 및 동작 효과에 따라 제1 거리를 결정하는 단계. 클라이언트는 제1 동작에 대응하는 동작 효과를 획득하고 동작 효과에 따라 실시간으로 제1 거리를 결정할 수 있다. 동작 효과는 제1 동작에 의해 생성되는 효과이고, 제1 동작이 작용될 수 있는 범위 및/또는 가상 객체들의 수량 등을 표시하기 위해 사용된다. 제1 거리는 제1 동작에 따라 실시간으로 결정되고, 오프셋을 트리거링하는 감도는 제1 동작에 따라 동적으로 조정될 수 있어, 클라이언트가 단일 및 고정된 감도에 따라 오프셋하는 것을 트리거링하는 것을 방지하고, 그에 의해 클라이언트의 융통성을 개선시킨다. 예를 들어, 제1 동작의 동작 효과가 단일 가상 객체에 대한 효과를 생성하는 것일 때, 비교적 큰 제1 거리가 설정될 수 있고, 오프셋을 트리거링하는 감도는 비교적 높다. 이러한 방식으로, 타깃 가상 객체는 제2 가상 객체들로부터 더 정확하게 선택될 수 있다. 다른 예에서, 제1 동작의 동작 효과가 범위에서의 가상 객체들에 대한 효과를 생성하는 것일 때, 오프셋의 감도를 감소시키기 위해, 비교적 작은 제1 거리가 설정될 수 있다. 이것은 클라이언트가 항상 높은 감도로의 오프셋을 트리거링하는 것을 방지하고 처리 오버헤드들을 감소시킨다.
실행 범위에서의 제2 가상 객체들의 밀도가 제1 조건을 충족시킨다고 결정할 때, 클라이언트는 제2 가상 객체들의 논리 위치들을 오프셋하고, 제2 가상 객체의 논리 위치는 클라이언트의 논리 계층이 제2 가상 객체를 처리할 때 사용되는 위치이다. 오프셋의 설명에 대해서는, 이하의 방법 실시예를 참조한다. 상세 사항들은 다시 설명되지 않는다. 인터페이스 디스플레이 효과에 영향을 줄 수 있는 오프셋 동안 사용자 인터페이스에 디스플레이된 제2 가상 객체들의 위치들의 비교적 큰 변화들을 피하기 위해, 일 예에서, 제2 가상 객체들의 인터페이스 위치들은 논리 위치들의 변화들에 따라 변하지 않는다. 즉, 클라이언트가 제2 가상 객체들의 논리 위치들을 오프셋할 때, 그리고 제2 가상 객체들에 대응하는 사용자들이 제2 가상 객체들을 이동하도록 제어하지 않을 때, 제2 가상 객체들의 인터페이스 위치들은 변경되지 않는다. 제2 가상 객체의 인터페이스 위치는 클라이언트의 표현 계층이 제2 가상 객체를 처리할 때 사용되는 위치이다. 일반적으로, 제2 가상 객체의 논리 위치의 변화는 사용자 인터페이스에서의 제2 가상 객체의 위치를 변화시키지 않고, 제2 가상 객체의 인터페이스 위치의 변화는 사용자 인터페이스에서의 제2 가상 객체의 위치를 변화시킨다. 또한, 일반적으로, 클라이언트의 비교적 빠른 처리 속도로 인해, 제2 가상 객체의 논리 위치의 오프셋은 순간들 내에 완료된 처리 동작일 수 있다. 따라서, 제2 가상 객체에 대응하는 사용자의 이동 및 제어는 무시될 수 있다.
본 개시의 기술적 해결책에 기초하여, 본 기술분야의 통상의 기술자는 밀도를 결정하기 위한 다른 기술적 해결책을 용이하게 도출할 수 있다. 그러나, 이들은 모두 본 개시의 보호 범위 내에 있다. 예를 들어, 클라이언트는 실행 범위 또는 미리 설정된 범위에서의 제2 가상 객체들의 수량을 획득하고; 이 수량이 수량 임계값보다 큰 것에 응답하여, 밀도가 제1 조건을 충족시키는 것으로 결정한다. 미리 설정된 범위는 밀도를 결정하기 위해 미리 설정된 범위이고, 미리 설정된 범위는 실행 범위 내에 속하고 실행 범위보다 작거나; 또는 미리 설정된 범위는 실행 범위를 포함하고 실행 범위보다 크다. 미리 설정된 범위와 실행 범위 사이의 위치 관계 및 범위 크기 관계 둘 다는 본 개시의 이 실시예에서 제한되지 않는다.
동작 140. 적어도 하나의 제2 가상 객체의 오프셋 논리 위치에 기초하여 복수의 제2 가상 객체로부터, 제1 동작에 대응하는 것이 수행되는 타깃 가상 객체를 선택한다.
제2 가상 객체들의 논리 위치들을 오프셋한 후에, 클라이언트는 제2 가상 객체들의 오프셋 논리 위치들을 획득하고 오프셋 논리 위치들에 기초하여 제2 가상 객체들로부터 제1 동작에 대응하는 타깃 가상 객체를 선택할 수 있다.
타깃 가상 객체는 제1 동작이 작용되는 가상 객체이다. 예를 들어, 제1 동작이 공격 스킬일 때, 타깃 가상 객체는 기능 스킬에 의해 공격받은 가상 객체이다. 하나 이상의 타깃 가상 객체가 있을 수 있다. 타깃 가상 객체들의 상이한 최대 수량들은 상이한 동작들(예를 들어, 상이한 스킬들)에 대해 설정될 수 있다. 예를 들어, 동작에 대응하는 타깃 가상 객체들의 최대 수량이 1로 설정되는 경우, 그것은 동작이 기껏해야 하나의 타깃 가상 객체에만 작용할 수 있고 하나의 타깃 가상 객체에 효과를 생성할 수 있다는 것을 표시한다. 다른 예에서, 동작에 대응하는 타깃 가상 객체들의 최대 수량이 x(x는 1보다 큼)로 설정되는 경우, 그것은 동작이 기껏해야 x개의 타깃 가상 객체에 작용할 수 있고 x개의 타깃 가상 객체에 효과를 생성할 수 있다는 것을 표시한다.
클라이언트가 타깃 가상 객체를 선택할 때 사용되는 참조 정보는 본 개시의 이 실시예에서 제한되지 않는다. 클라이언트는 제2 가상 객체의 오프셋 논리 위치에 기초하여 타깃 가상 객체를 직접 선택하거나; 또는 클라이언트는 제2 가상 객체의 오프셋 논리 위치에 더하여 제2 가상 객체의 다른 참조 정보, 예를 들어, 수명 값, 에너지 값, 공격받은 상태, 레벨 값 등을 참조하여 타깃 가상 객체를 선택할 수 있다.
일 예에서, 동작 140은 다음을 포함한다: 제1 동작의 실행 범위의 중심 위치를 획득하는 것; 제2 가상 객체들의 오프셋 논리 위치들과 중심 위치 사이의 거리들을 결정하는 것; 및 거리가 제2 조건을 충족시키는 제2 가상 객체를 타깃 가상 객체로서 결정하는 것.
제1 동작의 실행 범위의 중심 위치는 대안적으로 제1 동작의 동작 효과 중심이라고 지칭될 수 있다. 제1 동작의 실행 범위가 상이한 표현 형태들을 갖는 경우, 중심 위치도 상이한 표현 형태들을 갖는다. 예를 들어, 제1 동작의 실행 범위가 원형 영역일 때, 중심 위치는 원형 영역의 원 중심이고; 제1 동작의 실행 범위가 직사각형 영역일 때, 중심 위치는 직사각형 영역의 대각선들의 초점이고; 제1 동작의 실행 범위가 팬 형상(fan-shaped) 영역일 때, 중심 위치는 팬 형상 영역의 중심 축이다. 본 개시의 이 실시예에서, 실행 범위의 중심 위치에 대응하는 제1 동작의 기능 효과가 가장 강하다. 예를 들어, 제1 동작이 공격 스킬일 때, 실행 범위의 중심 위치에서의 공격 효과가 가장 강하고; 제1 동작이 건강량을 증가시키는 스킬일 때, 실행 범위의 중심 위치에서의 건강량을 증가시키는 효과가 가장 강하다. 제1 동작이 작용되는 타깃 가상 객체는 제2 가상 객체들의 오프셋 논리 위치들과 중심 위치 사이의 거리들에 따라 선택되어, 제1 동작이 비교적 양호한 기능 효과를 달성할 수 있다.
본 개시의 이 실시예에서, 타깃 가상 객체를 선택하기 위해 사용되는 제2 조건은 사용자 또는 개발자에 의해 미리 설정될 수 있다. 일부 실시예들에서, 제2 조건은 거리가 최소 거리이거나; 또는 거리는 거리 임계값보다 작은 것을 포함한다. 이는 본 개시의 이 실시예에서 제한되지 않는다. 일부 실시예들에서, 클라이언트는 제1 동작의 동작 효과에 따라 제2 조건을 결정한다. 예를 들어, 제1 동작의 동작 효과가 단일 가상 객체에 대한 효과를 생성하는 것일 때, 클라이언트는 거리가 최소 거리인 것을 포함하도록 제2 조건을 설정하고; 제1 동작의 동작 효과가 범위에서의 가상 객체들에 대한 효과를 생성하는 것일 때, 클라이언트는 거리가 거리 임계값보다 작은 것을 포함하도록 제2 조건을 설정한다.
예를 들어, 도 4에 도시된 바와 같이, 제1 동작의 실행 범위(10)는 각각 객체 A, 객체 B, 객체 C, 및 객체 D인 4개의 제2 가상 객체를 포함한다. 객체 A, 객체 B, 객체 C, 및 객체 D의 모든 2개 사이의 거리는 제1 거리보다 작고, 클라이언트는 모든 4개의 제2 가상 객체를 오프셋하기로 결정한다고 가정한다. 오프셋 처리가 수행된 후에, 4개의 제2 가상 객체의 오프셋 논리 위치들은 각각 위치 10, 위치 20, 위치 30, 및 위치 40이라고 가정된다. 실행 범위(10)의 중심 위치가 50이고, 클라이언트가 위치(50)와 위치(10), 위치(20), 위치(30)뿐만 아니라 위치(40) 사이의 거리들을 각각 계산하고, 거리들에서 최소 거리에 대응하는 제2 가상 객체를 타깃 가상 객체로서 결정한다고 가정한다. 예를 들어, 위치(10)와 위치(50) 사이의 거리가 가장 작은 경우, 객체 A는 타깃 가상 객체로서 결정된다.
전술한 바에 기초하여, 본 개시의 이 실시예에서 제공되는 기술적 해결책에 따르면, 사용자에 의해 제어되는 가상 객체의 동작의 실행 범위가 획득되고, 동작이 효과를 발휘할 수 있고 실행 범위에 포함되는 가상 객체들의 밀도가 특정 조건을 충족시킬 때, 가상 객체들의 논리 위치들이 오프셋되어, 가상 객체들의 위치들의 중첩으로 인해 클라이언트가 가상 객체들을 구별할 수 없는 경우를 회피한다. 논리 위치들이 오프셋된 후에, 클라이언트는 가상 객체들로부터의 오프셋 논리 위치들에 기초하여, 동작이 작용되는 타깃 가상 객체를 선택한다. 논리 위치들이 오프셋된 후에, 가상 객체들 사이의 거리들은 위치 중첩을 회피하기에 충분히 크다. 따라서, 클라이언트가 가상 객체들을 구별할 수 있어, 클라이언트에 의해 선택된 타깃 가상 객체가 사용자의 요건과 매칭되는 것이 보장된다. 또한, 본 개시의 이 실시예에서, 가상 객체들이 조밀하게 분포될 때, 클라이언트는 가상 객체들이 구별될 수 있는 것을 보장하기 위해 가상 객체들의 논리 위치들을 오프셋하여, 사용자가 실행 범위로부터 클라이언트에 의해 선택된 타깃 가상 객체가 사용자의 예상과 매칭되는 것을 보장하기 위해 동작의 실행 범위를 선택하는데 많은 시간을 소비하는 것이 방지되고, 그에 의해 사용자의 동작 시간 비용들을 감소시키고 동작 효율을 개선시킨다.
또한, 본 개시의 이 실시예에서 제공되는 기술적 해결책에 따르면, 동작이 효과를 발휘할 수 있는 가상 객체들의 인터페이스 위치들은 논리 위치들의 변화에 따라 변하지 않아, 클라이언트가 가상 객체들의 논리 위치들을 오프셋할 때, 그리고 가상 객체들을 제어하는 사용자들이 가상 객체들을 움직이도록 제어하지 않을 때, 사용자 인터페이스에 디스플레이되는 가상 객체들의 위치들은 변화하지 않아, 오프셋 동안 가상 객체들의 인터페이스 위치들의 비교적 큰 변화가 인터페이스 디스플레이 효과에 영향을 미치는 것을 방지한다. 본 개시의 이 실시예에서 제공되는 기술적 해결책에서, 사용자 인터페이스의 디스플레이 효과가 개선된다.
또한, 본 개시의 이 실시예에서 제공되는 기술적 해결책에 따르면, 가상 객체들과 실행 범위의 중심 위치 사이의 거리들은 동작이 효과를 발휘할 수 있는 가상 객체들의 오프셋 논리 위치들에 기초하여 결정되고, 거리가 조건을 충족시키는 가상 객체는 타깃 가상 객체로서 결정된다. 실행 범위의 중심 위치는 일반적으로 동작의 기능 효과가 가장 강한 위치이기 때문에, 본 개시의 이 실시예에서, 동작의 기능 효과가 가장 강한 위치에 비교적 가까운 가상 객체는 타깃 가상 객체를 선택하는 방식으로 동작의 작용 객체(acted object)로서 결정되어, 동작이 최적의 기능 효과를 재생하는 것을 보장할 수 있다.
클라이언트가 제2 가상 객체의 논리 위치를 오프셋하는 프로세스가 아래에 설명된다.
예시적인 실시예에서, n개의 제2 가상 객체가 있고, n은 1보다 큰 정수이다. 동작 130은 다음의 동작들을 포함한다.
(1) n개의 제2 가상 객체에서 i번째 제2 가상 객체의 오프셋 방향을 결정하고, i번째 제2 가상 객체의 오프셋 거리를 결정하고, 오프셋 방향은 다른 제2 가상 객체들로부터 더 멀리 떨어진 방향이고, i는 n보다 작거나 같은 양의 정수이다.
n개의 제2 가상 객체에서의 i번째 제2 가상 객체에 대해, i번째 제2 가상 객체와 다른 제2 가상 객체들 사이의 거리들이 제1 거리보다 작다고 가정하는 경우, 클라이언트는 실행 범위에서의 제2 가상 객체들의 밀도가 제1 조건을 충족시킨다고 결정할 수 있고, 다른 제2 가상 객체들은 n개의 제2 가상 객체에서의 i번째 제2 가상 객체 이외의 제2 가상 객체들이다. 비교적 조밀한 제2 가상 객체들을 야기하는 인자는 i번째 제2 가상 객체와 다른 제2 가상 객체들 사이의 거리들이 제1 거리보다 작다는 것이기 때문에, 클라이언트는 i번째 제2 가상 객체의 논리 위치를 오프셋하기로 결정한다. 즉, 클라이언트는 n개의 제2 가상 객체에서의 실행 범위에서 비교적 조밀한 제2 가상 객체들을 야기하는 제2 가상 객체들의 논리 위치들을 오프셋한다.
클라이언트가 i번째 제2 가상 객체의 논리 위치를 오프셋하기로 결정할 때, 클라이언트는 i번째 제2 가상 객체의 오프셋 방향 및 오프셋 거리를 결정할 필요가 있다. i번째 제2 가상 객체의 오프셋 방향은 다른 제2 가상 객체들로부터 더 멀리 있는 방향인데, 즉, 클라이언트는 i번째 제2 가상 객체를 오프셋하여 i번째 제2 가상 객체를 바깥쪽으로 이동시켜, 제2 가상 객체들의 밀도를 감소시키는 효과를 달성하고, 그에 의해 제2 가상 객체들의 위치들의 중첩의 문제를 해결한다. i번째 제2 가상 객체의 오프셋 거리는 i번째 제2 가상 객체의 논리 위치가 오프셋될 필요가 있는 거리 길이를 지칭한다. i번째 제2 가상 객체가 오프셋된 후에, i번째 제2 가상 객체의 오프셋 논리 위치와 오프셋 전의 i번째 제2 가상 객체의 논리 위치 사이의 거리가 오프셋 거리이다.
본 개시의 이 실시예는 i번째 제2 가상 객체의 오프셋 방향 및 오프셋 거리를 결정하는 몇 가지 방식을 제공하고, 이하에서 설명한다.
일 예에서, i번째 제2 가상 객체의 오프셋 방향을 결정하는 것은 다음을 포함한다: i번째 제2 가상 객체에 대응하는 반발(repulsive) 가상 객체들을 결정하는 것; i번째 제2 가상 객체에 대한 반발 가상 객체들의 반발력들을 획득하는 것; 및 i번째 제2 가상 객체에 대한 반발 가상 객체들의 반발력들의 합력(resultant force)의 방향을 i번째 제2 가상 객체의 오프셋 방향으로서 결정하는 것.
반발 가상 객체들은 i번째 제2 가상 객체와 함께 조밀한 제2 가상 객체들을 야기하는 가상 객체들이다. 본 개시의 이 실시예에서, 반발 가상 객체들은 i번째 제2 가상 객체로부터의 거리들이 제1 거리보다 작은 다른 제2 가상 객체들을 포함한다. 반발 가상 객체들을 결정한 후에, 클라이언트는 i번째 제2 가상 객체에 대한 반발 가상 객체들의 반발력들을 획득할 수 있다. 반발력의 크기는 반발 가상 객체의 속성 정보와 연관되고, 속성 정보는: 반발 가상 객체와 i번째 제2 가상 객체 사이의 거리, 반발 가상 객체가 속하는 카테고리, 반발 가상 객체의 수명 값, 반발 가상 객체의 에너지 값 등 중 적어도 하나를 포함한다. 반발력의 방향은 반발 가상 객체로부터 i번째 제2 가상 객체로의 방향이다. i번째 제2 가상 객체에 대한 반발 가상 객체들의 반발력들을 결정한 후에, 클라이언트는 반발력들의 합력을 결정하고, 그 후 합력의 방향을 i번째 제2 가상 객체의 오프셋 방향으로서 결정하여, 제2 가상 객체들을 바깥쪽으로 산란시키는 효과를 달성할 수 있다.
예를 들어, 도 5에 도시한 바와 같이, 실행 범위에 4개의 제2 가상 객체가 있고, 이들은 각각 객체 A, 객체 B, 객체 C, 및 객체 D로서 표시된다. 4개의 제2 가상 객체에서의 객체 A에 대해, 객체 A와 객체 B 사이의 거리 및 객체 A와 객체 C 사이의 거리 둘 다가 제1 거리보다 작고, 객체 A와 객체 D 사이의 거리가 제1 거리보다 크다고 가정하고, 클라이언트는 객체 B 및 객체 C를 반발 가상 객체들로서 결정하고, 객체 A에 대한 객체 B의 반발력(10) 및 객체 A에 대한 객체 C의 반발력(20)을 각각 획득하고, 반발력(10) 및 반발력(20)에 따라 합력(30)을 결정하고, 그 후 합력(30)의 방향을 객체 A의 오프셋 방향으로서 결정한다.
다른 예에서, i번째 제2 가상 객체의 오프셋 방향을 결정하는 것은 다음을 포함한다: 실행 범위의 중심 위치를 획득하는 것; 및 중심 위치로부터 i번째 제2 가상 객체로의 방향을 i번째 제2 가상 객체의 오프셋 방향으로서 결정하는 것.
예시적인 실시예에서, 제1 동작의 동작 효과는 제1 동작의 기능 효과의 강도가 중심 위치로부터 외부를 향해 멀어지면서 점차적으로 감소한다는 것이고, 클라이언트는 먼저 제1 동작의 실행 범위의 중심 위치를 획득하고, 중심 위치로부터 i번째 제2 가상 객체로의 방향을 i번째 제2 가상 객체의 오프셋 방향으로서 결정할 수 있다. 예를 들어, 제1 동작의 실행 범위가 원형 영역일 때, 오프셋 방향은 원 중심으로부터 i번째 제2 가상 객체로의 방향이고; 제1 동작의 실행 범위가 직사각형 영역일 때, 오프셋 방향은 대각선들의 교점으로부터 i번째 제2 가상 객체로의 방향이다.
또 다른 예에서, i번째 제2 가상 객체의 오프셋 방향을 결정하는 것은 다음을 포함한다: 실행 범위의 중심 축을 획득하는 것; 및 중심 축에 대한 i번째 제2 가상 객체의 방향과 반대 방향을 i번째 제2 가상 객체의 오프셋 방향으로서 결정하는 것.
예시적인 실시예에서, 제1 동작의 동작 효과는 제1 동작의 기능 효과의 강도가 양 측을 향해 중심 축으로부터 멀어지면서 점차적으로 감소한다는 것이고, 클라이언트는 먼저 제1 동작의 실행 범위의 중심 축을 획득하고, 중심 축에 대한 i번째 제2 가상 객체의 방향과 반대 방향을 i번째 제2 가상 객체의 오프셋 방향으로서 결정할 수 있다. 예를 들어, 중심 축에 대한 i번째 제2 가상 객체의 방향은 i번째 제2 가상 객체로부터 중심 축으로 그려진 수직선의 방향일 수 있다. 예를 들어, 제1 동작의 실행 범위가 팬 형상 영역일 때, 팬 형상 영역은 제1 동작의 기능 효과가 가장 강한 중심 축에 대응하고, i번째 제2 가상 객체의 오프셋 방향은 i번째 제2 가상 객체로부터 중심 축으로의 수직선 방향과 반대 방향이다.
일 예에서, i번째 제2 가상 객체의 오프셋 거리를 결정하는 것은 다음을 포함한다: i번째 제2 가상 객체가 속하는 카테고리를 획득하는 것; 및 i번째 제2 가상 객체가 속하는 카테고리에 따라 i번째 제2 가상 객체의 오프셋 거리를 결정하는 것.
클라이언트는 i번째 제2 가상 객체를 결정하면서 i번째 제2 가상 객체가 속하는 카테고리를 획득할 수 있고, i번째 제2 가상 객체가 속하는 카테고리는 또한 i번째 제2 가상 객체의 객체 타입으로서 지칭될 수 있다. 클라이언트는 제2 가상 객체들의 형태들에 따라 제2 가상 객체들을 분류할 수 있거나, 제2 가상 객체들의 부피들에 따라 제2 가상 객체들을 분류할 수 있거나, 다른 참조 정보에 따라 제2 가상 객체들을 분류할 수 있다. 이는 본 개시의 이 실시예에서 제한되지 않는다. 예를 들어, 클라이언트가 제2 가상 객체들의 형태들에 따라 제2 가상 객체들을 분류할 때, 제2 가상 객체들이 속하는 카테고리들은 인간 형태, 동물 형태, 만화 형태 등을 포함한다.
클라이언트는 i번째 제2 가상 객체가 속하는 카테고리에 따라 i번째 제2 가상 객체의 오프셋 거리를 결정할 수 있다. 본 개시의 이 실시예에서, 제2 가상 객체들의 상이한 카테고리들에 대해, 클라이언트는 카테고리들에 대응하는 오프셋 거리들을 미리 설정할 수 있고, 예를 들어, 제2 가상 객체가 인간 형태 및 동물 형태를 포함할 때, 오프셋 거리는 인간 형태에 대해 10m로 설정되고, 오프셋 거리는 동물 형태에 대해 5m로 설정된다. i번째 제2 가상 객체가 속하는 카테고리를 결정한 후에, 클라이언트는 제2 가상 객체들의 카테고리들과 오프셋 거리들 사이의 미리 설정된 대응을 질의하고, i번째 제2 가상 객체의 오프셋 거리를 결정한다. 예를 들어, i번째 제2 가상 객체가 인간의 형태로 되어 있을 때, 클라이언트는 오프셋 거리가 10m라고 결정한다.
본 개시의 이 실시예에서, 클라이언트는 카테고리들의 제2 가상 객체들에 대해 고정된 오프셋 거리(X)를 설정하고, 그 후 카테고리들의 제2 가상 객체들에 대해 추가적인 오프셋 거리(Z)를 개별적으로 설정할 수 있다. 이러한 방식으로, i번째 제2 가상 객체의 오프셋 거리의 결정 동안, i번째 제2 가상 객체가 속하는 카테고리가 결정될 수 있는 경우, 고정된 오프셋 거리와 속한 카테고리에 대응하는 추가적인 오프셋 거리의 합(X+Y)이 i번째 제2 가상 객체의 오프셋 거리로서 결정된다. 일부 경우들에서, 클라이언트가 i번째 제2 가상 객체가 속하는 카테고리를 결정할 수 없는 경우, 클라이언트는 고정된 오프셋 거리(X)를 i번째 제2 가상 객체의 오프셋 거리로서 직접 결정할 수 있어, 클라이언트는 임의의 경우에 i번째 제2 가상 객체의 오프셋 거리를 정상적으로 결정할 수 있다.
다른 예에서, i번째 제2 가상 객체의 오프셋 거리를 결정하는 것은 다음을 포함한다: i번째 제2 가상 객체의 상태 정보를 획득하는 것; 및 i번째 제2 가상 객체의 상태 정보에 따라 i번째 제2 가상 객체의 오프셋 거리를 결정하는 것.
상태 정보는 i번째 제2 가상 객체의 현재 상태를 표시하기 위해 사용된다. 일부 실시예들에서, 상태 정보는 수명 값, 에너지 값, 현재 공격받은 상태, 및 레벨 값 중 적어도 하나를 포함한다. 오프셋 거리는 i번째 제2 가상 객체의 상태 정보에 따라 결정되고, 오프셋 거리는 i번째 제2 가상 객체의 상태와 매칭될 수 있다. 따라서, 상태 정보가 i번째 제2 가상 객체가 제1 동작에 대한 대응하는 효과를 생성하기가 더 쉽다는 것을 표시할 때, 더 작은 오프셋 거리가 결정되어, 클라이언트는 후속하여 타깃 가상 객체를 선택할 때 i번째 제2 가상 객체를 선택할 가능성이 더 크다. 예를 들어, 제1 동작이 공격 스킬일 때, i번째 제2 가상 객체의 상태 정보는 i번째 제2 가상 객체의 현재 수명 값 및 현재 에너지 값이 비교적 낮다는 것을 표시하여, 클라이언트는 i번째 제2 가상 객체가 제1 가상 객체의 공격 스킬에 의해 소멸되기 더 쉽다고 결정하고, 비교적 작은 오프셋 거리를 추가로 결정하여, 후속하여 i번째 제2 가상 객체를 선택할 가능성이 더 크다.
다른 예에서, i번째 제2 가상 객체의 오프셋 거리를 결정하는 것은 다음을 포함한다: i번째 제2 가상 객체에 대응하는 반발 가상 객체들의 수량을 획득하는 것; 및 반발 가상 객체들의 수량에 따라 i번째 제2 가상 객체의 오프셋 거리를 결정하는 것.
반발 가상 객체의 설명에 대해서는, 전술한 방법 실시예를 참조한다. 상세 사항들은 다시 설명되지 않는다. 클라이언트가 i번째 제2 가상 객체가 오프셋될 필요가 있다고 결정할 때, 클라이언트는 i번째 제2 가상 객체에 대응하는 반발 가상 객체들을 획득할 수 있다. 또한, 클라이언트는 반발 가상 객체들의 수량을 추가로 획득한 다음, 그 수량에 따라 i번째 제2 가상 객체의 오프셋 거리를 결정할 수 있다. 일부 실시예들에서, 반발 가상 객체들의 수량은 오프셋 거리와 양의 상관에 있는데, 즉, 더 많은 수량의 반발 가상 객체는 더 큰 오프셋 거리를 표시한다. 오프셋 거리는 반발 가상 객체들의 수량에 따라 결정되어, i번째 제2 가상 객체의 논리 위치의 오프셋 프로세스가 제자리에 더 많게 되고, 그에 의해 제2 가상 객체들의 논리 위치들이 복수 회 오프셋되는 것을 방지한다. 예를 들어, i번째 제2 가상 객체는 비교적 많은 수량의 반발 가상 객체에 대응하고, 실행 범위에서의 제2 가상 객체들의 분포가 더 조밀하다고 결정될 수 있다. 제2 가상 객체들의 밀도를 효과적으로 감소시키기 위해, 비교적 큰 오프셋 거리가 설정될 수 있어, i번째 제2 가상 객체의 논리 위치가 하나의 동작에서 가능한 한 오프셋되어, 처리 오버헤드들을 감소시킨다.
(2) 오프셋 거리만큼 오프셋 방향을 따라 i번째 제2 가상 객체의 논리 위치를 이동시켜, i번째 제2 가상 객체의 오프셋 논리 위치를 획득한다.
i번째 제2 가상 객체의 오프셋 방향 및 오프셋 거리를 결정한 후에, 클라이언트는 오프셋 거리만큼 오프셋 방향을 따라 이동하도록 i번째 제2 가상 객체를 제어하고, i번째 제2 가상 객체의 오프셋 논리 위치를 추가로 획득할 수 있다.
일 실시예에서, i번째 제2 가상 객체의 논리 위치가 오프셋된 후에, 제2 가상 객체들의 밀도가 감소되고, 타깃 가상 객체가 정확하게 선택될 수 있는 것이 보장되고, i번째 제2 가상 객체의 논리 위치가 오프셋 거리만큼 오프셋 방향을 따라 이동된 후에, 방법은 다음을 추가로 포함한다: 제1 가상 객체와 i번째 제2 가상 객체의 오프셋 논리 위치 사이의 거리를 획득하는 단계; 거리가 제2 거리보다 큰 것에 응답하여 오프셋 각도를 획득하는 단계; 오프셋 각도가 각도 임계값보다 작은 것에 응답하여, i번째 제2 가상 객체의 오프셋 방향을 결정하고 i번째 제2 가상 객체의 오프셋 거리를 결정하는 동작들로부터 다시 동작들을 수행하는 단계; 및 오프셋 각도가 각도 임계값보다 크거나 같은 것에 응답하여 i번째 제2 가상 객체의 오프셋 논리 위치를 획득하는 단계.
i번째 제2 가상 객체를 오프셋한 후에, 클라이언트는 제1 가상 객체와 i번째 제2 가상 객체의 오프셋 논리 위치 사이의 거리를 획득하고; 거리가 제2 거리보다 크거나 같을 때, i번째 제2 가상 객체의 논리 위치가 오프셋될 필요가 없다고 결정하고, 거리가 제2 거리보다 작을 때 오프셋 각도를 추가로 결정한다. 제2 거리를 결정하는 방식은 본 개시의 이 실시예에서 제한되지 않는다. 제2 거리는 사용자 또는 개발자에 의해 미리 설정되고, 상이한 제1 가상 객체들에 대해, 제2 거리들은 동일할 수 있거나 상이할 수 있다; 또는 제2 거리는 실시간으로 제1 가상 객체의 속성 정보에 따라 클라이언트에 의해 결정되고, 속성 정보는 수명 값, 레벨 값, 에너지 값, 및 속한 카테고리 중 적어도 하나를 포함한다.
오프셋 각도는 오프셋 전후의 제1 가상 객체에 대한 i번째 제2 가상 객체의 각도이고, 오프셋 각도는 오프셋 전후의 제1 가상 객체의 논리 위치에 대한 i번째 제2 가상 객체의 논리 위치의 각도이다. 도 6에 도시된 바와 같이, 클라이언트는 오프셋 전에 제1 가상 객체의 논리 위치(10)로부터 i번째 제2 가상 객체의 논리 위치(20)로의 방향을 획득할 수 있고, 방향은 제1 방향이라고 지칭하고; 클라이언트는 제1 가상 객체의 논리 위치(10)로부터 i번째 제2 가상 객체의 오프셋 논리 위치(30)로의 방향을 추가로 획득할 수 있고, 그 방향은 제2 방향이라고 지칭한다. 오프셋 각도는 제1 방향과 제2 방향 사이의 각도이다.
오프셋 각도가 각도 임계값보다 크거나 같을 때, 클라이언트는 또한 i번째 제2 가상 객체의 논리 위치가 오프셋될 필요가 없다고 결정한다; 그러나, 오프셋 각도가 각도 임계값보다 작을 때, 클라이언트는 i번째 제2 가상 객체의 논리 위치가 다시 오프셋될 필요가 있다고 결정하고, 클라이언트는 i번째 제2 가상 객체의 오프셋 방향 및 오프셋 거리를 결정하는 동작들로부터 다시 동작들을 수행하고, 클라이언트는 동작들이 다시 수행될 때 i번째 제2 가상 객체의 오프셋 논리 위치의 오프셋 방향 및 오프셋 거리를 결정한다. 각도 임계값을 결정하는 방식은 본 개시의 이 실시예에서 제한되지 않는다. 각도 임계값은 사용자 또는 개발자에 의해 미리 설정될 수 있고, 상이한 제2 가상 객체들에 대해, 각도 임계값들은 동일할 수 있거나 상이할 수 있다; 또는 각도 임계값은 제2 가상 객체들이 속하는 카테고리들에 따라 실시간으로 클라이언트에 의해 결정될 수 있다.
클라이언트는 또한 n개의 제2 가상 객체에서 위치 오프셋이 수행되지 않는 제2 가상 객체의 논리 위치와 제1 가상 객체 사이의 거리를 결정하면서, 제1 가상 객체와 i번째 제2 가상 객체의 오프셋 논리 위치 사이의 거리를 결정하고, 거리가 제2 거리보다 클 때, 위치 오프셋이 수행되지 않는 제2 가상 객체가 오프셋될 필요가 있다고 결정할 수 있다. 도 7에 도시된 바와 같이, 제2 가상 객체들은 각각 객체 A 및 객체 B인 2개의 가상 객체를 포함한다. 이 경우, 클라이언트는 객체 A를 오프셋하지만, 객체 B를 오프셋하지 않는다. 제2 가상 객체들과 제1 가상 객체 사이의 거리들을 결정할 때, 클라이언트는 객체 A의 오프셋 논리 위치(10)와 제1 가상 객체의 논리 위치(20) 사이의 거리(30)를 결정하고, 객체 B의 논리 위치(40)와 제1 가상 객체의 논리 위치(20) 사이의 거리(50)를 결정한다. 거리(30)가 제2 거리보다 작거나 같을 때, 객체 A의 오프셋 논리 위치가 다시 오프셋될 필요가 없다고 결정된다. 거리(50)가 제2 거리보다 작거나 같을 때, 객체 B의 논리 위치가 오프셋될 필요가 없다고 결정된다.
본 개시의 이 실시예에서, 제2 가상 객체들의 논리 위치들이 과도하게 오프셋되는 것을 회피하고 그에 의해 처리 오버헤드들을 감소시키기 위해, 재실행의 횟수에 대한 최대값이 설정된다. 일 예에서, 방법은 다음을 추가로 포함한다: 재실행의 횟수를 획득하는 단계; 및 재실행의 횟수가 횟수 임계값보다 클 때 최종으로 i번째 제2 가상 객체의 논리 위치를 오프셋하여, i번째 제2 가상 객체의 오프셋 논리 위치를 획득하는 단계. 횟수 임계값은 사용자 또는 개발자에 의해 미리 설정될 수 있거나; 또는 실시간으로 실행 단말기의 처리 능력에 따라 클라이언트에 의해 결정된다. 예를 들어, 강한 처리 능력을 갖는 단말기에 대해, 비교적 큰 횟수 임계값이 설정되고; 약한 처리 능력을 갖는 단말기에 대해, 비교적 작은 횟수 임계값이 설정된다. 이는 본 개시의 이 실시예에서 제한되지 않는다.
전술한 바에 기초하여, 본 개시의 이 실시예에서 제공된 기술적 해결책에 따르면, 동작이 효과를 발휘할 수 있는 가상 객체들에서의 가상 객체에 대해, 가상 객체의 오프셋 방향은 다른 가상 객체들로부터 더 멀리 떨어진 방향으로서 결정되어, 클라이언트는 가상 객체들을 바깥쪽으로 산란시키는 효과로 가상 객체들을 오프셋하여, 가상 객체들의 밀도를 감소시키는 효과를 달성하고, 그에 의해 가상 객체들의 위치들의 중첩의 문제를 해결한다. 또한, 본 개시의 이 실시예에서 제공되는 기술적 해결책에 따르면, 가상 객체들 중에서 비교적 높은 밀도를 야기하는 가상 객체들의 논리 위치들이 오프셋되어, 타깃팅된 방식으로 비교적 높은 밀도의 문제를 해결함으로써, 더 나은 해결책 효과를 달성한다.
또한, 본 개시의 이 실시예에서 제공되는 기술적 해결책에 따르면, 가상 객체들의 논리 위치들이 오프셋된 후에, 논리 위치들의 오프셋이 밀도를 감소시키는 효과를 달성하는지가 추가로 검출된다. 밀도를 감소시키는 효과가 달성되지 않을 때, 상대적으로 높은 밀도를 야기하는 가상 객체들의 논리 위치들은 가상 객체들의 밀도가 요구되는 요건으로 감소할 때까지 사이클(cycle) 방식으로 연속적으로 오프셋된다. 본 개시의 이 실시예에서, 가상 객체들의 밀도가 효과적으로 감소되는 것이 보장될 수 있다. 또한, 본 개시의 이 실시예에서, 비교적 높은 밀도를 야기하는 가상 객체들의 논리 위치들이 사이클 방식으로 연속적으로 오프셋될 때, 최대 사이클 수량은 논리 위치들이 과도하게 오프셋되는 것을 회피하고 따라서 처리 오버헤드들을 감소시키도록 설정될 수 있다.
도 8은 본 개시의 실시예에 따른 제2 가상 객체를 오프셋하는 흐름도이다. 이 방법은 애플리케이션의 클라이언트에 적용가능하며, 예를 들어, 도 1에 도시된 애플리케이션 실행 환경에서 단말기(10)에 설치된 클라이언트(이하, "클라이언트"로서 지칭됨)에 적용가능하다. 방법은 다음의 동작들 200 내지 290을 포함할 수 있다.
동작 200. n개의 제2 가상 객체에서의 i번째 제2 가상 객체에 대해, i번째 제2 가상 객체와 다른 제2 가상 객체들 사이의 거리들을 획득한다. 클라이언트는 n개의 제2 가상 객체에서 2개의 제2 가상 객체마다 그 사이의 거리를 획득할 수 있다. 설명의 편의를 위해, 도 8에 도시된 실시예에서, n개의 제2 가상 객체에서의 i번째 제2 가상 객체가 설명을 위한 예로서 사용되고, 다른 제2 가상 객체들의 오프셋 프로세스에 대해서는, 도 8에 도시된 실시예를 참조할 수 있다.
동작 210. 제1 거리보다 작은 거리가 거리들에 존재하는지를 결정한다. 제1 거리는 사용자 또는 개발자에 의해 미리 설정될 수 있거나, 클라이언트에 의해 실시간으로 결정될 수 있다. 동작 220은 제1 거리보다 작은 거리가 거리들에 존재하는 경우 수행되고; 동작 290은 제1 거리보다 작은 거리가 거리들에 존재하지 않는 경우 수행된다.
동작 220. i번째 제2 가상 객체의 오프셋 방향 및 오프셋 거리를 결정한다. 오프셋 방향은 다른 제2 가상 객체들로부터 더 멀리 떨어진 방향이고, 오프셋 거리는 오프셋 동안 i번째 제2 가상 객체의 논리 위치가 이동될 필요가 있는 거리이다.
동작 230. 오프셋 거리만큼 오프셋 방향을 따라 i번째 제2 가상 객체의 논리 위치를 이동시켜, i번째 제2 가상 객체의 오프셋 논리 위치를 획득한다. 오프셋 방향 및 오프셋 거리를 결정한 후에, 클라이언트는 오프셋 방향 및 오프셋 거리에 따라 i번째 제2 가상 객체를 오프셋한다.
동작 240. 제1 가상 객체와 i번째 제2 가상 객체의 오프셋 논리 위치 사이의 거리를 결정한다. 클라이언트는 제1 가상 객체의 논리 위치와 i번째 제2 가상 객체의 오프셋 논리 위치 사이의 거리를 결정할 수 있다.
동작 250. 거리가 제2 거리보다 큰지를 결정한다. 제2 거리는 사용자 또는 개발자에 의해 미리 설정될 수 있거나, 클라이언트에 의해 실시간으로 결정될 수 있다. 동작 260은 거리가 제2 거리보다 클 때 수행되고; 동작 290은 거리가 제2 거리보다 작거나 같을 때 수행된다.
동작 260. 오프셋 전후의 제1 가상 객체에 대한 i번째 제2 가상 객체의 오프셋 각도를 결정한다. 클라이언트는 오프셋 전의 제1 가상 객체의 논리 위치로부터 i번째 제2 가상 객체의 논리 위치로의 방향을 획득할 수 있고, 방향은 제1 방향으로서 표시되고; 클라이언트는 제1 가상 객체의 논리 위치로부터 i번째 제2 가상 객체의 오프셋 논리 위치로의 방향을 추가로 획득할 수 있고, 방향은 제2 방향으로 표시된다. 오프셋 각도는 제1 방향과 제2 방향 사이의 각도이다.
동작 270. 오프셋 각도가 각도 임계값보다 작은지를 결정한다. 각도 임계값은 클라이언트에 의해 실시간으로 결정될 수 있거나, 사용자 또는 개발자에 의해 미리 설정될 수 있다. 동작 280은 오프셋 각도가 각도 임계값보다 작을 때 수행되고; 동작 290은 오프셋 각도가 각도 임계값보다 크거나 같을 때 수행된다.
동작 280. 최대 사이클 수량에 도달되는지를 결정한다. 동작 200은 최대 사이클 수량에 도달되지 않을 때 재시작되고; 최대 사이클 수량에 도달하는 경우, i번째 제2 가상 객체의 논리 위치에 대한 최종 오프셋 처리에 기초하여, i번째 제2 가상 객체의 오프셋 논리 위치가 획득된다. 본 개시의 이 실시예에서, 오프셋의 사이클 수량은 동작 200의 재실행 횟수에 따라 다시 카운팅될 수 있다.
동작 290. 오프셋이 수행되지 않는다고 결정한다. 클라이언트는 오프셋이 수행되지 않는다고 결정하면서 i번째 제2 가상 객체의 오프셋 논리 위치를 획득한다. 오프셋이 수행되지 않는다고 결정될 때, i번째 제2 가상 객체의 오프셋 논리 위치들은 또한 상이한 결정 순간들에 따라 상이하다. 동작 290이 동작 210에서 수행된다고 결정되는 경우, 클라이언트는 실제로 i번째 제2 가상 객체를 오프셋하지 않고; 동작 290이 동작 250 또는 동작 270에서 수행된다고 결정되는 경우, 클라이언트는 실제로 i번째 제2 가상 객체를 오프셋했다.
도 8에 도시된 방법 실시예에서의 동작 200 내지 동작 230은 도 3에 도시된 실시예에서의 동작 130 및 동작 130의 설명에 대응하고, 동작 200 내지 동작 230은 동작 130에 대한 추가의 상세한 설명이다. 대응적으로, 후속하는 동작 240 내지 동작 290은 또한 동작 140 및 동작 130과 동작 140 사이의 동작에 대한 추가의 상세한 설명이다. 동작들 사이의 도입 및 설명은 서로 상보적일 수 있다.
다음은 본 개시의 방법 실시예들을 실행하기 위해 사용될 수 있는 본 개시의 장치 실시예들을 설명한다. 본 개시의 장치 실시예들에 개시되지 않은 상세 사항들에 대해서는, 본 개시의 방법 실시예들을 참조한다.
도 9는 본 개시의 실시예에 따른 가상 객체 선택 장치의 블록도이다. 장치는 가상 객체 선택 방법을 구현하는 기능들을 갖는다. 기능들은 하드웨어를 사용하여 구현될 수 있거나, 또는 대응하는 소프트웨어를 실행하는 하드웨어에 의해 구현될 수 있다. 장치는 단말기일 수 있거나 단말기에 설정될 수 있다. 장치(900)는 사용자 인터페이스 디스플레이 모듈(910), 실행 범위 획득 모듈(920), 논리 위치 오프셋 모듈(930), 및 타깃 객체 선택 모듈(940)을 포함할 수 있다.
사용자 인터페이스 디스플레이 모듈(910)은 가상 환경에 대응하는 디스플레이 이미지 및 가상 환경에 위치한 제1 가상 객체를 포함하는 사용자 인터페이스를 디스플레이하도록 구성된다.
실행 범위 획득 모듈(920)은 가상 환경에서 제1 가상 객체의 제1 동작의 실행 범위를 획득하도록 구성된다.
논리 위치 오프셋 모듈(930)은 실행 범위에서의 복수의 제2 가상 객체의 밀도가 제1 조건을 충족시키는 것에 응답하여, 복수의 제2 가상 객체에서의 적어도 하나의 제2 가상 객체의 논리 위치를 오프셋하여, 적어도 하나의 제2 가상 객체의 오프셋 논리 위치를 획득하도록 구성되고, 논리 위치는 논리 계층이 제2 가상 객체를 처리할 때 사용되는 위치이다.
타깃 객체 선택 모듈(940)은 적어도 하나의 제2 가상 객체의 오프셋 논리 위치에 기초하여 복수의 제2 가상 객체로부터 제1 동작에 대응하는 타깃 가상 객체를 선택하도록 구성된다.
예시적인 실시예에서, 제2 가상 객체의 인터페이스 위치는 논리 위치의 변화에 따라 변하지 않는다.
예시적인 실시예에서, n개의 제2 가상 객체가 있고, n은 1보다 큰 정수이고; 도 10에 도시된 바와 같이, 논리 위치 오프셋 모듈(930)은: n개의 제2 가상 객체에서의 i번째 제2 가상 객체의 오프셋 방향을 결정하고 i번째 제2 가상 객체의 오프셋 거리를 결정하도록 구성된 오프셋 파라미터 결정 유닛(932)- 오프셋 방향은 다른 제2 가상 객체들로부터 더 멀리 떨어진 방향이고, i는 n보다 작거나 같은 양의 정수임 -; 및 오프셋 거리만큼 오프셋 방향을 따라 i번째 제2 가상 객체의 논리 위치를 이동시켜, i번째 제2 가상 객체의 오프셋 논리 위치를 획득하도록 구성된 논리 위치 오프셋 유닛(934)을 포함한다.
예시적인 실시예에서, 도 10에 도시된 바와 같이, 오프셋 파라미터 결정 유닛(932)은 i번째 제2 가상 객체에 대응하는 반발 가상 객체들을 결정하고- 반발 가상 객체들은 i번째 제2 가상 객체로부터의 거리들이 제1 거리보다 작은 다른 제2 가상 객체들을 포함함 -; i번째 제2 가상 객체에 대한 반발 가상 객체들의 반발력들을 획득하고- 반발력의 크기는 반발 가상 객체의 속성 정보와 연관되고, 반발력의 방향은 반발 가상 객체로부터 i번째 제2 가상 객체로의 방향임 -; i번째 제2 가상 객체에 대한 반발 가상 객체들의 반발력들의 합력의 방향을 i번째 제2 가상 객체의 오프셋 방향으로서 결정하도록 구성된다.
예시적인 실시예에서, 도 10에 도시된 바와 같이, 오프셋 파라미터 결정 유닛(932)은 실행 범위의 중심 위치를 획득하고; 중심 위치로부터 i번째 제2 가상 객체로의 방향을 i번째 제2 가상 객체의 오프셋 방향으로서 결정하도록 구성된다.
예시적인 실시예에서, 도 10에 도시된 바와 같이, 오프셋 파라미터 결정 유닛(932)은 실행 범위의 중심 축을 획득하고; 중심 축에 대한 i번째 제2 가상 객체의 방향과 반대인 방향을 i번째 제2 가상 객체의 오프셋 방향으로서 결정하도록 구성된다.
예시적인 실시예에서, 도 10에 도시된 바와 같이, 오프셋 파라미터 결정 유닛(932)은 i번째 제2 가상 객체가 속하는 카테고리를 획득하고; i번째 제2 가상 객체가 속하는 카테고리에 따라 i번째 제2 가상 객체의 오프셋 거리를 결정하도록 구성된다.
예시적인 실시예에서, 도 10에 도시된 바와 같이, 장치(900)는 다음을 추가로 포함한다: 제1 가상 객체와 i번째 제2 가상 객체의 오프셋 논리 위치 사이의 거리를 획득하도록 구성된 제2 거리 결정 모듈(952); 거리가 제2 거리보다 큰 것에 응답하여 오프셋 각도를 획득하도록 구성된 오프셋 각도 결정 모듈(954)- 오프셋 각도는 오프셋 전후의 제1 가상 객체에 대한 i번째 제2 가상 객체의 각도임 -; 오프셋 각도가 각도 임계값보다 작은 것에 응답하여, i번째 제2 가상 객체의 오프셋 방향을 결정하고 i번째 제2 가상 객체의 오프셋 거리를 결정하는 동작들로부터 동작들을 다시 수행하도록 추가로 구성되는 오프셋 파라미터 결정 유닛(932)- i번째 제2 가상 객체의 오프셋 논리 위치의 오프셋 방향 및 오프셋 거리는 동작들이 다시 수행될 때 결정됨 -; 및 오프셋 각도가 각도 임계값보다 크거나 같은 것에 응답하여 i번째 제2 가상 객체의 오프셋 논리 위치를 획득하도록 구성된 논리 위치 획득 모듈(956).
예시적인 실시예에서, n개의 제2 가상 객체가 있고, n은 1보다 큰 정수이고; 도 10에 도시된 바와 같이, 장치(900)는 다음을 추가로 포함한다: n개의 제2 가상 객체에서 2개의 제2 가상 객체마다 그 사이의 거리를 결정하도록 구성된 제3 거리 결정 모듈(962); 및 제1 거리보다 작은 거리가 거리들에 존재하는 것에 응답하여, 밀도가 제1 조건을 충족시킨다고 결정하도록 구성된 밀도 결정 모듈(964).
예시적인 실시예에서, 도 10에 도시된 바와 같이, 장치(900)는 다음을 추가로 포함한다: 제1 동작에 대응하는 동작 효과를 획득하도록 구성된 동작 효과 획득 모듈(972)- 동작 효과는 제1 동작에 의해 생성된 효과임 -; 및 동작 효과에 따라 제1 거리를 결정하도록 구성된 제1 거리 결정 모듈(974).
예시적인 실시예에서, 도 10에 도시된 바와 같이, 타깃 객체 선택 모듈(940)은 제1 동작의 실행 범위의 중심 위치를 획득하고; 제2 가상 객체들의 오프셋 논리 위치들과 중심 위치 사이의 거리들을 결정하고; 거리가 제2 조건을 충족시키는 제2 가상 객체를 타깃 가상 객체로서 결정하도록 구성된다.
전술한 바에 기초하여, 본 개시의 이 실시예에서 제공되는 기술적 해결책에 따르면, 사용자에 의해 제어되는 가상 객체의 동작의 실행 범위가 획득되고, 동작이 효과를 발휘할 수 있고 실행 범위에 포함되는 가상 객체들의 밀도가 특정 조건을 충족시킬 때, 가상 객체들의 논리 위치들이 오프셋되어, 가상 객체들의 위치들의 중첩으로 인해 클라이언트가 가상 객체들을 구별할 수 없는 경우를 회피한다. 논리 위치들이 오프셋된 후에, 클라이언트는 가상 객체들로부터의 오프셋 논리 위치들에 기초하여, 동작이 작용되는 타깃 가상 객체를 선택한다. 논리 위치들이 오프셋된 후에, 가상 객체들 사이의 거리들은 위치 중첩을 회피하기에 충분히 크다. 따라서, 클라이언트가 가상 객체들을 구별할 수 있어, 클라이언트에 의해 선택된 타깃 가상 객체가 사용자의 요건과 매칭되는 것이 보장된다. 또한, 본 개시의 이 실시예에서, 가상 객체들이 조밀하게 분포될 때, 클라이언트는 가상 객체들의 논리 위치들을 오프셋하여 가상 객체들이 구별될 수 있는 것을 보장한다. 따라서, 실행 범위로부터 클라이언트에 의해 선택된 타깃 가상 객체가 사용자의 예상과 매칭되는 것을 보장하기 위해 사용자가 동작의 실행 범위를 선택하는데 비교적 긴 시간을 소비하는 것이 방지되고, 그에 의해 사용자의 동작 시간 비용들을 감소시키고 동작 효율을 개선시킨다.
전술한 실시예들에서 제공되는 장치가 장치의 기능들을 구현할 때, 전술한 기능 모듈들의 분할은 단지 설명을 위한 예이다. 실제 애플리케이션에서, 기능들은 요건들에 따라 상이한 기능 모듈들에 할당되고 이들에 의해 완료될 수 있는데, 즉, 디바이스의 내부 구조는 상이한 기능 모듈들로 분할되어, 위에 설명된 기능들의 전부 또는 일부를 구현한다. 또한, 전술한 실시예들에서 제공된 장치 및 방법 실시예들은 하나의 개념에 속한다. 구체적인 구현 프로세스에 대해서는, 방법 실시예들이 참조될 수 있고, 상세 사항들은 여기서 다시 설명되지 않는다.
도 11은 본 개시의 실시예에 따른 단말기(1100)의 구조 블록도이다. 단말기(1100)는 모바일 폰, 태블릿 컴퓨터, 게임 콘솔, 전자책 리더, 멀티미디어 플레이어, 웨어러블 디바이스, 또는 PC와 같은 전자 디바이스일 수 있다. 단말기에서 실행 중인 클라이언트는 전술한 실시예들에서 제공된 가상 객체 선택 방법을 구현하도록 구성될 수 있다. 단말기는 도 1에 도시된 애플리케이션 실행 환경에서의 단말기(11)일 수 있다.
단말기(1100)는 프로세서(1101) 및 메모리(1102)를 포함할 수 있다.
프로세서(1101)는 하나 이상의 처리 코어를 포함할 수 있고, 예를 들어, 4-코어 프로세서 또는 8-코어 프로세서일 수 있다. 프로세서(1101)는, DSP(digital signal processor), FPGA(field-programmable gate array), PLA(programmable logic array) 중 적어도 하나의 하드웨어 형태로 구현될 수 있다. 프로세서(1101)는 대안적으로 메인 프로세서 및 코프로세서를 포함할 수 있다. 메인 프로세서는 어웨이크 상태에서 데이터를 처리하도록 구성된 프로세서이고 중앙 처리 유닛(CPU)이라고도 지칭하며, 코프로세서는 유휴 상태에서 데이터를 처리하도록 구성된 저전력 프로세서이다. 일부 실시예들에서, 프로세서(1101)는 GPU(graphics processing unit)와 통합될 수 있다. GPU는, 디스플레이 스크린에 디스플레이될 필요가 있는 콘텐츠를 렌더링하고 그리도록 구성된다. 일부 실시예들에서, 프로세서(1101)는 AI(artificial intelligence) 프로세서를 추가로 포함할 수 있다. AI 프로세서는 머신 러닝에 관련된 컴퓨팅 동작들을 처리하도록 구성된다.
메모리(1102)는 하나 이상의 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 비일시적(non-transient)일 수 있다. 메모리(1102)는, 고속 랜덤 액세스 메모리 및 비휘발성 메모리, 예를 들어, 하나 이상의 자기 디스크 저장 디바이스 또는 플래시 메모리 디바이스를 추가로 포함할 수 있다.
일부 실시예들에서, 메모리(1102)에서의 비일시적 컴퓨터 판독가능 저장 매체는 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하도록 구성되고, 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트는 가상 객체 선택 방법을 구현하기 위해 하나 이상의 프로세서에 의해 실행되도록 구성된다.
일부 실시예들에서, 단말기(1100)는: 주변 디바이스 인터페이스(1103) 및 적어도 하나의 주변 디바이스를 추가로 포함한다. 프로세서(1101), 메모리(1102) 및 주변 디바이스 인터페이스(1103)는 버스 또는 신호 케이블을 통해 접속될 수 있다. 각각의 주변 디바이스는 버스, 신호 케이블, 또는 회로 보드를 사용하여 주변 디바이스 인터페이스(1103)에 접속될 수 있다. 구체적으로, 주변 디바이스는: 무선 주파수(RF) 회로(1104), 터치 디스플레이 스크린(1105), 카메라(1107), 오디오 회로(1107), 위치결정 컴포넌트(1108), 및 전원(1109) 중 적어도 하나를 포함한다.
본 기술분야의 통상의 기술자는 도 11에 도시된 구조가 단말기(1100)에 대한 제한을 구성하지 않고, 단말기가 도면에 도시된 것들보다 더 많거나 더 적은 컴포넌트들을 포함할 수 있거나, 또는 일부 컴포넌트들이 조합될 수 있거나, 또는 상이한 컴포넌트 배치가 사용될 수 있다는 것을 이해할 것이다.
예시적인 실시예에서, 컴퓨터 판독가능 저장 매체가 추가로 제공되고, 저장 매체는 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하고, 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트는, 프로세서에 의해 실행될 때, 가상 객체 선택 방법을 구현한다.
일부 실시예들에서, 컴퓨터 판독가능 저장 매체는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 솔리드 스테이트 드라이브(SSD), 광학 디스크 등을 포함할 수 있다. RAM은 저항성 랜덤 액세스 메모리(resistance random access memory)(ReRAM) 및 동적 랜덤 액세스 메모리(dynamic random access memory)(DRAM)를 포함할 수 있다.
예시적인 실시예에서, 컴퓨터 프로그램 제품이 추가로 제공되고, 컴퓨터 프로그램 제품은, 프로세서에 의해 실행될 때, 가상 객체 선택 방법을 구현한다.
본 명세서에서 언급된 "복수의"는 2개 이상을 의미한다는 것을 이해해야 한다. "및/또는"은 연관된 객체들을 설명하기 위한 연관 관계를 설명하고 3개의 관계가 존재할 수 있다는 것을 나타낸다. 예를 들어, A 및/또는 B는 다음 세 가지 경우를 표현할 수 있다: A만 존재하고, A와 B가 모두 존재하고, 및 B만 존재하는 것. 본 명세서에서 문자 "/"는 일반적으로 연관된 객체들 사이의" 또는" 관계를 표시한다. 또한, 본 명세서에 설명된 동작 번호들은 동작들의 가능한 실행 시퀀스를 단지 예시적으로 도시한다. 일부 다른 실시예들에서, 동작들은 번호 시퀀스에 따라 수행되지 않을 수 있다. 예를 들어, 상이한 번호들을 갖는 2개의 동작이 동시에 수행될 수 있거나, 상이한 번호들을 갖는 2개의 동작이 도면에 도시된 시퀀스와 상반되는 시퀀스에 따라 수행될 수 있다. 이는 본 개시의 실시예들에 제한되지 않는다.
전술한 설명들은 본 개시의 예시적인 실시예들에 불과하고, 본 개시를 제한하도록 의도되지 않는다. 본 개시의 사상 및 원리 내에서 이루어지는 임의의 수정, 등가적인 대체 또는 개선은 본 개시의 보호 범위 내에 속해야 한다.
Claims (14)
- 단말기에 의해 수행되는 가상 객체 선택 방법으로서,
가상 환경에 대응하는 이미지 및 상기 가상 환경에 위치한 제1 가상 객체를 포함하는 사용자 인터페이스를 디스플레이하는 단계;
상기 가상 환경에서 상기 제1 가상 객체의 제1 동작의 실행 범위를 획득하는 단계;
상기 실행 범위에서 복수의 제2 가상 객체의 밀도가 제1 조건을 만족시키는 것에 기초하여, 상기 복수의 제2 가상 객체에서의 적어도 하나의 제2 가상 객체의 논리 위치를 오프셋하여 상기 적어도 하나의 제2 가상 객체 각각이 상기 복수의 제2 가상 객체 중의 다른 제2 가상 객체들로부터 멀어지도록 하고, 상기 적어도 하나의 제2 가상 객체의 오프셋 논리 위치를 획득하는 단계- 상기 논리 위치는 논리 계층에서 상기 제2 가상 객체를 처리하는 데 사용되는 위치이고, 상기 제2 가상 객체의 인터페이스 위치는 상기 논리 위치의 변화에 따라 변하지 않음 -; 및
상기 적어도 하나의 제2 가상 객체의 상기 오프셋 논리 위치에 기초하여 상기 복수의 제2 가상 객체로부터, 상기 제1 동작에 대응하는 것이 수행되는 타깃 가상 객체를 선택하는 단계를 포함하는 방법. - 제1항에 있어서,
n개의 제2 가상 객체가 있고, n은 1보다 큰 정수이고,
상기 복수의 제2 가상 객체에서의 적어도 하나의 제2 가상 객체의 논리 위치를 오프셋하여, 상기 하나의 제2 가상 객체의 오프셋 논리 위치를 획득하는 단계는:
상기 n개의 제2 가상 객체에서 i번째 제2 가상 객체의 오프셋 방향을 결정하고 상기 i번째 제2 가상 객체의 오프셋 거리를 결정하는 단계- 상기 오프셋 방향은 다른 제2 가상 객체들로부터 더 멀리 떨어진 방향이고, i는 n보다 작거나 같은 양의 정수임 -; 및
상기 오프셋 거리만큼 상기 오프셋 방향을 따라 i번째 제2 가상 객체의 논리 위치를 이동시켜, 상기 i번째 제2 가상 객체의 오프셋 논리 위치를 획득하는 단계를 포함하는, 방법. - 제2항에 있어서,
상기 i번째 제2 가상 객체의 상기 오프셋 방향을 결정하는 것은:
상기 i번째 제2 가상 객체에 대응하는 반발(repulsive) 가상 객체들을 결정하는 것- 상기 반발 가상 객체들은 상기 i번째 제2 가상 객체로부터의 거리들이 제1 거리보다 작은 다른 제2 가상 객체들을 포함함 -;
상기 i번째 제2 가상 객체에 대한 상기 반발 가상 객체들의 반발력들을 획득하는 것- 상기 반발력의 크기는 상기 반발 가상 객체의 속성 정보와 연관되고, 상기 반발력의 방향은 상기 반발 가상 객체로부터 상기 i번째 제2 가상 객체로의 방향임 -; 및
상기 i번째 제2 가상 객체에 대한 상기 반발 가상 객체들의 반발력들의 합력(resultant force)의 방향을 상기 i번째 제2 가상 객체의 오프셋 방향으로서 결정하는 것을 포함하는, 방법. - 제2항에 있어서,
상기 i번째 제2 가상 객체의 상기 오프셋 방향을 결정하는 것은:
상기 실행 범위의 중심 위치를 획득하는 것; 및
상기 중심 위치로부터 상기 i번째 제2 가상 객체로의 방향을 상기 i번째 제2 가상 객체의 상기 오프셋 방향으로서 결정하는 것을 포함하는, 방법. - 제2항에 있어서,
상기 i번째 제2 가상 객체의 상기 오프셋 방향을 결정하는 것은:
상기 실행 범위의 중심 축을 획득하는 것; 및
상기 중심 축에 대한 상기 i번째 상기 제2 가상 객체의 방향과 반대 방향을 상기 i번째 제2 가상 객체의 상기 오프셋 방향으로서 결정하는 것을 포함하는, 방법. - 제2항에 있어서,
상기 i번째 제2 가상 객체의 상기 오프셋 거리를 결정하는 것은:
상기 i번째 제2 가상 객체가 속하는 카테고리를 획득하는 것; 및
상기 i번째 제2 가상 객체가 속하는 카테고리에 따라 상기 i번째 제2 가상 객체의 상기 오프셋 거리를 결정하는 것을 포함하는, 방법. - 제2항에 있어서,
상기 오프셋 거리만큼 상기 오프셋 방향을 따라 상기 i번째 제2 가상 객체의 상기 논리 위치를 이동시킨 후에,
상기 제1 가상 객체와 상기 i번째 제2 가상 객체의 상기 오프셋 논리 위치 사이의 거리를 획득하는 단계;
상기 거리가 제2 거리보다 큰 것에 기초하여, 오프셋 전후의, 상기 제1 가상 객체에 대한 상기 i번째 제2 가상 객체의 논리 위치들에 의해 형성된 각도인 오프셋 각도를 획득하는 단계;
상기 오프셋 각도가 각도 임계값보다 작은 것에 기초하여, i번째 제2 가상 객체의 오프셋 방향을 결정하고 상기 i번째 제2 가상 객체의 오프셋 거리를 결정하는 동작들로부터 동작들을 다시 수행하는 단계- 상기 i번째 제2 가상 객체의 상기 오프셋 논리 위치의 오프셋 방향 및 오프셋 거리는 상기 동작들이 다시 수행될 때 결정됨 -; 및
상기 오프셋 각도가 상기 각도 임계값보다 크거나 같은 것에 기초하여 상기 i번째 제2 가상 객체의 상기 오프셋 논리 위치를 획득하는 단계를 추가로 포함하는 방법. - 제1항에 있어서,
n개의 제2 가상 객체가 있고, n은 1보다 큰 정수이고;
상기 가상 환경에서 상기 제1 가상 객체의 상기 제1 동작의 상기 실행 범위를 획득하는 단계 후에, 상기 방법은:
상기 n개의 제2 가상 객체에서 2개의 제2 가상 객체마다 그 사이(between every two second virtual objects)의 거리들을 결정하는 단계; 및
제1 거리보다 작은 거리가 상기 거리들에 포함되는 것에 기초하여, 상기 밀도가 상기 제1 조건을 충족시킨다고 결정하는 단계를 추가로 포함하는 방법. - 제8항에 있어서,
상기 제1 동작에 대응하는 동작 효과를 획득하는 단계- 상기 동작 효과는 상기 제1 동작에 의해 생성되는 효과임 -; 및
상기 동작 효과에 따라 상기 제1 거리를 결정하는 단계를 추가로 포함하는 방법. - 제1항 내지 제9항 중 어느 한 항에 있어서,
상기 적어도 하나의 제2 가상 객체의 상기 오프셋 논리 위치에 기초하여 상기 제2 가상 객체들로부터 상기 제1 동작에 대응하는 타깃 가상 객체를 선택하는 것은:
상기 제1 동작의 상기 실행 범위의 중심 위치를 획득하는 것;
상기 제2 가상 객체들의 오프셋 논리 위치들과 상기 중심 위치 사이의 거리들을 결정하는 것; 및
상기 거리가 제2 조건을 충족시키는 제2 가상 객체를 상기 타깃 가상 객체로서 결정하는 것을 포함하는, 방법. - 가상 객체 선택 장치로서,
사용자 인터페이스를 디스플레이하도록 구성된 사용자 인터페이스 디스플레이 모듈- 상기 사용자 인터페이스는 가상 환경에 대응하는 이미지 및 상기 가상 환경에 위치한 제1 가상 객체를 포함함 -;
상기 가상 환경에서 상기 제1 가상 객체의 제1 동작의 실행 범위를 획득하도록 구성된 실행 범위 획득 모듈;
상기 실행 범위에서의 복수의 제2 가상 객체의 밀도가 제1 조건을 만족시키는 것에 기초하여, 상기 복수의 제2 가상 객체에서의 적어도 하나의 제2 가상 객체의 논리 위치를 오프셋하여 상기 적어도 하나의 제2 가상 객체 각각이 상기 복수의 제2 가상 객체 중의 다른 제2 가상 객체들로부터 멀어지도록 하고, 상기 적어도 하나의 제2 가상 객체의 오프셋 논리 위치를 획득하도록 구성된 논리 위치 오프셋 모듈- 상기 논리 위치는 논리 계층에서 상기 제2 가상 객체를 처리하는 데 사용되는 위치이고, 상기 제2 가상 객체의 인터페이스 위치는 상기 논리 위치의 변화에 따라 변하지 않음 -; 및
상기 적어도 하나의 제2 가상 객체의 상기 오프셋 논리 위치에 기초하여 상기 복수의 제2 가상 객체로부터, 상기 제1 동작에 대응하는 것이 수행되는 타깃 가상 객체를 선택하도록 구성된 타깃 객체 선택 모듈을 포함하는 장치. - 프로세서 및 메모리를 포함하는 단말기로서,
상기 메모리는 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하고, 상기 적어도 하나의 명령어, 상기 적어도 하나의 프로그램, 상기 코드 세트, 또는 상기 명령어 세트는 제1항 내지 제9항 중 어느 한 항에 따른 가상 객체 선택 방법을 구현하기 위해 상기 프로세서에 의해 로딩되고 실행되는, 단말기. - 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하는 컴퓨터 판독가능 저장 매체로서,
상기 적어도 하나의 명령어, 상기 적어도 하나의 프로그램, 상기 코드 세트, 또는 상기 명령어 세트는 제1항 내지 제9항 중 어느 한 항에 따른 가상 객체 선택 방법을 구현하기 위해 프로세서에 의해 로딩되고 실행되는, 컴퓨터 판독가능 저장 매체. - 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010507561.6A CN111672117B (zh) | 2020-06-05 | 2020-06-05 | 虚拟对象的选择方法、装置、设备及存储介质 |
CN202010507561.6 | 2020-06-05 | ||
PCT/CN2021/095052 WO2021244307A1 (zh) | 2020-06-05 | 2021-05-21 | 虚拟对象的选择方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210151866A KR20210151866A (ko) | 2021-12-14 |
KR102656970B1 true KR102656970B1 (ko) | 2024-04-16 |
Family
ID=72435217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217035807A KR102656970B1 (ko) | 2020-06-05 | 2021-05-21 | 가상 객체 선택 방법 및 장치, 디바이스, 및 저장 매체 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12064693B2 (ko) |
EP (1) | EP3950080A4 (ko) |
JP (1) | JP7137719B2 (ko) |
KR (1) | KR102656970B1 (ko) |
CN (1) | CN111672117B (ko) |
WO (1) | WO2021244307A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10943388B1 (en) * | 2019-09-06 | 2021-03-09 | Zspace, Inc. | Intelligent stylus beam and assisted probabilistic input to element mapping in 2D and 3D graphical user interfaces |
CN111672117B (zh) * | 2020-06-05 | 2021-07-09 | 腾讯科技(深圳)有限公司 | 虚拟对象的选择方法、装置、设备及存储介质 |
US11148055B1 (en) * | 2020-09-11 | 2021-10-19 | Riot Games, Inc. | Targeting of an individual object among a plurality of objects in a multi-player online video game |
CN116688503B (zh) * | 2022-02-28 | 2024-08-27 | 腾讯科技(深圳)有限公司 | 虚拟对象的控制方法、装置、终端、存储介质及程序产品 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200054947A1 (en) * | 2017-11-15 | 2020-02-20 | Tencent Technology (Shenzhen) Company Ltd | Object selection method, terminal and storage medium |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10272258A (ja) * | 1997-01-30 | 1998-10-13 | Sega Enterp Ltd | 画像処理装置 |
JP4307310B2 (ja) * | 2004-03-31 | 2009-08-05 | 任天堂株式会社 | ゲーム装置及びゲームプログラム |
US8210943B1 (en) * | 2006-05-06 | 2012-07-03 | Sony Computer Entertainment America Llc | Target interface |
US8342926B2 (en) * | 2008-07-13 | 2013-01-01 | Sony Computer Entertainment America Llc | Game aim assist |
JP2010233821A (ja) | 2009-03-31 | 2010-10-21 | Namco Bandai Games Inc | ゲームシステム、プログラム及び情報記憶媒体 |
CN104915117B (zh) * | 2015-06-16 | 2017-03-22 | 深圳市腾讯计算机系统有限公司 | 控制与虚拟目标进行交互的方法和装置 |
US10115240B2 (en) | 2015-08-11 | 2018-10-30 | Amazon Technologies, Inc. | Virtual area generation and manipulation |
CN107803028B (zh) | 2017-09-30 | 2019-03-08 | 网易(杭州)网络有限公司 | 信息处理方法、装置、电子设备及存储介质 |
CN108379844B (zh) * | 2018-03-30 | 2020-10-23 | 腾讯科技(深圳)有限公司 | 控制虚拟对象移动的方法、装置、电子装置及存储介质 |
CN109513209B (zh) * | 2018-11-22 | 2020-04-17 | 网易(杭州)网络有限公司 | 虚拟对象处理方法及装置、电子设备以及存储介质 |
CN109771941B (zh) * | 2019-03-13 | 2022-08-05 | 网易(杭州)网络有限公司 | 游戏中虚拟对象的选择方法及装置、设备和介质 |
CN110433493B (zh) * | 2019-08-16 | 2023-05-30 | 腾讯科技(深圳)有限公司 | 虚拟对象的位置标记方法、装置、终端及存储介质 |
CN111589114B (zh) * | 2020-05-12 | 2023-03-10 | 腾讯科技(深圳)有限公司 | 虚拟对象的选择方法、装置、终端及存储介质 |
CN111672117B (zh) * | 2020-06-05 | 2021-07-09 | 腾讯科技(深圳)有限公司 | 虚拟对象的选择方法、装置、设备及存储介质 |
CN111672114B (zh) * | 2020-06-05 | 2022-03-18 | 腾讯科技(深圳)有限公司 | 目标虚拟对象确定方法、装置、终端及存储介质 |
CN111672119B (zh) * | 2020-06-05 | 2023-03-10 | 腾讯科技(深圳)有限公司 | 瞄准虚拟对象的方法、装置、设备及介质 |
CN111672113B (zh) * | 2020-06-05 | 2022-03-08 | 腾讯科技(深圳)有限公司 | 虚拟对象的选择方法、装置、设备及存储介质 |
CN112604305B (zh) * | 2020-12-17 | 2022-11-18 | 腾讯科技(深圳)有限公司 | 虚拟对象的控制方法、装置、终端及存储介质 |
-
2020
- 2020-06-05 CN CN202010507561.6A patent/CN111672117B/zh active Active
-
2021
- 2021-05-21 KR KR1020217035807A patent/KR102656970B1/ko active IP Right Grant
- 2021-05-21 JP JP2021564718A patent/JP7137719B2/ja active Active
- 2021-05-21 WO PCT/CN2021/095052 patent/WO2021244307A1/zh unknown
- 2021-05-21 EP EP21783123.9A patent/EP3950080A4/en active Pending
- 2021-10-04 US US17/492,819 patent/US12064693B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200054947A1 (en) * | 2017-11-15 | 2020-02-20 | Tencent Technology (Shenzhen) Company Ltd | Object selection method, terminal and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US12064693B2 (en) | 2024-08-20 |
EP3950080A1 (en) | 2022-02-09 |
US20220023760A1 (en) | 2022-01-27 |
WO2021244307A1 (zh) | 2021-12-09 |
CN111672117B (zh) | 2021-07-09 |
CN111672117A (zh) | 2020-09-18 |
JP2022532315A (ja) | 2022-07-14 |
JP7137719B2 (ja) | 2022-09-14 |
EP3950080A4 (en) | 2022-08-31 |
KR20210151866A (ko) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102688040B1 (ko) | 가상 객체 컨트롤 방법 및 장치, 디바이스 및 저장 매체 | |
KR102625233B1 (ko) | 가상 객체를 제어하기 위한 방법, 및 관련 장치 | |
KR102656970B1 (ko) | 가상 객체 선택 방법 및 장치, 디바이스, 및 저장 매체 | |
JP7387758B2 (ja) | インタフェース表示方法、装置、端末、記憶媒体及びコンピュータプログラム | |
KR102641337B1 (ko) | 가상 객체 선택 방법 및 장치, 디바이스 및 저장 매체 | |
WO2022037529A1 (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
KR102603609B1 (ko) | 가상적 객체들을 선택하기 위한 방법, 장치, 단말, 및 저장 매체 | |
WO2023020125A1 (zh) | 虚拟环境画面的显示方法、装置、终端、介质及程序产品 | |
JP2024026661A (ja) | 仮想オブジェクトの制御方法、装置、端末及びコンピュータプログラム | |
US20240367042A1 (en) | Method for selecting virtual objects, apparatus, terminal and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |