KR20110033864A - 시뮬레이션에서의 물리 상호작용을 위한 시스템 및 방법 - Google Patents

시뮬레이션에서의 물리 상호작용을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20110033864A
KR20110033864A KR1020117004041A KR20117004041A KR20110033864A KR 20110033864 A KR20110033864 A KR 20110033864A KR 1020117004041 A KR1020117004041 A KR 1020117004041A KR 20117004041 A KR20117004041 A KR 20117004041A KR 20110033864 A KR20110033864 A KR 20110033864A
Authority
KR
South Korea
Prior art keywords
objects
physical
player character
defining
readable medium
Prior art date
Application number
KR1020117004041A
Other languages
English (en)
Other versions
KR101357978B1 (ko
Inventor
젠스 앤더슨
드류 파워스
Original Assignee
소니 온라인 엔터테인먼트 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 온라인 엔터테인먼트 엘엘씨 filed Critical 소니 온라인 엔터테인먼트 엘엘씨
Publication of KR20110033864A publication Critical patent/KR20110033864A/ko
Application granted granted Critical
Publication of KR101357978B1 publication Critical patent/KR101357978B1/ko

Links

Images

Classifications

    • A63F13/10
    • 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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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/45Controlling the progress of the video game
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • 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
    • 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/54Controlling the output signals based on the game progress involving acoustic signals, e.g. for simulating revolutions per minute [RPM] dependent engine sounds in a driving game or reverberation against a virtual wall
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Abstract

온라인 컴퓨터 게임 내의 객체들의 상호작용들과 같은 컴퓨터 시뮬레이션 내의 물리 상호작용들을 관리하기 위한 기술을 구현하기 위한 시스템들 및 방법들이 제공된다. 시뮬레이션 내의 객체들은 물리 객체들이거나 물리 객체들이 될 수 있으며, 이어서 동작시에 물리 시뮬레이터의 규칙들에 따라 거동한다. 상이한 구현들은 아이템들이 물리 객체들이 되는 방법 및 물리 객체들을 관리하는 데 사용되는 규칙들에 대해 상이한 규칙들을 사용할 수 있다. 물리 객체 상호작용들은 사전 정의된 상호작용들의 고수가 아니라 그들의 물리적 특성들에 기초하여 결정되므로, 결과적인 상호작용들은 스크립트화되는 것이 아니라 불시에 나타난다.

Description

시뮬레이션에서의 물리 상호작용을 위한 시스템 및 방법{SYSTEM AND METHOD FOR PHYSICS INTERACTIONS IN A SIMULATION}
<관련 출원의 상호 참조>
본 출원은 "Physics Interactions in a Simulation"이라는 제목으로 2008년 7월 22일자로 출원되고, 본 명세서에 그 전체가 참고 문헌으로 포함되는 미국 특허 가출원 제61/082,679호의 이익을 주장한다.
"MMO"(massively multiplayer online) 게임들은 엄청난 인기를 누리고 있으며, 일부 게임들은 플레이어들이 수십만 명, 심지어는 수백만 명에 이른다. MMO들과 같은 시뮬레이션들에서 가상 객체들의 움직임 및 물리적 상호작용들은 개발자에 의해 설정된 규칙들에 의해 제어된다. 그러한 움직임 및 상호작용들의 리얼리즘을 증가시키고, 따라서 플레이어 몰입을 증가시키기 위한 한 가지 방법은 사전 정의된 물리 객체들의 운동을 사전 결정된(그러나 변경 가능한) 물리 법칙들에 따라 제어하는 물리 시뮬레이터 또는 엔진을 이용하는 것이다.
물리 엔진들은 향상된 리얼리즘 상태를 제공한다. 물체들의 에너지 및 운동량의 보존은 물론, 탄성 변형과 같은 이차원 또는 삼차원의 법칙들을 이용하면, 물리 객체들은 이전의 시스템들에서보다 훨씬 더 예측되고 현실적인 방식들로 움직이는 것으로 보이는 경향이 있다.
본 시스템 및 방법의 구현들은 시뮬레이션 내의 아이템들이 어떻게 물리 객체들이 되고(이어서, 물리 엔진 또는 시뮬레이터의 규칙들에 따라 거동하고), 또한 물리 객체들을 관리하기 위해 어떻게 규칙들이 적용되는지를 포함한다. 이러한 구현들에서, 물리 객체들의 상호작용은 처음의 일정한 규칙들의 세트에 의해서만 지시되는 것이 아니라 불시에 나타난다.
MMO와 같은 시뮬레이션 내의 물리 객체들은 움직이거나 임의의 다른 입력을 경험할 때 물리 시뮬레이션들에 기초하여 그렇게 하는 가상 객체들이다. 따라서, 이들은 시뮬레이션을 위해 정의되는 가상 삼차원 객체들의 더 큰 그룹의 서브세트일 수 있다. 그러한 물리 객체들에 영향을 미치는 힘들 및 이벤트들은 사소한 충돌에서 대형 폭발에 이르는 범위에 걸칠 수 있다. 본 명세서에서, 물리 시뮬레이션들의 규칙들에 따라 동작하지 않는 객체들은 비물리 객체들로서 지칭된다. 아래와 관련하여, "객체"라는 용어의 사용은 자동으로 물리 객체들 및 비물리 객체들 중 어느 하나 또는 모두와 관련될 수 있다.
설명되는 구현들 중 일부에서, 물리 객체들은 사전 정의되는 것만이 아니라, 플레이어들이 물리 객체들을 생성할 수 있고(예를 들어, 벽을 손상시키는 플레이어는 벽 조각들이 물리 객체들이 되게 할 수 있다), 플레이어들은 그들 자신의 또는 다른 플레이어들의 플레이어 캐릭터들을 물리 객체들로 바꿀 수도 있다.
구체적인 예로서, 온라인 멀티플레이어 게임에서, 플레이어 캐릭터는 벽을 파괴한 후에 콘크리트 조각을 주워서 이를 문에 향해 추진시켜, 접촉시에 문이 회전하여 열리게 할 수 있다. 이어서, 논-플레이어(non-player) 캐릭터들의 그룹이 플레이어 캐릭터를 공격할 수 있다. 플레이어 캐릭터는 공격에 대응하여, 다른 콘크리트 조각을 논-플레이어 캐릭터들을 향해 던져, 논-플레이어 캐릭터들을 여러 방향으로 던질 수 있다. 하나의 논-플레이어 캐릭터는 책상에 충돌하여 책상을 세게 쳐서 방 안을 가로지르게 할 수 있다. 이러한 시나리오에서, 콘크리트 조각들은 벽으로부터 동적으로 생성된 물리 객체들이다. 논-플레이어 캐릭터들은 공중으로 던져질 때 물리 객체들이 되며, 책상도 물리 객체이다.
이러한 물리 객체들의 상호작용으로부터 상승적인 의외의 효과들이 발생할 수 있으며, 이러한 효과들은 사전 정의된 것이 아니라, 물리 객체들의 속성들 자체의 상호작용으로부터 발생한다. 일례로서, 플레이어 캐릭터 'A'는 플레이어 캐릭터 B를 얼음 블록 내에 얼어붙게 한다. 플레이어 캐릭터 C는 블록을 전기로 충전한다. 이어서, 플레이어 캐릭터 A는 블록을 주워들어 감전사할 수 있으며, 블록이 파괴되어 플레이어 캐릭터 B가 자유로워진다.
이러한 상승적인 의외의 효과들을 달성하기 위하여, 물리 객체들은 기본 파라미터들, 예컨대 크기, 형상, 밀도, 조건들, 예를 들어 이동성인지 또는 비이동성인지, 손상되는지 또는 파괴되는지의 여부, 및 게임 효과들, 예컨대 물리 객체들에 적용되는 게임 역학과 관련된다. 물리 객체들은 "무기화"될 수 있으며, 이러한 경우에 이들은 적대하는 플레이어 캐릭터들을 공격하는 데 사용될 수 있다. 오디오 및 비주얼 효과들, 예를 들어 표면 손상, 입자들 및 사운드들도 물리 객체들에 동반할 수 있다.
게임 환경은 그의 물리 객체들의 사용 정도, 따라서 그의 후속 파괴성이 변할 수 있다. 아이콘 빌딩들과 같은 일부 객체들은 "단단한 기하(hard geometry)"를 가질 수 있으며, 이러한 객체들은 일시적인 표면 손상을 보일 수 있지만, 움직이지 않고 파괴되지 않는다. "유연한 기하(soft geometry)"를 가진 다른 객체들은 충돌시에 이동할 수 있으며, 완전히 파괴될 수도 있다. 이러한 타입의 객체들은 시간이 지남에 따라 스스로 복구될 수 있다. 플레이어 지시시에 생성되는 인스턴스들은 주어진 플레이어 또는 플레이어들의 그룹에 대해 사적이고 고유한 환경일 것으로 의도되므로 더 취약할 수 있다. 이러한 예들에서는, 새로 경험할 다음 플레이어를 위해, 인스턴스들이 재설정될 수 있고, 모든 물리 객체들이 그들의 본래 조건으로 복원될 수 있다.
다양한 변형들이 가능하다. 예를 들어, 물리 상호작용의 타입이 게임마다 다를 수 있으며, 일부 게임들은 고도의 리얼리즘을 필요로 하는 반면, 다른 게임들은 풍자화 이상의 리얼리티를 묘사할 수 있다.
일 양태에서, 본 발명은 전자 장치 내의 프로세서로 하여금 시뮬레이션 내의 가상 삼차원 객체들을 관리하는 방법을 수행하게 하기 위한 명령어들을 포함하는 컴퓨터 판독 가능 매체에 관한 것이다. 상기 방법은 시뮬레이션 내의 가상 삼차원 객체들의 서브세트를 물리 객체들로서 정의하는 단계; 상기 물리 객체들 중 제1 물리 객체에 대한 적어도 제1 기본 파라미터 및 제1 상태를 정의하는 단계 - 상기 제1 기본 파라미터는 제1 값 및 제1 타입에 의해 특성화됨 -; 상기 물리 객체들 중 제2 물리 객체에 대한 적어도 제2 기본 파라미터 및 제2 상태를 정의하는 단계 - 상기 제2 기본 파라미터는 제2 값 및 제2 타입에 의해 특성화되고, 상기 제1 타입은 상기 제2 타입과 다름 -; 상기 물리 객체들 중 상기 제1 물리 객체와 상기 제2 물리 객체 사이의 적어도 하나의 상호작용을 정의하는 단계 - 상기 상호작용의 결과는 상기 제1 및 제2 파라미터들 및 상기 제1 및 제2 상태들에 적어도 부분적으로 의존함 -; 및 신호를 렌더러로 전송하고, 상기 상호작용의 결과의 지시를 렌더링하는 단계를 포함한다.
본 발명의 구현들은 다음 중 하나 이상을 포함할 수 있다. 상기 적어도 하나의 상호작용을 정의하는 단계는 상기 제1 및 제2 객체들 간의 충돌의 발생이 검출되는 것에 의해 유발될 수 있다. 상기 적어도 하나의 상호작용을 정의하는 단계는 상기 제1 또는 제2 객체들 중 어느 하나와 플레이어 캐릭터 또는 논-플레이어 캐릭터에 의해 지향된 투사물 사이의 충돌의 발생이 검출되는 것에 의해 유발될 수 있다. 상기 적어도 하나의 상태는 이동, 고정, 손상, 파괴 또는 부착으로 구성되는 그룹으로부터 선택될 수 있다. 상기 시뮬레이션은 멀티플레이어 온라인 게임일 수 있다. 상기 제1 또는 제2 객체들 중 적어도 하나는 플레이어 캐릭터 또는 논-플레이어 캐릭터일 수 있다. 상기 방법은 상기 제1 또는 제2 물리 객체들 중 적어도 하나를 유연한 기하를 갖는 것으로서 정의하는 단계를 더 포함할 수 있으며, 유연한 기하를 갖는 물리 객체의 상태가 손상되는 경우, 상기 방법은 상기 물리 객체를 적어도 2개의 물리 객체 또는 적어도 물리 객체 및 비물리 객체로 대체하는 단계를 더 포함한다. 상기 방법은 상기 제1 또는 제2 물리 객체들 중 적어도 하나를 단단한 기하를 갖는 것으로서 정의하는 단계를 더 포함할 수 있으며, 단단한 기하를 갖는 물리 객체의 상태가 손상되는 경우, 상기 방법은 단단한 기하를 갖는 상기 물리 객체 상의 손상 효과들을 렌더링하는 단계를 더 포함한다. 상기 제1 및 제2 타입들은 무게, 크기, 형상, 밀도 및 전도율로 구성되는 그룹으로부터 선택될 수 있다. 상기 상호작용의 결과는 객체 규칙 세트 또는 탐색표에 의해 결정될 수 있다. 상기 방법은 물리 객체들로서 이전에 정의되지 않은 상기 가상 삼차원 객체들 중 하나로부터 물리 객체를 정의하는 단계를 더 포함할 수 있다. 상기 정의된 물리 객체는 플레이어 캐릭터일 수 있다. 상기 정의된 물리 객체는 무기로서 정의된 상태를 가질 수 있다. 상기 적어도 하나의 상호작용을 정의하는 단계는 적어도 하나의 규칙 세트를 정의하는 단계를 포함할 수 있으며, 상기 규칙 세트는 공통 타입을 갖는 기본 파라미터들을 갖는 물리 객체들과 관련된다. 상기 방법은 상기 물리 객체들 중 적어도 하나의 물리 객체에 대한 적어도 하나의 게임 효과를 정의하는 단계를 더 포함할 수 있으며, 트리거가 발생하는 경우, 상기 게임 효과가 발생한다. 상기 방법은 상기 물리 객체들 중 적어도 하나의 물리 객체에 대한 적어도 하나의 오디오 또는 비주얼 효과를 정의하는 단계를 더 포함할 수 있으며, 트리거가 발생하는 경우, 상기 오디오 또는 비주얼 효과가 렌더링된다.
다른 양태에서, 본 발명은 전자 장치 내의 프로세서로 하여금 시뮬레이션 내의 가상 삼차원 객체들을 관리하는 방법을 수행하게 하기 위한 명령어들을 포함하는 컴퓨터 판독 가능 매체에 관한 것이다. 상기 방법은 시뮬레이션 내의 가상 삼차원 객체들의 서브세트를 물리 객체들로서 정의하는 단계; 상기 물리 객체들 중 제1 물리 객체에 대한 적어도 제1 기본 파라미터 및 제1 상태를 정의하는 단계 - 상기 제1 기본 파라미터는 제1 값 및 제1 타입에 의해 특성화됨 -; 적어도 하나의 트리거를 정의하는 단계 - 상기 트리거의 발생시 상기 물리 객체들 중 제1 물리 객체는 상기 제1 상태에서 제2 상태로 전이되고, 상기 전이의 결과는 상기 제1 파라미터 및 상기 제1 상태에 적어도 부분적으로 의존함 -; 및 신호를 렌더러로 전송하고, 상기 전이의 결과의 지시를 렌더링하는 단계를 포함한다.
본 발명의 구현들은 다음 중 하나 이상을 포함할 수 있다. 상기 트리거는 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 물리 객체들 중 제1 물리 객체를 터치하는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 물리 객체들 중 제1 물리 객체를 손상시키는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 물리 객체들 중 제1 물리 객체를 주워드는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 물리 객체들 중 제1 물리 객체를 던지는 것 또는 사전 결정된 스크립트화된 이벤트로 구성된 그룹으로부터 선택될 수 있다. 상기 적어도 하나의 트리거를 정의하는 단계는 플레이어 캐릭터, 논-플레이어 캐릭터 또는 가상 객체에 의해 유발될 수 있는 적어도 하나의 트리거를 정의하는 단계를 포함할 수 있으며, 상기 트리거 이벤트에 대한 적어도 하나의 정성자(qualifier)를 정의하는 단계를 더 포함할 수 있으며, 상기 적어도 하나의 정성자를 정의하는 단계는 어느 플레이어 캐릭터들, 논-플레이어 캐릭터들 또는 가상 객체들이 전이를 유발하도록 허가되는지 또는 언제 전이들이 발생하도록 허가되는지를 정의하는 단계를 포함한다. 상기 시뮬레이션은 MMO일 수 있다.
또 다른 양태에서, 본 발명은 전자 장치 내의 프로세서로 하여금 시뮬레이션 내의 가상 삼차원 객체들을 관리하는 방법을 수행하게 하기 위한 명령어들을 포함하는 컴퓨터 판독 가능 매체에 관한 것이다. 상기 방법은 시뮬레이션 내의 적어도 하나의 가상 삼차원 객체를 비물리 객체들로서 정의하는 단계; 적어도 하나의 트리거를 정의하는 단계 - 상기 트리거의 발생시, 상기 적어도 하나의 가상 삼차원 객체를 물리 객체로 전이시킴 -; 및 신호를 렌더러로 전송하고, 상기 전이의 결과의 지시를 렌더링하는 단계를 포함한다.
본 발명의 구현들은 다음 중 하나 이상을 포함할 수 있다. 상기 트리거는 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 가상 삼차원 객체를 터치하는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 가상 삼차원 객체를 손상시키는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 가상 삼차원 객체를 주워드는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 가상 삼차원 객체를 던지는 것 또는 사전 결정된 스크립트화된 이벤트로 구성된 그룹으로부터 선택될 수 있다. 상기 적어도 하나의 트리거를 정의하는 단계는 플레이어 캐릭터, 논-플레이어 캐릭터 또는 가상 객체에 의해 유발될 수 있는 적어도 하나의 트리거를 정의하는 단계를 포함할 수 있으며, 상기 트리거에 대한 적어도 하나의 정성자를 정의하는 단계를 더 포함할 수 있으며, 상기 적어도 하나의 정성자를 정의하는 단계는 어느 플레이어 캐릭터들, 논-플레이어 캐릭터들 또는 가상 객체들이 전이를 유발하도록 허가되는지 또는 언제 전이들이 발생하도록 허가되는지를 정의하는 단계를 포함한다.
또 다른 양태에서, 본 발명은 시뮬레이션 내의 가상 삼차원 객체들을 관리하기 위한 시스템을 포함하는 컴퓨터 판독 가능 매체에 관한 것으로서, 상기 매체는 상태에 의해 부분적으로 정의되는 물리 객체들을 포함하는 복수의 가상 객체에 대한 데이터를 저장하기 위한 데이터베이스 모듈; 및 객체의 제1 상태에서 제2 상태로의 전이들을 정의하기 위한 트리거 정의 모듈을 포함하는 물리 엔진 모듈을 포함한다.
본 발명의 구현들은 다음 중 하나 이상을 포함할 수 있다. 상기 제1 상태는 비물리 객체일 수 있으며, 상기 제2 상태는 물리 객체일 수 있다.
추가 양태에서, 본 발명은 시뮬레이션 내의 가상 삼차원 객체들을 관리하기 위한 시스템을 포함하는 컴퓨터 판독 가능 매체에 관한 것이다. 상기 매체는 상태에 의해 부분적으로 정의되는 물리 객체들을 포함하는 복수의 가상 객체에 대한 데이터를 저장하기 위한 데이터베이스 모듈; 및 물리 객체들 사이 또는 물리 객체들과 비물리 객체들 사이의 상호작용들을 정의하기 위한 상호작용 정의 모듈, 및 물리 객체들 사이 또는 물리 객체들과 비물리 객체들 사이의 상호작용의 결과를 정의하기 위한 객체 규칙 세트를 포함하는 물리 엔진 모듈을 포함한다. 본 발명의 구현들은 상기 객체 규칙 세트가 탐색표일 수 있음을 포함할 수 있다. 상기 다양한 정의 단계들은 소정 객체들에 대한 개발 동안에 그리고 다른 객체들에 대한 게임 플레이 또는 게임 개시 동안에 수행될 수 있다.
본 발명의 이익들은 다음 중 하나 이상을 포함할 수 있다. 물리 객체들은 사전 정의되는 것만이 아니라, 객체들이 게임 플레이 동안에 물리 객체들로 전이할 수 있다. 규칙들은 어떤 객체들이 물리 객체들인지 그리고 전이들이 어떻게 발생하는지를 정의한다. 규칙들은 또한 물리 객체들이 어떻게 서로 상호작용하는지를 정의한다. 결과적인 게임 플레이는 상승적이고 의외일 수 있으며, 의외의 결과들을 발생시킬 수 있다.
도 1은 시뮬레이션, 예컨대 멀티플레이어 게임의 예시적인 환경을 도시하고, 어떻게 물리 객체들이 생성될 수 있고, 의외의 방식으로 다른 물리 객체들과 상호작용할 수 있는지를 더 도시하는 도면이다.
도 2는 클라이언트-서버 아키텍처를 포함하는 멀티플레이어 게임과 같은 시뮬레이션을 구현하는 데 사용될 수 있는 시스템의 논리도이다.
도 3은 물리 객체와 같은 가상 객체의 부분 데이터 구조를 나타내는 도면이다.
도 4는 물리 객체들의 상호작용들을 구현하기 위한 방법의 흐름도이다.
도 5는 물리 객체들의 상호작용들을 구현하기 위한 다른 방법의 흐름도이다.
도 6은 비물리 객체들로부터 물리 객체들을 생성하기 위한 방법의 흐름도이다.
도 1을 참조하면, 시뮬레이션, 예컨대 멀티플레이어 게임의 예시적인 환경이 도시되어 있다. 이 환경은 다양하게 변할 수 있으며, 예를 들어 판타지 시뮬레이션, 공상 과학 소설 시뮬레이션, 우주 시뮬레이션, 실세계 시뮬레이션, 도시 시뮬레이션, 천계 시뮬레이션, 수퍼히어로 시뮬레이션, 오프라인 게임 등일 수 있다. 도 1의 예시적인 시뮬레이션은 다수의 캐릭터(32, 33, 34, 35)를 도시하며, 이들은 게임 환경(20) 내의 다양한 거리들(31, 37)을 가로지르는 것으로 도시된다. 도 1에서, 캐릭터들(32, 33, 35)은 플레이어들에 의해 제어되는 플레이어 캐릭터들(도면들 내의 "PC"들)을 묘사하도록 의도된다. 이들은 다른 플레이어들의 플레이어 캐릭터들과는 물론이고, 컴퓨터에 의해 제어되는 캐릭터들, 즉 논-플레이어 캐릭터들(도면들 내의 "NPC")과도 상호작용한다. 캐릭터(34)는 시뮬레이션 또는 게임 엔진에 의해 제어되는 논-플레이어 캐릭터를 묘사하도록 의도된다. 즉, 논-플레이어 캐릭터는 시뮬레이션에 의해 서버 레벨에서 또는 클라이언트 소프트웨어에 의해 제어되며, 그 논-플레이어 캐릭터에 대한 소프트웨어 명령어들 및 데이터 세트에 의해 지시되는 방식으로 동작한다. 플레이어는 논-플레이어 캐릭터 또는 그와 관련된 아이콘을 클릭하거나 활성화함으로써 논-플레이어 캐릭터(34)와 상호작용할 수 있다.
은행(22), 시청(24), 편의점(26) 및 민간 주택(28)과 같은 다수의 도시 특징들도 도시되어 있다. 이러한 특징들은 적용 가능한 게임 환경에 따라 다를 것이다. 도시 특징들은 그들과 관련된 사전 정의된 타입의 기하들을 가지며, 이러한 기하들은 도시 특징들이 물리 객체들과의 상호작용시에 어떻게 반응하는지를 부분적으로 정의한다. 소정의 도시 특징들은 물리 객체들 자체일 수 있다. 도 1에서, 은행(22) 및 시청(24)은 각각 "단단한" 기하를 가지며, 따라서 일반적으로 고정적이고 파괴되지 않는데, 그 이유는 그러한 가상 물체들, 예컨대 아이콘 빌딩들이 플레이어 상호작용들을 위해 필요하고, 일관된 게임 플레이를 위해 존재할 필요가 있기 때문이다. 단단한 기하 구조들 및 영역들은 일정한 위치들을 가지며, 일반적으로 충돌들 또는 손상의 결과로서 위치를 변경하지 않는다. 그러나, 플레이어 캐릭터, 논-플레이어 캐릭터 또는 다른 가상 객체가 그러한 단단한 기하 특징들을 손상시키려고 시도할 때, 그들은 일시적인 표면 손상을 보일 수 있지만, 일반적으로는 여전히 환경 내의 영구적인 정착물을 나타낸다. 구체적인 예로서, 악인 플레이어 캐릭터(32)가 은행(22)을 파괴하여 은행을 약탈하려고 시도할 수 있다. 플레이어 캐릭터(32)는 은행(22)을 습격하여, 은행 벽들이 균열되고 흉터가 남게 할 수 있지만, 은행(22)은 파괴되지 않을 것이다. 이 예에서, 단단한 기하를 갖는 은행(22)은 항상 동일한 위치에 유지되며, 그에 가해지는 손상에 관계없이 동일한 구조를 가질 것이다.
한편, 편의점(26) 및 민간 주택(28)은 각각 유연한 기하를 가지며, 이는 일 구현에서 그들이 손상되거나 충돌되는 경우에 이동될 수 있으며, 그러한 특징들의 파괴 또는 손상이 게임 플레이를 과도하게 중단시키지 않고도 달성될 수 있으므로 완전히 파괴될 수도 있다는 것을 의미한다. 그들의 손상 또는 파괴는 그들의 구성 부분들로부터의 물리 객체들의 생성을 유발할 수도 있다. 일 구현에서, 유연한 기하의 객체가 파괴될 때, 이 객체는 손상을 전하기 위해 상이한 타입의 파편들을 생성한다. 파편들은 일시적인 존재인 입자들 및 지속적일 수 있는 물리 객체들일 수 있다. 위의 예에서, 악인 플레이어 캐릭터(32)는 은행(22)에 들어가서, 계원의 카운터 뒤의 벽을 따라 금고를 찾을 수 있다. 악인 플레이어 캐릭터(32)는 카운터에 사격하여 구멍을 형성하고 깨진 조각을 남길 수 있다. 이 예에서, 은행(22)은 단단한 기하를 갖지만, 카운터는 유연한 기하를 가져서, 손상을 입은 후에 파괴되어, 예를 들어 나무 토막 형태의 물리 객체들을 생성한다.
물론, 어떤 특징들이 유연한 기하를 갖고, 어떤 특징들이 단단한 기하를 갖는지에 대한 선택은 완전히 임의적이며, 개발자의 요구들에 의존한다. 일부 구현들에서, 소정의 다양한 모든 객체들이 동일 타입의 기하를 갖는 것이 바람직할 수 있다. 이와 같이, 플레이어들은 플레이 행위를 통해 객체들이 어떻게 손상되고, 어떤 객체들이 파괴될 수 있는지를 학습할 것이다.
도 1은 또한 다양한 잠재적인 물리 객체들, 구체적으로 자동차(36), 버스(38) 및 벽(42)을 도시한다. 벽(42)은 유연한 기하를 가지며, 따라서 손상 또는 파괴될 수 있다. 도 1은 이러한 양태를 도시하며, 대체적인 화살표 47의 방향으로의 폭발 또는 기타 파괴력을 따라 방금 분리된 컴포넌트들(42', 43, 45)을 갖는 파괴된 구성의 벽을 나타낸다. 벽(42)은 파괴 전에 물리 객체이었을 수 있으며, 충돌의 검출시에 벽은 물리 객체로 변환되었을 수 있다. 유사하게, 컴포넌트들(42', 43, 45) 중 하나 또는 전부는 이들이 물리 객체들일 필요는 없지만 물리 객체들로서 플래그 표시되거나 분류될 수 있다. 예를 들어, 벽 컴포넌트(42')는 비물리 객체로서 분류될 수 있지만, 컴포넌트들(43, 45)은 물리 객체들로서 분류될 수 있다. 벽 컴포넌트들(43, 45)은 무기화될 수도 있으며, 즉 다른 플레이어 캐릭터 또는 논-플레이어 캐릭터에 손상을 일으킬 수 있는 무기로서 분류되거나 플래그 표시될 수 있다. 화살표 47은 플레이어 캐릭터(35)가 논-플레이어 캐릭터(34)를 타격하기 위해 컴포넌트들(43, 45) 중 하나 또는 모두를 던질 수 있는 방향을 나타낼 수도 있다.
자동차(36) 및 버스(38)도 물리 객체들일 수 있으며, 도 1은 플레이어 캐릭터(32)가 자동차(36)를 화살표 49에 의해 지시되는 방향으로 던져서 자동차(36)가 은행(22)과 충돌하여 자동차(36')에 의해 지시되는 손상 또는 파괴된 구성으로 정지되게 할 수 있는 방법을 매우 개략적인 방식으로 도시한다. 이러한 충돌은 은행(22)에 일시적인 표면 손상을 유발할 수 있지만, 이러한 손상은 빠르게 치유될 수 있고, 그러한 단단한 기하 구조들의 동작에 영향을 미치지 않을 수 있다.
일부 시뮬레이션들에서, 아이템들 및 환경의 파괴는 흔할 수 있으며, 결과적으로 그러한 상호작용들의 처리는 시뮬레이션 및 사용자 경험의 중요한 부분이 된다. 예컨대, 수퍼 악인 또는 거대 괴물 캐릭터를 가진 플레이어는 많은 깨진 조각 및 자동차 파편들을 생성하기를 원할 수 있다.
물리 객체들의 상호작용들의 이들 및 다른 양태들은 아래에서 도 3-5와 관련하여 설명된다.
도 2는 멀티플레이어 게임과 같은 시뮬레이션을 구현하는 데 사용될 수 있는 시스템(30)의 논리도를 도시한다. 시스템(30)은 네트워크(48)를 통해 통신하는 MMO 또는 시뮬레이션 클라이언트 컴퓨팅 장치(71) 및 MMO 또는 시뮬레이션 서버(64)를 포함한다. 클라이언트 컴퓨팅 장치(71)는 네트워크 카드(46)를 통해 또는 네트워크 인에이블드 프로세서(도시되지 않음)를 통해 네트워크(48)와 통신하는 하나 이상의 프로세서(44)를 포함한다. 클라이언트 컴퓨팅 장치(71)는 네트워크(48) 및 서버(64)와의 통신을 가능하게 하도록 실행되는 클라이언트 소프트웨어를 갖는다.
클라이언트 컴퓨팅 장치(71)는 키보드, 마우스, 게임 제어기, 햅틱 제어기, 터치스크린, 또는 컴퓨터에 입력을 제공할 수 있는 임의의 다른 장치를 포함할 수 있는 적어도 하나의 입력 장치(67)를 포함한다. 클라이언트 컴퓨팅 장치(71)는 시뮬레이션, 예컨대 MMO의 클라이언트 동작들을 위한 명령어들을 포함하는 프로세서(44)에 대한 명령어들(65)을 저장하는 하드 드라이브, 플래시 메모리, 반도체 드라이브 등과 같은 컴퓨터 판독 가능 매체(69)를 더 포함한다.
컴퓨터 판독 가능 매체(69)는 그래픽 파일 및 영화 파일들을 포함하는 미디어 파일들도 저장할 수 있다. 이러한 미디어 파일들은 서버(64)로부터 요구될 때 스트리밍될 수도 있다. 일부 구현들에서, 소정의 미디어 파일들, 특히 자주 사용되는 것들은 클라이언트로 다운로드될 수 있으며, 다른 것들은 나중의 스트리밍을 위해 클라이언트에 유지되어, 클라이언트 시스템의 혼잡을 피할 수 있다. 소정의 미디어 파일들, 예컨대 플레이어 캐릭터의 인접 게임 현장과 관련된 것들은 클라이언트 시스템에 캐시될 수도 있다.
클라이언트 컴퓨팅 장치(71)는 게임 사운드들과 관련된 신호들이 사운드 장치(68), 예를 들어 컴퓨터 스피커들 상에서 재생되기에 적합한 형태로 넣어질 수 있는 사운드 카드와 같은 사운드 렌더러(64)를 더 포함한다. 더욱이, 클라이언트 컴퓨팅 장치(71)는 게임 비디오와 관련된 신호들이 비디오 장치(72), 예를 들어 컴퓨터 디스플레이 상에서 재생되기에 적합한 형태로 넣어질 수 있는 하나 이상의 GPU 또는 비디오 카드 또는 이들 양자와 같은 비디오 렌더러(66)를 더 포함한다. 비디오 렌더러(66)는 예컨대 통합 그래픽을 포함할 수도 있다.
시뮬레이션 서버(64)는 게임을 제어하며, 하나 이상의 프로세서(63)를 구비하고, 게임 엔진 및 사용자 인터페이스, 입출력 컴포넌트 등을 포함하는 다른 컴포넌트들을 실행하는 게임 서버일 수 있다. 서버(64)는 물리 엔진(60) 및 가상 객체들의 데이터베이스(58)와 같은 모듈들을 더 포함하며, 가상 객체들의 서브세트(57)는 물리 객체들이다. 이러한 컴포넌트들 또는 모듈들의 일부는 이들 및 다른 프로세스들을 수행하기 위한 명령어를 포함하는 컴퓨터 판독 가능 매체(62) 상에 구현될 수 있다. 컴퓨터 판독 가능 매체(62)는 클라이언트 컴퓨팅 장치(71)로의 다운로드 또는 스트리밍을 위해 영화 및 다른 그래픽 파일들을 포함하는 미디어 파일들도 포함할 수 있다.
물리 엔진(60)은 다수의 모듈 또는 컴포넌트를 더 포함할 수 있으며, 이들 각각은 동일 또는 상이한 컴퓨터 판독 가능 매체(62) 상에 저장될 수 있다. 물리 엔진의 부분들은 캘리포니아, 샌프란시스코의 Havok 사로부터 입수 가능한 물리 시뮬레이터 솔루션들을 포함할 수 있다. 먼저, 트리거 정의 모듈(55)을 이용하여, 객체 상태들이 예를 들어 비물리 객체에서 물리 객체로 변경되도록 허가되는 환경들을 결정하고 정의할 수 있다. 정성자 정의 모듈(56)을 트리거 정의 모듈(55)의 일부로서 이용하여, 어떤 가상 객체들, 예를 들어 어느 플레이어 캐릭터들 또는 논-플레이어 캐릭터들이 물리 객체 또는 비물리 객체의 상태를 변경하도록 허가될 수 있는지는 물론, 언제 그러한 변경들이 발생하도록 허가되는지를 결정하고 제한할 수 있다. 트리거들은 물리 객체 또는 비물리 객체의 상태를 변경하는 데 사용될 수 있으며, 비물리 객체를 물리 객체로 또는 물리 객체를 비물리 객체로 변경하는 데에도 사용될 수 있다.
상호작용 정의 수단(59)을 이용하여, 언제 둘 이상의 객체, 예컨대 2개의 물리 객체, 2개의 비물리 객체 또는 물리 객체 및 비물리 객체가 상호작용했는지, 따라서 결과를 결정하기 위한 계산을 필요로 하는지를 결정하고 정의할 수 있다.
하나 이상의 객체 규칙 세트를 갖는 모듈(61)을 이용하여, 어떻게 그리고 언제 비물리 객체들이 물리 객체들이 되도록 그리고 물리 객체들이 비물리 객체들이 되도록 전이되는지를 결정 및/또는 정의하는 것은 물론, 객체들의 상호작용, 예컨대 물리 객체들 간의 상호작용, 물리 객체들과 비물리 객체들의 상호작용 및 물리 객체들과 환경의 상호작용의 결과를 결정 및/또는 정의할 수 있다. 상호작용들의 결과를 결정할 때 사용되는 하나의 그러한 예시적인 규칙은 충돌시에 운동량이 보존된다는 것일 수 있다. 탐색표(54)를 객체 규칙 세트 모듈(61)의 일부로서 이용하여 임의 수의 다른 결과들을 정의할 수도 있으며, 예시적인 탐색표가 아래의 표 1에 나타나 있다. 예를 들어, 번개 볼트가 플레이어 캐릭터를 향해 던져지는 경우, 플레이어 캐릭터가 감전에 의해 손상되도록, 탐색표에 번개 볼트 무기의 특성들이 정의될 수 있다. 탐색표는 플레이어 캐릭터의 옷과 피부가 소정의 화상을 입도록 정의하고 결정할 수도 있다. 이러한 모듈들의 기능들은 아래에 더 상세히 설명된다.
시뮬레이션의 타입에 따라 상이한 규칙 세트들이 이용될 수 있다. 매우 현실적인 물리 모델이 중요한 자동차 시뮬레이션에 바람직할 수 있는 반면에, 더 정력적이고 "재미있는" 모델이 풍자화 스타일 리얼리티를 반영하는 게임에 더 양호할 수 있다. 그러나, 객체들이 어떻게 물리 객체들이 될 수 있고, 이어서 객체들이 어떻게 다른 객체들 및 게임 플레이어들과 상호작용하는지를 정의함으로써 게임 객체들의 상호작용이 유연해지고, 플레이어의 만족을 증가시킨다.
도 3은 물리 객체(40)의 부분적 데이터 구조이다. 비물리 객체가 유사한 데이터 구조를 가질 수 있다. 시뮬레이션 환경에서 객체들이 상호작용하는 방식들은 그들의 기본 파라미터들, 조건들 및 그들에 적용되는 게임 효과들, 및 다른 인자들, 예컨대 그들이 무기로 사용되고 있는지, 즉 그들이 "무기화"되었는지의 여부를 포함하는, 표시되는 바와 같은 다수의 인자에 기초한다.
기본 파라미터들이 물리 객체들을 제어하는 데 사용되며, 따라서 그들은 플레이어들이 예상하는 방식들로 보이고 거동한다. 상이한 물리 객체들이 유사한 힘들을 받을 때 어떻게 반응하는지에 대한 일례로서, 수퍼히어로 플레이어 캐릭터가 창고를 통해 거리의 갱단을 추적하고 있는 경우, 캐릭터들은 다수의 큰 선적 상자들과 충돌하여 이들을 옆으로 밀어낼 수 있다. 페인트 통들과 같은 더 작은 객체들은 더 세게 멀리 걷어차일 수 있으며, 병들과 같은 더 작은 객체들은 충돌시에 깨질 수 있다. 이러한 객체들은 그들의 기본 파라미터들이 다르며, 따라서 충돌시에 상이한 결과들을 갖는다.
모든 물리적 특성들이 정의될 필요는 없지만, 중대한 영향들을 갖는 소정의 기본 파라미터들(74)이 물리 객체(40)에 대해 정의되며, 도 3에는 명료화를 위해 이들 중 하나만이 도시되어 있다. 일반적으로, 각각의 기본 파라미터(74)는 값(76) 및 타입(78)을 가질 것이다. 예를 들어, 플레이어 캐릭터의 하나의 기본 파라미터(74)는 플레이어 캐릭터가 90kg의 무게를 갖거나 37℃의 온도를 갖는 것일 수 있다. 기본 파라미터들은 다양할 수 있으며, 다른 전형적인 파라미터들은 크기, 형상 밀도 및 전도율을 포함한다. 중력 효과와 같은 소정의 파라미터들은 주어진 영역 내의 모든 객체들에 공통일 수 있다. 그러나, 일부 구현들에서는 중력 효과도 물리 객체마다 다르도록 설정될 수 있다.
조건은 물리 객체에 대한 제한이며, 물리 객체는 그에 따라 지정된 방식들로만 동작하고 반응할 수 있다. 이들은 광범위한 기능을 커버할 수 있으며, 상태들 및 트리거들로 분류될 수 있다.
상태들과 관련하여, 각각의 물리 객체(40)는 관련 상태(82)를 가질 수 있다. 상태는 물리 객체가 외부 자극에 대해 어떻게 동작하고 반응하는지, 예를 들어 물리 객체(40)가 이동성인지, 고정성인지, 무기화되는지, 손상되는지, 파괴되는지, 다른 객체에 부착되는지 등을 나타낸다. 이 분야의 통상의 기술자는 본 가르침이 주어질 때 그러한 예들의 다양한 변형들을 알 것이다. 구체적인 예로서, 플레이어 캐릭터는 통을 밀려고 시도할 수 있으며, 통은 쉽게 움직인다. 플레이어 캐릭터는 다른 통을 밀려고 시도할 수 있지만, 다른 통은 움직이지 않으며, 땅에 고정된 것으로 조사된다. 이 예에서, 하나의 통의 상태는 이동성으로 설정되며, 다른 통의 상태는 고정성으로 설정된다.
제2 타입의 조건과 관련하여, 각각의 물리 객체(40)는 그와 관련된 다양한 트리거들(83)도 가질 수 있다. 트리거들은 객체 상태들이 예를 들어 "터치시에", "손상시에", "잡힐 때", "던져질 때" 또는 "스크립트화된 이벤트시에" 변경되는 것을 허가하는 환경들이다. 트리거들(83)은 그들과 관련된 정성자들(85)을 가질 수 있으며, 이들은 누가 또는 무엇이 객체의 상태를 변경하도록 허가되는지 그리고 그러한 변경들이 언제 발생하는 것이 허가되는지를 나타낸다. 위의 고정된 통의 예에서, 플레이어 캐릭터는 통을 주먹으로 치려고 시도할 수 있으며, 이어서 통은 벗어나서 자유롭게 움직일 수 있다. 이 경우, 통에 손상을 가하는 동작은 통의 상태를 이동성으로 변경한 트리거이었다.
다른 구체적으로 예에서, 수퍼히어로는 여러 층 아래로 연장하는 창고의 큰 개방된 구역으로 범죄자를 몰아넣을 수 있다. 범죄자는 짧은 거리 아래의 매달린 플랫폼으로 점프할 수 있고, 수퍼히어로는 뒤따를 수 있다. 수퍼히어로가 플랫폼에 충돌하는 힘은 플랫폼이 흔들리고, 회전하고, 경사지게 하여, 플랫폼 상의 여러 개의 통이 굴러 떨어지게 할 수 있다. 이어서, 플랫폼을 지지하는 체인들 중 일부가 절단되어, 수퍼히어로 및 범죄자가 창고 바닥으로 추락하게 할 수 있으며, 바닥의 상자 더미에 떨어짐으로써 그들의 추락이 멈춰질 수 있다. 이 예에서, 플레이어 캐릭터가 플랫폼 상에 착륙할 때 플랫폼이 움직이는 방식은 플랫폼이 예를 들어 4개의 체인에 의해 매달리는 방식의 결과이다. 통들은 그들의 물리 객체 데이터 구조(40) 내의 조건들에 따라 구른다. 플랫폼을 지지하는 체인들은 플랫폼 상에서 압력 또는 무게의 임계치에 도달할 때 떨어지도록 트리거되며, 이것은 소정 기간에 걸쳐 가해지는 손상으로서 취급될 수 있다. 창고 바닥의 상자들은 충돌시에, 예컨대 추락으로부터 손상을 입을 때 즉시 깨지도록 트리거된다. 일부 예들에서, 상자들이 겪는 손상의 양은 전적이지는 않지만, 플레이어 캐릭터들 및 논-플레이어 캐릭터들이 추락하는 거리는 물론, 그들의 무게에 의해 추정될 수 있다. 예를 들어, 손상은 임계 거리 및/또는 무게에 도달할 때까지 선형(또는 다른) 방식으로 상승할 수 있으며, 임계 포인트 후에 상자들은 완전히 파괴되는 것으로 분류되고, 그에 따라 렌더링될 것이다. 물론, 환경의 타입에 따라, 일반적으로 상자들은 소정 시간 후에 재생성될 것이다.
각각의 물리 객체(40)는 트리거에 키잉된(keyed) 게임 효과(84)와 더 관련될 수 있다. 게임 효과는 객체에 고유하거나 적용되는 메커니즘이며, 객체가 외부 자극에 대해 어떻게 반응하는지를 정의한다. 예컨대, 폭발성의 통은 밀릴 때는 임의의 정상적인 통과 같이 동작하지만, 손상시에는 폭발할 수 있으며, 이 경우에 폭발은 통 객체의 트리거된 게임 효과이다. 물리 객체에 고유한 게임 효과를 제공하기 위하여, 게임 효과가 게임 효과 데이터베이스에서 물리 객체로 물리 객체의 데이터 구조(40) 내의 그의 특성들 중 하나로서 링크될 수 있다.
일부 객체들에는 영구적인 게임 효과가 적용될 수 있다. 예를 들어, "마그마" 암석은 영구적으로 과열될 수 있으며, 터치시에 항상 탈 것이다. 일정한 열은 객체와 관련된 게임 효과이다. 게임 효과들은 플레이어들에 의해 플레이어와 통상적으로 관련되지 않은 객체들에 적용될 수도 있다. 구체적인 예에서, 범죄자는 땅에 떨어진 후에 점프하여 달리기 시작할 수 있다. 수퍼히어로는 전기 볼을 충전하여, 이를 범죄자 앞의 통들의 더미를 향해 발사할 수 있다. 충돌은 통들이 와해되어 범죄자의 통로를 차단하게 할 수 있다. 이어서, 충전된 통들은 전하로 활성화되어 다른 객체들을 자기적으로 당길 수 있다. 범죄자가 통을 옆으로 밀려고 시도하는 경우, 범죄자는 작은 번개 아크에 의해 손상될 수 있다. 이 예에서, 플레이어는 그의 플레이어 캐릭터의 전기적 능력들을 이용하여, 이전에 아무것도 갖지 않은 물리 객체에 게임 효과를 적용하였다. 이어서, 이러한 게임 효과는 물리 객체를 터치하는 것들을 손상시키며, 또한 객체가 유사한 재료로 만들어진 다른 객체들을 끌어당기는 방식으로, 즉 자기적으로 동작하게 한다.
각각의 물리 객체(40)는 트리거에 키잉된 오디오 및/또는 비주얼 효과(86)("A/V 효과"라고 함)와 더 관련될 수 있다. A/V 효과들(86)은 일반적으로 객체 또는 객체와 관련된 게임 효과와 관련된 사용자의 보기 또는 듣기를 위해 렌더링되는 효과들을 포함한다. 따라서, 일부 A/V 효과들은 상호작용들의 부재시에도 물리 객체들에 존재할 수 있지만, 일부 A/V 효과들은 상호작용들에 의해 유발되는 게임 효과들에 키잉된다. A/V 효과들은 다음의 비제한적인 예들, 즉 일반적으로 객체의 표면에 나타나는 일시적 손상인 표면 손상, 손상에 따른 작은 파편 조각들인 입자들, 손상으로부터의 오디오 피드백인 사운드들, 객체들이 손상으로부터 붕괴될 수 있는 열화, 및 손상으로부터 새로운 객체들이 생성될 수 있는 객체 생성 중 하나 이상을 포함할 수 있다. A/V 효과들은 객체의 상태에 기초하여 더 변할 수 있다.
다른 구체적인 예로서, 플레이어 캐릭터는 트럭을 강타하여 열고 그의 엔진 블록을 제거할 수 있다. 플레이어 캐릭터는 지나가는 자동차를 향해 엔진 블록을 던져, 자동차의 후드가 충돌로부터 찌그러지게 할 수 있다. 엔진 블록은 이제 심하게 긁혀 있고, 스퍼터링 및 스파크가 발생하기 시작한다. 플레이어 캐릭터는 엔진 블록을 다시 집어들어 다른 플레이어 캐릭터들 또는 논-플레이어 캐릭터들을 향해 던질 수 있다. 땅과의 충돌시, 엔진 블록은 부서질 수 있다. 이 예에서, 엔진 블록은 일련의 사운드들 및 입자들을 이용하여 그의 조건을 전한다. 자동차가 충돌될 때, 그의 후드 및 엔진은 표면 손상 및 열화를 보인다. 엔진 블록은 또한 표면이 긁히는 손상을 보이며, 손상으로부터 입자들, 예를 들어 스파크들 및 사운드들, 예를 들어 스퍼터링을 더 보인다. 엔진 블록이 최종적으로 파괴될 때, 파괴는 엔진 블록의 파괴를 시뮬레이션하기 위해 생성될 수 있는 새로운 객체들과 더불어 큰 변화들에 의해 엔진 블록의 외관으로 전달될 수 있다. 이러한 변화들 모두를 통해, 물리 객체 모델들은 객체들이 겪는 시각적 변화들을 반영하고 렌더링하도록 갱신될 수 있다.
다른 예로서, 악인 플레이어 캐릭터는 은행을 털려고 시도하지만, 그의 금고가 밀봉되어 있는 것을 발견할 수 있다. 플레이어 캐릭터는 금고 문을 반복적으로 강타하여 다수의 눌린 자국을 생성하지만 문을 열지는 못할 수 있다. 이어서, 플레이어 캐릭터는 낮게 매달린 천장 빔을 향해 에너지 충격을 발사하여 큰 콘크리트 덩어리들이 깨져 땅에 충돌하게 할 수 있다. 충돌은 은행 바닥을 균열시키고 많은 양의 먼지를 발생시킨다. 천장 빔은 예를 들어 철근으로 축소되고, 스트레스를 받은 적은 양의 콘크리트만이 남는다. 이 예에서, 금고 문은 충돌시에 열화되며, 천장 빔은 에너지 충격을 받을 때 철근으로 열화된다. 콘크리트 덩어리들은 충격으로부터 생성된 객체들이며, 이들은 착륙시에 사운드를 생성한다. 바닥은 충돌로부터 금이 가는 표면 손상을 입으며, 먼지는 입자 효과들이다.
물리 객체들은 다음 타입들 중 하나 이상으로서 분류될 수 있다. 임의의 주어진 시뮬레이션에서는, 모든 타입이 표현될 필요는 없으며, 물리 객체들은 둘 이상의 타입에 속할 수도 있다. 제1 타입의 물리 객체는 재설정될 때까지 환경 내에 남는 객체인 영구적 소품(prop)이며, 이들은 특정 목적, 장애, 목표 또는 탐색에 필요한 소정의 중요한 게임 플레이 요소들을 포함할 수 있다. 또 하나의 타입은 손상을 입을 때 파괴될 수 있는 객체인 FX 소품이다. 또 하나의 타입은 플레이어 캐릭터가 집어들어 무기로서 사용할 수 있는 객체인 무기화된 소품이다. 또 하나의 타입은 게임 메커니즘과 관련된 객체인 게임 효과 소품이다. 또 하나의 타입은 개발자들에 의해 배치되는 소품들과 달리 게임 내의 사건의 결과로서 온더플라이(on-the-fly) 방식으로 생성되는 객체인 동적 소품이다. 동적 소품들은 플레이어 캐릭터에 의해 유발되는 손상의 결과로서 생성되는 물리 객체들을 포함할 수 있다.
무기화된 소품들과 관련하여, 물리 객체들이 그러한 방식으로 사용될 때, 이들은 무기 고유 기능을 얻으며, 제어되는 방식으로 거동한다. 일부 기본 파라미터들 및 조건들은 무기화된 물리 객체들에 계속 적용될 수 있다. 이들은 무기의 내구성, 게임 효과들 및 다른 특성들을 포함한다.
다른 구체적인 예에서, 범죄자는 다수의 통을 향해 미끄러질 때 철근 조각을 집어들고, 이어서 이를 이용하여 수퍼히어로 플레이어 캐릭터를 공격하기 시작할 수 있다. 플레이어 캐릭터는 상자를 집어들고, 이를 범죄자에 대해 무기로서 사용함으로써 대응할 수 있다. 철근은 수퍼히어로를 강타함에 따라 결국 변형되고, 결국 사용되지 못하게 될 수 있다. 이에 대응하여, 수퍼히어로는 범죄자를 향해 상자를 던져, 상자가 깨지고 범죄자가 의식을 잃게 할 수 있다. 이 예에서, 수퍼히어로 및 논-플레이어 캐릭터 범죄자 양자는 물리 객체들을 무기로서 사용한다. 적인 논-플레이어 캐릭터 범죄자는 그의 것을 곤봉으로 사용하는 반면, 수퍼히어로 플레이어 캐릭터는 그의 것을 투사물로서 사용한다. 철근의 변형은 시간 경과에 따른 손상의 계산을 이용함으로써 게임 효과로서 그리고 A/V 효과로서 구현될 수 있다. 상자 파괴는 소정 객체들에 "히트 포인트들"을 제공함으로써 구현될 수 있다. 객체가 제로 히트 포인트들을 갖는 경우, 객체는 파괴된 것으로 간주되며, 그에 따라 렌더링된다. 많은 예에서, 새로운 물리 객체들, 예컨대 동적 소품들이 그들의 장소에 생성될 것이다. 일부 예들에서, 그러한 동적 소품들은 생성 후 몇 초 동안만 존재할 수 있지만, 다른 예들은 그러한 객체들이 환경 내에 남아서 임의의 다른 물리 객체와 같이 동작하고 사용되는 것을 필요로 할 수 있다. 다른 구체적인 예에서, 수퍼히어로 플레이어 캐릭터는 램프 기둥을 이용하여 지나가는 자동차를 손상시킬 수 있다. 자동차 및 램프 기둥 양자가 손상되며, 램프 기둥은 그의 상부 근처가 부러진다. 샤프트를 통해 연장하는 배선은 상부에 연결된 상태로 유지된다. 플레이어 캐릭터가 램프 기둥을 다시 흔들 때, 상부는 무작위로 연타하지만, 여전히 효과적인 무기일 수 있다. 이 예에서, 램프 기둥은 물리적 영향을 여전히 보이는 무기화된 물리 객체를 나타낸다. 플레이어에 의해 기초부가 제어되지만, 상부는 느슨해지고 반응적이 된다. 물리 엔진은 일부 구현들에서 (흔들리는 경우) 모션을 또 다른 공전을 갖는 자전 및 공전으로서, 즉 상부 위에 중첩된 느슨한 상부로서 시뮬레이션할 수 있다.
물리 객체들은 게임 이벤트들에 의해서도 생성될 수 있다. 예컨대, 게임 이벤트들은 환경 파괴를 트리거할 수 있으며, 환경 파괴는 게임 이벤트들을 트리거할 수 있다. 다른 구체적인 예에서, 플레이어 캐릭터는 도시 하수도를 통해 악인을 추적하고 있다. 플레이어 캐릭터는 끝이 막힌 것으로 보이는 어두운 서브챔버에 들어간다. 플레이어 캐릭터가 온 길로 되돌아갈 수 있기 전에 폭발이 발생하고, 문 위의 천장이 무너져 그의 통로를 차단한다. 플레이어 캐릭터는 뒷벽들 중 하나에 있는 작은, 빗장이 걸린 창문을 발견한다. 플레이어 캐릭터는 빗장을 향해 집중 열선을 발사하지만, 그렇게 할 때, 숨겨진 무기들이 활성화되도록 트리거한다. 이 예에서, 플레이어들이 방을 떠나려고 시도할 때 무너지는 천장은 이벤트에 의해 유발되는 환경 파괴를 나타낸다. 플레이어 캐릭터가 빗장이 걸린 창문의 유연한 기하를 공격할 때, 공격은 숨겨진 무기들을 활성화하며, 이 경우에 활성화는 환경 파괴에 의해 유발되는 이벤트를 나타낸다.
다른 환경 인자들 또는 논-플레이어 캐릭터 또는 플레이어 캐릭터 능력들도 MMO와 같은 시뮬레이션에서 물리 객체들에 영향을 미칠 수 있다. 예를 들어, 화산 폭발들이 제공될 수 있으며, 이들은 암석들 및 용암을 생성하거나 분출할 수 있다. 지진들이 발생할 수 있으며, 이들은 플레이어 캐릭터들 및 논-플레이어 캐릭터들을 몰아내는 것은 물론, 물리 객체들을 포함하는 다양한 객체들을 생성할 수 있다. 휴대 가능한 기이한 물건이 제공될 수 있으며, 이들은 플레이어 캐릭터들 및 객체들을 그 자신을 향해 당기며, 일부 구현들에서는 플레이어 캐릭터 또는 논-플레이어 캐릭터의 염력 이동이 발생하게 할 수도 있다. 에어백 능력 또는 효과가 플레이어 캐릭터에 제공될 수 있으며, 이어서 플레이어 캐릭터는 에어백들에 의해 둘러싸여, 물리 객체들 및 손상으로부터 차단되지만, 튕기는 것은 물론, 전투에서 무능화되기도 한다. 플레이어 캐릭터들 또는 논-플레이어 캐릭터들은 염력을 제공받을 수 있으며, 이에 따라 물체들을 터치하지 않고도 이동시킬 수 있다. 객체들의 서브세트는 이들이 이동되거나 무기화될 수 없는 포인트까지 극히 무거워지는 "접지" 상태를 취득할 수 있다. 이 상태에서, 공중에 떠있는 객체들은 땅에 충돌할 수 있으며, 무기화된 객체들은 너무 무거워서 운반되지 못할 수 있다. 중력 또는 반중력 소스들이 제공될 수 있으며, 이어서 이동 가능할 수 있는 이러한 소스들은 근처의 객체들 및 플레이어 캐릭터들 또는 논-플레이어 캐릭터들을 끌어당기거나 밀 수 있다. "리바운드" 능력도 제공될 수 있으며, 이에 따라 물리 객체들은 플레이어 캐릭터로부터 발사된다.
다른 구체적인 예에서, 플레이어 캐릭터는 거리로 나아가서, 다가오는 자동차를 공격하여 자동차를 전복시킨다. 이어서, 플레이어 캐릭터는 자동차를 집어들어 이를 아이콘 논-플레이어 캐릭터의 대형 동상을 향해 던진다. 자동차는 동상으로부터 튕겨져 땅에 떨어져 화단을 파괴한다. 플레이어 캐릭터는 자동차를 다시 집어들려고 시도하지만, 자동차는 불타서 너무 뜨거워 만질 수 없게 된다. 대신에, 플레이어 캐릭터는 큰 대리석 덩어리들이 분수대를 파괴할 때까지 동상 근처의 분수대를 공격한다. 이어서, 플레이어 캐릭터는 대리석 덩어리들을 집어들어 동상을 향해 던져서 동상을 손상시킨다. 이 예에서, 자동차는 처음에 논-플레이어 캐릭터 타입으로 분류되지만, 투척시에는 무기화된 소품이 되며, 이어서 불에 탈 때에는 게임 효과 소품이 된다. 화단은 하나 이상의 FX 소품일 수 있다. 동상은 영구 소품으로서, 파괴되는 것이 아니라, 후속 치유 전에 소량의 손상에 견딜 수 있거나, 대안으로서 이동될 수 있다. 분수대는 유연한 기하이며, 그의 대리석 덩어리들은 무기화될 수 있는 동적 소품들이다.
도 4는 물리 객체들의 상호작용들을 구현하기 위한 방법(50)의 흐름도이다. 제1 단계에서, 가상 객체들의 서브세트가 물리 객체들로서 정의된다(단계 94). 다음 단계에서, 적어도 하나의 기본 파라미터 및 상태가 물리 객체들 각각에 대해 정의되며(단계 96), 기본 파라미터는 값 및 타입을 갖는다. 단계들(94, 96)은 일반적으로 게임의 최초 로딩시, 그 후의 임의 시간, 또는 개발시일 수 있는 물리 객체의 생성시에 수행될 수 있다.
다음 단계는 상이한 기본 파라미터 타입들은 물론, 상호작용 결과를 갖는 임의의 둘 이상의 객체에 대한 상호작용의 결과를 결정하는 것이다(단계 98). 이 단계는 다양한 방식으로 달성될 수 있다. 먼저, 소정의 상호작용들이 사전 정의된 결과들을 가질 것이다. 예를 들어, 한 가지 타입의 상호작용은 충돌 검출에 의해 그리고 물리 엔진이 지시하는 결과를 이용하여 결정되는 바와 같은, 물리 객체들 및/또는 비물리 객체들일 수 있는 객체들 간의 충돌이다(단계 102). 여기서, 충돌은 객체들의 임의의 터치일 수 있다는 점에 유의한다. 다른 타입의 상호작용은 물리 객체 또는 비물리 객체와 같은 객체와 투사물 사이의 충돌이다(단계 104). 이러한 타입의 상호작용은 예를 들어 난투 또는 정렬된 무기들에 의해, 마법 교대에 의해, 레이저 광 또는 다른 전자기력들에 의해 또는 기타 등등에 의해 물리 객체 또는 비물리 객체를 공격하는 플레이어 캐릭터 또는 논-플레이어 캐릭터를 나타낼 수 있다.
위의 충돌 예들은 일반적이다. 그러나, 훨씬 더 다양한 타입의 상호작용들이 시스템에 의해 제공될 수 있다. 일반적으로, 상호작용들은 탐색표의 사용을 포함할 수 있는 객체 규칙 세트에 의해 결정된다(단계 106). 탐색표는 발생할 수 있는 다양한 타입의 상호작용들은 물론, 계속해서 발생할 수 있는 상승 효과들을 설명하는 한 가지 방법을 제공한다. 그러한 표는 아래의 표 1에 도시되며, 이는 단지 예시적인 것으로 이해되어야 하며, 따라서 그러한 효과들의 잠재적인 수에 비해 매우 제한된다.
위의 설명은 일반적으로 상이한 타입의 기본 파라미터들을 갖는 객체들의 상호작용과 관련된다. 일부 예들에서, 상호작용은 동일한 타입의 기본 파라미터를 갖는 물리 객체들에 대해 정의될 것이다. 예컨대, 2개의 물리 객체는 관련된 기본적인 무게 파라미터를 각각 가질 수 있다. 2개의 객체가 예를 들어 서로 충돌함으로써 또는 자기 효과에 의해 결합되는 경우, 그 결과는 개별 무게들의 합의 무게를 갖는 단일 물리 객체일 수 있다.
상호작용의 지시로서, 신호가 GPU 또는 비디오 카드 또는 사운드 카드 또는 이들의 결합으로 전송될 수 있으며(단계 108), 이어서 신호는 상호작용의 지시의 렌더링을 유발할 수 있다(단계 112).
렌더링은 다수의 형태를 가질 수 있다. 물리 객체 또는 비물리 객체가 분류되거나, 단단한 기하를 갖는 것으로 분류되는 경우, 손상 효과, 예컨대 시간이 지남에 따라 치유될 수 있는 피상적인 또는 표면 손상 효과가 렌더링될 수 있다(단계 114). 객체가 유연한 기하를 갖는 것으로 분류된 경우, 객체가 어느 정도로 손상되었는지를 결정하기 위한 계산이 수행될 수 있다(단계 116). 예컨대, 소량의 손상은 긁힘과 같은 표면 손상을 유발할 수 있는 반면, 대량의 손상은 객체가 예를 들어 물리 객체들 또는 비물리 객체들일 수도 있는 더 작은 객체들, 입자들 또는 이들 양자로 분해되게 할 수 있다. 계산을 달성하는 한 가지 방법은 객체에 히트 포인트들을 할당하는 것이며, 손상이 발생함에 따라 히트 포인트들의 수가 감소한다. 객체가 제로 히트 포인트를 갖는 경우, 객체는 파괴된 것으로 간주된다. 구조의 입도, 무게, 부피 등은 물론, 충돌 객체, 예컨대 투사물의 궤적 또는 다른 특성들과 같은 물리 객체의 재료 특성들의 고려를 포함하는 특히 복잡한 계산들도 이용될 수 있다.
상호작용의 지시를 렌더링하는 단계(단계 112)의 일부로서 포함될 수 있는 방법(50)의 다음 단계들은 게임 효과를 렌더링하는 단계(단계 118) 및 A/V 효과를 렌더링하는 단계(단계 122)를 포함한다.
도 5는 물리 객체들의 상호작용들을 구현하기 위한 다른 방법(70)의 흐름도이다. 방법(70)에서, 물리 객체는 제1 상태에서 제2 상태로의 전이를 겪게 된다. 단계들 중 일부는 도 4의 방법과 동일하다.
제1 단계에서, 가상 객체들의 서브세트가 물리 객체들로서 정의된다(단계 94). 다음 단계에서, 적어도 하나의 기본 파라미터 및 상태가 각각의 물리 객체에 대해 정의되며(단계 126), 기본 파라미터는 값 및 타입을 갖는다. 이어서, 트리거가 정의될 수 있으며(단계 128), 트리거는 물리 객체가 하나의 상태에서 다른 상태로 전이하게 한다. 이어서, 트리거에 대해 정성자가 정의될 수 있으며(단계 132), 위에서 정의된 정성자는 예를 들어 누가 또는 무엇이 트리거가 상태를 전이하게 할 수 있는지를 나타낸다. 단계들 124, 126, 128 및 132는 일반적으로 게임의 최초 로딩시, 그 후의 임의 시간, 또는 개발시일 수 있는 물리 객체의 생성시에 수행될 수 있다.
이어서, 트리거 이벤트의 발생시, 물리 객체는 제1 상태에서 제2 상태로 전이된다(단계 134). 전이의 지시로서, 신호가 GPU 또는 비디오 카드 또는 사운드 카드 또는 이들의 조합으로 전송될 수 있으며(단계 136), 이어서 신호는 전이의 렌더링을 유발할 수 있다(단계 138).
도 4에서와 같이, 렌더링은 다양한 형태를 취할 수 있다. 물리 객체가 단단한 기하를 갖는 경우, 손상 효과가 렌더링될 수 있다(단계 142). 물리 객체가 유연한 기하를 갖는 경우, 물리 객체가 어느 정도로 손상되었는지를 결정하기 위한 계산이 수행될 수 있다(단계 144).
전이의 지시를 렌더링하는 단계(단계 138)의 일부로서 포함될 수 있는 방법(70)의 다음 단계들은 게임 효과를 렌더링하는 단계(단계 146) 및 A/V 효과를 렌더링하는 단계(단계 148)를 포함한다.
물리 객체들과 같은 둘 이상의 객체가 상호작용에 관련되는 경우, 위의 방법(70)은 각각의 물리 객체에 대해 수행될 수 있으며, 방법(50)은 전이들 및 상호작용들의 결과들을 정의하는 데에 더 이용될 수 있다. 방법들은 게임 이벤트들로부터의 물리 객체들 상의 효과, 플레이어 캐릭터들 및 논-플레이어 캐릭터들에 의해 유발되는 손상은 물론, 비물리 객체들에 의해 물리 객체들 상에 유발되는 손상 및 그 역을 결정하는 데에도 이용될 수 있다.
도 6을 참조하면, 비물리 객체들로부터 물리 객체들을 생성하기 위한 방법(80)의 흐름도가 도시되어 있다. 방법의 제1 단계는 적어도 하나의 가상 객체를 비물리 객체로서 정의하는 것이다(단계 152). 일반적으로, 그러한 객체들은 삼차원 객체들로서 모델링되지만, 방법 및 시스템은 그에 한정되지 않는다. 다음 단계는 비물리 객체가 물리 객체로 전이하게 하는 트리거를 정의하는 것이며(단계 154), 트리거에 대해 정성자가 더 정의될 수 있다. 트리거들 및 정성자들은 물리 객체를 제1 상태에서 제2 상태로 전이시키는 것과 관련하여, 그러나 이 예에서는 비물리 객체가 물리 객체로 전이되고 있다는 점 외에는, 위에 정의된 것들과 일반적으로 동일할 수 있다. 전술한 대응하는 단계들과 같이, 단계들 152 및 154는 일반적으로 게임의 최초 로딩시, 그 후의 임의 시간, 또는 개발시일 수 있는 물리 객체의 생성시에 수행될 수 있다.
이어서, 트리거의 발생시에, 비물리 객체는 물리 객체로 전이한다(단계 156). 소정의 트리거들 및 전이들은 아래의 표 2에 설명되며, 이는 단지 예시적인 것으로 이해되어야 하며, 따라서 그러한 트리거들 및 전이들의 잠재적인 수에 비해 매우 제한된다.
전술한 바와 같이, 전이의 지시로서, 신호가 GPU 또는 비디오 카드 또는 사운드 카드 또는 이들의 조합으로 전송될 수 있으며(단계 158), 이어서 신호는 전이의 렌더링을 유발할 수 있다(단계 162). 렌더링은 전술한 임의의 방식으로 수행될 수 있다.
물리 객체들이 손상 또는 파괴되는 예들에서, 시스템 및 방법은 수리를 행하기 위한 방법도 제공한다. 구체적으로, 수리 루틴을 이용하여 상호작용 후에 환경들이 자동으로 재설정되는 것을 도울 수 있다. 일반적으로, 대부분의 객체들은 시간이 지남에 따라 수리될 것이다. 그러나, 소정의 예외들이 존재한다. 예컨대, 하나의 인스턴스에서, 인스턴스가 다시 로딩될 때 모든 객체들이 자동으로 재설정될 수 있다. 일부 구현들에서, "기술자"라는 플래그가 부착된 논-플레이어 캐릭터들은 손상된 객체들을 수리할 수 있다. 이어서, 이러한 객체들은 재설정되는 것이 아니라, 그들의 손상되지 않은 상태로 복귀한다.
구체적인 예에서, 악인 플레이어 캐릭터가 은행을 털 수 있으며, 은행의 외부 및 내부를 손상시킨 후에 탈출할 수 있다. 플레이어 캐릭터는 은행의 내부 및 외부가 완전히 수리되어 손상을 갖지 않음을 알 수 있다. 이 예에서, 은행의 외부는 열린 게임 환경 세계의 일부이고, 따라서 그의 파괴는 플레이어 캐릭터가 내부에 있는 동안에 느리게 수리되었다. 은행 내부는 인스턴스로서 간주되며, 따라서 플레이어 캐릭터가 떠날 때, 은행 내부 콘텐츠는 즉시 재설정될 수 있다.
게임 환경 내의 상이한 타입의 영역들이 상이하게 손상될 수 있다. 이것은 영역이 얼마나 사적인지 또는 공적인지에 부분적으로 의존할 수 있다.
예를 들어, 도시들은 게임의 큰 열린 세계 구역들을 나타낼 수 있다. 그러한 영역들은 기하와 관련하여 비교적 안정되게 유지되는 것이 바람직할 수 있으므로, 최소로 파괴 가능한 환경들일 수 있다. 그러한 영역들은 근본적으로 단단한 기하의 객체들 및 구조들을 포함할 수 있다. 소정의 유연한 기하 객체들도 소정의 사전 정의된 물리 객체들과 함께 제공될 수 있다. 이러한 객체들 및 구조들 모두는 그들과 관련된 가변 양의 A/V 효과들을 가질 수 있다. 구체적인 예에서, 악인 플레이어 캐릭터는 지나가는 자동차를 집어들어 이를 가게 정면을 향해 던져서, 가게 정면의 차일이 떨어지고 그의 창문들이 부서지고 찌그러지게 할 수 있다. 플레이어 캐릭터는 자동차를 다시 집어들어 아파트 빌딩의 측면을 향해 던져서, 소정의 콘크리트 몰딩이 조각들로 깨져서 떨어지게 할 수 있다. 자동차는 도로에 떨어져 균열을 남긴다. 이 예에서, 자동차 및 차일은 물리 객체들이다. 가게 정면은 유연한 기하를 가지며, 따라서 변형되고, 유리 입자 효과들을 더 생성한다. 콘크리트 몰딩은 유연한 기하를 갖지만, 그가 부착되는 아파트 빌딩은 단단한 기하를 갖는다. 콘크리트 몰딩은 물리 객체들인 콘크리트 깨진 조각들을 생성하며, 자동차가 땅에 떨어질 때, 단단한 기하를 갖는 도로는 표면 손상을 입는다.
인스턴스들은 요구시에 플레이어들 또는 플레이어들의 그룹들에 대해 생성되는 영역들의 사적인 버전들이다. 이들은 사적이므로, 열린 공개 게임 환경에서보다 유연한 기하가 제공될 수 있으나, 단단한 기하가 그러한 영역들의 대부분을 구성할 수도 있다. 이러한 유연한 기하 영역에 대한 단단한 기하 영역의 비율은 각각의 인스턴스의 설계에 의해 지시된다. 인스턴스들은 상당한 수의 물리 객체들을 가질 수도 있으며, A/V 효과들은 그중 많은 객체에 대해 존재할 수 있다. 구체적인 예에서, 플레이어 캐릭터 수퍼히어로는 강당에서 악인과 싸우고 있을 수 있다. 악인은 플레이어 캐릭터 수퍼히어로를 공격하여 방을 가로질러 던질 수 있다. 플레이어 캐릭터는 뒷벽에 떨어져 충돌시에 뒷벽을 균열시키기 전에 여러 열의 의자들은 물론, 지지 기둥을 파괴할 수 있다. 이 예에서, 의자들은 물리 객체들이며, 기둥은 유연한 기하이며, 이들 양자는 충돌시에 깨진다. 뒷벽은 단단한 기하이며, 그의 균열은 손상을 암시하기 위한 A/V 효과이다.
손상 효과들이 열린 세계 게임 환경들과 다를 수 있는 또 하나의 영역은 대형의 지형 기반 멀티플레이어 영역들인 경기장들이다. 이러한 영역들은 플레이어들이 그들의 능력들 및 기술들 모두를 이용하게 하도록 설계되므로, 경기장들에서 제공되는 파괴는 상당할 수 있다. 물리 객체들은 더 클 수 있으며, 더 유연한 기하는 지형 내에 그리고 빌딩들 내에 구축될 수 있다. 구체적인 예에서, 플레이어 캐릭터 수퍼히어로는 적인 논-플레이어 캐릭터 벙커에 접근하여 그를 파괴할 수 있다. 플레이어 캐릭터가 공격 범위 내에 도달할 수 있기 전에, 적의 탱크가 절벽 뒤로부터 굴러 나올 수 있다. 플레이어 캐릭터는 가장 가까운 절벽면으로 전력 질주하여, 그를 강타하여 소정의 큰 표석들이 떨어져 나오게 한다. 이어서, 플레이어 캐릭터는 표석을 집어서 던진다. 표석은 선두 탱크를 타격하여 이를 조각내고, 땅 위에 거대한 균열을 남긴다. 이어서, 플레이어 캐릭터는 벙커로 달려가서 공격하여, 포탑의 대형 지붕을 얼게 하고, 이를 에너지 충격으로 깨뜨린다. 이어서, 적은 벙커의 정면 입구 밖으로 병력을 보낸다. 플레이어 캐릭터는 병력을 기절시키고, 문에 화력을 집중시킨다. 작은 깨진 조각들은 자유로워져 떨어지기 시작한다. 소정 기간 후에, 문의 아치는 입구 정면에서 붕괴된다. 이 예에서, 절벽면은 유연한 기하를 가지며, 단단한 기하의 지형 위에 위치한다. 물리 객체들인 표석들은 유연한 기하의 절벽면이 손상될 때 생성된다. 표석의 충돌은 또한 물리 객체인 탱크를 파괴하며, 땅은 A/V 효과를 이용하여 균열된 것으로 보인다. 벙커의 빌딩들은 근본적으로 유연한 기하이며, 많은 약점들, 예컨대 포탑, 문 등은 완전히 파괴될 수 있고, 파괴시에 그 일부 또는 전부가 물리 객체들일 수 있는 깨진 조각들을 생성하도록 구성된다.
물리 객체들의 생성 및 처리를 위한 시스템들 및 방법들이 설명되었다. 이러한 물리 객체들의 상호작용과 후속적인 게임 플레이의 결합 효과들은 지시되는 것이 아니라 불시에 나타나는 것으로 보인다. 시스템들 및 방법들은 플레이어들이 그들을 어떻게 이용하는지에 기초하여 놀라운 방식들로 상호작용하는 요소들을 생성한다. 플레이어들은 물리 객체들을 생성하고, 그들 자신 및 다른 플레이어들을 물리 객체들로 바꾸고, 간단하고 사전 정의된 상호작용들을 능가하는 방식들로 물리 객체들 및 힘들의 상호작용에 의해 자발적인 상승 효과들을 생성할 수 있다.
추가적인 변형들 및 구현들도 가능하다. 따라서, 본 발명의 범위는 여기에 제공되는 특정 예들로 한정되지 않는다.
잠재적 상승 게임/객체 및 A/V 효과들의 탐색표(부분)
객체 타입 젖은 객체
마른 객체
플레이어 또는 논-플레이어 캐릭터
나는 객체
게임 효과 타입
번개 감전 잠재적 화재 잠재적 감전 또는 화재 또는 연소 잠재적 충돌
화재 상승 효과가 전혀 또는 거의 없음-화재의 양이 충분할 경우에 소정의 연기는 물론 연소 또는 화재도 가능함 연소/잠재적 화재 연소/잠재적 화재 연소/잠재적 화재
에너지 충격 상승 효과 없음-정규 에너지 충격 효과 적용 상승 효과 없음-정규 에너지 충격 효과 적용 상승 효과 없음-정규 투척 효과 적용 잠재적 충돌
타격 상승 효과 없음-정규 타격 효과 적용 상승 효과 없음-정규 타격 효과 적용 충돌 검출 및 분석에 의해 결정되는 바와 같이 캐릭터에 영향을 미친다-희생자 특성들, 예컨대 갑주 등에 의해 변경될 수 있다. 상승 효과 없음-정규 타격 효과 적용
투척 상승 효과 없음-정규 투척 효과 적용 상승 효과 없음-정규 투척 효과 적용 상승 효과 없음-정규 투척 효과 적용 상승 효과 없음-정규 투척 효과 적용
음향 충격 상승 효과 없음-정규 음향 충격 효과 적용 상승 효과 없음-정규 음향 충격 효과 적용 귀머거리 레벨을 유발할 수도 있다. 상승 효과 없음-정규 음향 충격 효과 적용
비물리 객체에서 물리 객체로의 전이들의 (부분) 표
비물리 객체 타입 일반적인 유연한 기하 객체
플레이어 또는 논-플레이어 캐릭터
일반적인 단단한 기하 객체
게임 효과 타입
가벼운 손상 이동, 표면 손상 이동에 대해 잠재적임 물리 객체로의 전이 없음
중간 손상 균열, 성분들, 입자들의 물리 객체로의 소정 전이 물리 객체로의 가능한 전이 물리 객체로의 전이 없음
심한 손상 파괴, 대부분의 입자들, 덩어리들의 물리 객체들로의 소정 전이 물리 객체로의 유망한 전이 물리 객체로의 전이 없음
번개 물리 객체로의 전이 없음 물리 객체로의 전이 없음 물리 객체로의 전이 없음
화재 물리 객체로의 전이 없음 물리 객체로의 전이 없음 물리 객체로의 전이 없음
에너지 충격 물리 객체로의 유망한 전이 물리 객체로의 유망한 전이 물리 객체로의 전이 없음
타격 물리 객체로의 가능한 전이 물리 객체로의 유망한 전이 물리 객체로의 전이 없음
투척된 캐릭터 물리 객체로의 유망한 전이 물리 객체로의 유망한 전이 물리 객체로의 전이 없음
음향 충격 물리 객체로의 유망한 전이 물리 객체로의 유망한 전이 물리 객체로의 전이 없음

Claims (28)

  1. 전자 장치 내의 프로세서로 하여금 시뮬레이션 내의 가상 삼차원 객체들을 관리하는 방법을 수행하게 하기 위한 명령어들을 포함하는 컴퓨터 판독 가능 매체로서,
    상기 방법은,
    a. 시뮬레이션 내의 가상 삼차원 객체들의 서브세트를 물리 객체들로서 정의하는 단계;
    b. 상기 물리 객체들 중 제1 물리 객체에 대한 적어도 제1 기본 파라미터 및 제1 상태를 정의하는 단계 - 상기 제1 기본 파라미터는 제1 값 및 제1 타입에 의해 특성화됨 -;
    c. 상기 물리 객체들 중 제2 물리 객체에 대한 적어도 제2 기본 파라미터 및 제2 상태를 정의하는 단계 - 상기 제2 기본 파라미터는 제2 값 및 제2 타입에 의해 특성화되고, 상기 제1 타입은 상기 제2 타입과 다름 -;
    d. 상기 물리 객체들 중 상기 제1 물리 객체와 상기 제2 물리 객체 사이의 적어도 하나의 상호작용을 정의하는 단계 - 상기 상호작용의 결과는 상기 제1 및 제2 파라미터들 및 상기 제1 및 제2 상태들에 적어도 부분적으로 의존함 -;
    e. 신호를 렌더러로 전송하고, 상기 상호작용의 결과의 지시를 렌더링하는 단계를 포함하는, 컴퓨터 판독 가능 매체.
  2. 제1항에 있어서, 상기 적어도 하나의 상호작용을 정의하는 단계는 상기 제1 및 제2 객체들 간의 충돌의 발생이 검출되는 것에 의해 유발되는, 컴퓨터 판독 가능 매체.
  3. 제1항에 있어서, 상기 적어도 하나의 상호작용을 정의하는 단계는 상기 제1 또는 제2 객체들 중 어느 하나와 플레이어 캐릭터 또는 논-플레이어 캐릭터에 의해 지향된 투사물 사이의 충돌의 발생이 검출되는 것에 의해 유발되는, 컴퓨터 판독 가능 매체.
  4. 제1항에 있어서, 상기 적어도 하나의 상태는 이동, 고정, 손상, 파괴 또는 부착으로 구성되는 그룹으로부터 선택되는, 컴퓨터 판독 가능 매체.
  5. 제1항에 있어서, 상기 시뮬레이션은 멀티플레이어 온라인 게임인, 컴퓨터 판독 가능 매체.
  6. 제1항에 있어서, 상기 제1 또는 제2 객체들 중 적어도 하나는 플레이어 캐릭터 또는 논-플레이어 캐릭터인, 컴퓨터 판독 가능 매체.
  7. 제4항에 있어서, 상기 제1 또는 제2 물리 객체들 중 적어도 하나를 유연한 기하(soft geometry)를 갖는 것으로서 정의하는 단계를 더 포함하고, 유연한 기하를 갖는 물리 객체의 상태가 손상되는 경우, 상기 물리 객체를 적어도 2개의 물리 객체 또는 적어도 물리 객체 및 비물리 객체로 대체하는 단계를 더 포함하는, 컴퓨터 판독 가능 매체.
  8. 제4항에 있어서, 상기 제1 또는 제2 물리 객체들 중 적어도 하나를 단단한 기하(hard geometry)를 갖는 것으로서 정의하는 단계를 더 포함하고, 단단한 기하를 갖는 물리 객체의 상태가 손상되는 경우, 단단한 기하를 갖는 상기 물리 객체 상의 손상 효과들을 렌더링하는 단계를 더 포함하는, 컴퓨터 판독 가능 매체.
  9. 제1항에 있어서, 상기 제1 및 제2 타입들은 무게, 크기, 형상, 밀도 및 전도율로 구성되는 그룹으로부터 선택되는, 컴퓨터 판독 가능 매체.
  10. 제1항에 있어서, 상기 상호작용의 결과는 객체 규칙 세트 또는 탐색표에 의해 결정되는, 컴퓨터 판독 가능 매체.
  11. 제1항에 있어서, 물리 객체들로서 이전에 정의되지 않은 상기 가상 삼차원 객체들 중 하나로부터 물리 객체를 정의하는 단계를 더 포함하는, 컴퓨터 판독 가능 매체.
  12. 제11항에 있어서, 상기 정의된 물리 객체는 플레이어 캐릭터인, 컴퓨터 판독 가능 매체.
  13. 제11항에 있어서, 상기 정의된 물리 객체는 무기로서 정의된 상태를 갖는, 컴퓨터 판독 가능 매체.
  14. 제1항에 있어서, 상기 적어도 하나의 상호작용을 정의하는 단계는 적어도 하나의 규칙 세트를 정의하는 단계를 포함하며, 상기 규칙 세트는 공통 타입을 갖는 기본 파라미터들을 갖는 물리 객체들과 관련되는, 컴퓨터 판독 가능 매체.
  15. 제1항에 있어서, 상기 물리 객체들 중 적어도 하나의 물리 객체에 대한 적어도 하나의 게임 효과를 정의하는 단계를 더 포함하고, 트리거가 발생하는 경우, 상기 게임 효과가 발생하는, 컴퓨터 판독 가능 매체.
  16. 제1항에 있어서, 상기 물리 객체들 중 적어도 하나의 물리 객체에 대한 적어도 하나의 오디오 또는 비주얼 효과를 정의하는 단계를 더 포함하고, 트리거가 발생하는 경우, 상기 오디오 또는 비주얼 효과가 렌더링되는, 컴퓨터 판독 가능 매체.
  17. 전자 장치 내의 프로세서로 하여금 시뮬레이션 내의 가상 삼차원 객체들을 관리하는 방법을 수행하게 하기 위한 명령어들을 포함하는 컴퓨터 판독 가능 매체로서,
    상기 방법은,
    a. 시뮬레이션 내의 가상 삼차원 객체들의 서브세트를 물리 객체들로서 정의하는 단계;
    b. 상기 물리 객체들 중 제1 물리 객체에 대한 적어도 제1 기본 파라미터 및 제1 상태를 정의하는 단계 - 상기 제1 기본 파라미터는 제1 값 및 제1 타입에 의해 특성화됨 -;
    c. 적어도 하나의 트리거를 정의하는 단계 - 상기 트리거의 발생시 상기 물리 객체들 중 제1 물리 객체는 상기 제1 상태에서 제2 상태로 전이되고, 상기 전이의 결과는 상기 제1 파라미터 및 상기 제1 상태에 적어도 부분적으로 의존함 -; 및
    d. 신호를 렌더러로 전송하고, 상기 전이의 결과의 지시를 렌더링하는 단계를 포함하는, 컴퓨터 판독 가능 매체.
  18. 제17항에 있어서, 상기 트리거는 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 물리 객체들 중 제1 물리 객체를 터치하는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 물리 객체들 중 제1 물리 객체를 손상시키는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 물리 객체들 중 제1 물리 객체를 주워드는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 물리 객체들 중 제1 물리 객체를 던지는 것 또는 사전 결정된 스크립트화된 이벤트로 구성된 그룹으로부터 선택되는, 컴퓨터 판독 가능 매체.
  19. 제18항에 있어서, 상기 적어도 하나의 트리거를 정의하는 단계는 플레이어 캐릭터, 논-플레이어 캐릭터 또는 가상 객체에 의해 유발될 수 있는 적어도 하나의 트리거를 정의하는 단계를 포함하고, 상기 방법은 상기 트리거 이벤트에 대한 적어도 하나의 정성자(qualifier)를 정의하는 단계를 더 포함하며, 상기 적어도 하나의 정성자를 정의하는 단계는 어느 플레이어 캐릭터들, 논-플레이어 캐릭터들 또는 가상 객체들이 전이를 유발하도록 허가되는지 또는 언제 전이들이 발생하도록 허가되는지를 정의하는 단계를 포함하는, 컴퓨터 판독 가능 매체.
  20. 제17항에 있어서, 상기 시뮬레이션은 MMO인, 컴퓨터 판독 가능 매체.
  21. 전자 장치 내의 프로세서로 하여금 시뮬레이션 내의 가상 삼차원 객체들을 관리하는 방법을 수행하게 하기 위한 명령어들을 포함하는 컴퓨터 판독 가능 매체로서,
    상기 방법은,
    a. 시뮬레이션 내의 적어도 하나의 가상 삼차원 객체를 비물리 객체들로서 정의하는 단계;
    b. 적어도 하나의 트리거를 정의하는 단계 - 상기 트리거의 발생시, 상기 적어도 하나의 가상 삼차원 객체를 물리 객체로 전이시킴 -; 및
    c. 신호를 렌더러로 전송하고, 상기 전이의 결과의 지시를 렌더링하는 단계를 포함하는, 컴퓨터 판독 가능 매체.
  22. 제21항에 있어서, 상기 트리거는 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 가상 삼차원 객체를 터치하는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 가상 삼차원 객체를 손상시키는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 가상 삼차원 객체를 주워드는 것, 플레이어 캐릭터 또는 논-플레이어 캐릭터가 상기 가상 삼차원 객체를 던지는 것 또는 사전 결정된 스크립트화된 이벤트로 구성된 그룹으로부터 선택되는, 컴퓨터 판독 가능 매체.
  23. 제21항에 있어서, 상기 적어도 하나의 트리거를 정의하는 단계는 플레이어 캐릭터, 논-플레이어 캐릭터 또는 가상 객체에 의해 유발될 수 있는 적어도 하나의 트리거를 정의하는 단계를 포함하고, 상기 방법은 상기 트리거에 대한 적어도 하나의 정성자를 정의하는 단계를 더 포함하며, 상기 적어도 하나의 정성자를 정의하는 단계는 어느 플레이어 캐릭터들, 논-플레이어 캐릭터들 또는 가상 객체들이 전이를 유발하도록 허가되는지 또는 언제 전이들이 발생하도록 허가되는지를 정의하는 단계를 포함하는, 컴퓨터 판독 가능 매체.
  24. 제21항에 있어서, 상기 시뮬레이션은 MMO인, 컴퓨터 판독 가능 매체.
  25. 시뮬레이션 내의 가상 삼차원 객체들을 관리하기 위한 시스템을 포함하는 컴퓨터 판독 가능 매체로서,
    a. 상태에 의해 부분적으로 정의되는 물리 객체들을 포함하는 복수의 가상 객체에 대한 데이터를 저장하기 위한 데이터베이스 모듈; 및
    b. 객체의 제1 상태에서 제2 상태로의 전이들을 정의하기 위한 트리거 정의 모듈을 포함하는 물리 엔진 모듈을 포함하는, 컴퓨터 판독 가능 매체.
  26. 제25항에 있어서, 상기 제1 상태는 비물리 객체이고, 상기 제2 상태는 물리 객체인, 컴퓨터 판독 가능 매체.
  27. 시뮬레이션 내의 가상 삼차원 객체들을 관리하기 위한 시스템을 포함하는 컴퓨터 판독 가능 매체로서,
    a. 상태에 의해 부분적으로 정의되는 물리 객체들을 포함하는 복수의 가상 객체에 대한 데이터를 저장하기 위한 데이터베이스 모듈; 및
    b. i. 물리 객체들 사이 또는 물리 객체들과 비물리 객체들 사이의 상호작용들을 정의하기 위한 상호작용 정의 모듈, 및 ii. 물리 객체들 사이 또는 물리 객체들과 비물리 객체들 사이의 상호작용의 결과를 정의하기 위한 객체 규칙 세트를 포함하는 물리 엔진 모듈을 포함하는, 컴퓨터 판독 가능 매체.
  28. 제27항에 있어서, 상기 객체 규칙 세트는 탐색표인, 컴퓨터 판독 가능 매체.
KR1020117004041A 2008-07-22 2009-07-22 시뮬레이션에서의 물리 상호작용을 위한 시스템 및 방법 KR101357978B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8267908P 2008-07-22 2008-07-22
US61/082,679 2008-07-22
PCT/US2009/051434 WO2010011770A2 (en) 2008-07-22 2009-07-22 System and method for physics interactions in a simulation

Publications (2)

Publication Number Publication Date
KR20110033864A true KR20110033864A (ko) 2011-03-31
KR101357978B1 KR101357978B1 (ko) 2014-02-03

Family

ID=41570851

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117004041A KR101357978B1 (ko) 2008-07-22 2009-07-22 시뮬레이션에서의 물리 상호작용을 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US8554526B2 (ko)
EP (1) EP2319018A4 (ko)
JP (1) JP6047842B2 (ko)
KR (1) KR101357978B1 (ko)
CN (1) CN102160086B (ko)
WO (1) WO2010011770A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527792B1 (ko) * 2013-08-29 2015-06-12 한양대학교 산학협력단 상호작용하는 캐릭터를 모델링 하는 방법 및 장치
KR20160146089A (ko) 2015-06-11 2016-12-21 주식회사 핸드온게임즈 물리엔진이 적용된 시뮬레이션 방식의 게임프로그램 및 게임진행방법
US10331819B2 (en) 2016-08-10 2019-06-25 Korea Institute Of Science And Technology System, method and readable recording medium of controlling virtual model

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010041358A1 (ja) * 2008-10-08 2010-04-15 株式会社ソニー・コンピュータエンタテインメント ゲーム制御プログラム、ゲーム装置、及びゲーム制御方法
US20110055730A1 (en) * 2009-08-26 2011-03-03 Ty Joseph Caswell User-Customizable Electronic Virtual Exhibit Reproduction System
US20110081959A1 (en) * 2009-10-01 2011-04-07 Wms Gaming, Inc. Representing physical state in gaming systems
US9132352B1 (en) * 2010-06-24 2015-09-15 Gregory S. Rabin Interactive system and method for rendering an object
US9652201B2 (en) * 2010-10-01 2017-05-16 Adobe Systems Incorporated Methods and systems for physically-based runtime effects
US20130083018A1 (en) * 2011-09-30 2013-04-04 Kevin A. Geisner Personal audio/visual system with holographic objects
US8847988B2 (en) 2011-09-30 2014-09-30 Microsoft Corporation Exercising applications for personal audio/visual system
WO2013070228A2 (en) * 2011-11-10 2013-05-16 Empire Technology Development, Llc Speculative rendering using historical player data
KR101563277B1 (ko) 2011-12-09 2015-10-26 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 게임 컨텐트 데이터의 예측적 캐싱
US9457277B2 (en) * 2013-05-30 2016-10-04 Roblox Corporation Multi-solver physics engine
JP6192366B2 (ja) * 2013-06-04 2017-09-06 任天堂株式会社 情報処理プログラム、情報処理装置の制御方法、情報処理装置および情報処理システム
US9468845B2 (en) * 2014-04-22 2016-10-18 Zynga Inc. Methods for using touch-screens to simulate balancing and manipulation of curved object during gameplay
CN104091019A (zh) * 2014-07-09 2014-10-08 无锡梵天信息技术股份有限公司 一种模型绑定特效的方法
CN104091358A (zh) * 2014-07-09 2014-10-08 无锡梵天信息技术股份有限公司 一种可破坏模型动画的实现方法
US9893974B2 (en) * 2015-10-11 2018-02-13 Microsoft Technology Licensing, Llc Synchronization of data for colliding bodies
JP2017182495A (ja) * 2016-03-30 2017-10-05 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP6420290B2 (ja) * 2016-11-11 2018-11-07 株式会社カプコン ゲームプログラム及びゲームシステム
JP6258552B1 (ja) * 2017-10-06 2018-01-10 株式会社ドリコム 情報処理装置、情報処理方法、プログラム、ならびに、端末
CN108509043B (zh) * 2018-03-29 2021-01-15 联想(北京)有限公司 一种交互控制方法及系统
CN108654086B (zh) * 2018-05-09 2023-06-16 腾讯科技(深圳)有限公司 虚拟环境中的攻击物伤害获取方法、装置及设备
JP6591630B1 (ja) * 2018-07-23 2019-10-16 株式会社Cygames ゲームプログラム、ゲームサーバ、ゲームシステム、及びゲーム装置
BR112021002148A2 (pt) * 2018-08-10 2021-05-04 Plasma Games, Inc. sistema e método para ensinar currículos como um jogo educacional
CN110681151A (zh) * 2019-10-12 2020-01-14 腾讯科技(深圳)有限公司 一种用户界面中元素交互的方法以及相关装置
CN110694276B (zh) * 2019-10-14 2023-08-01 北京代码乾坤科技有限公司 物理效果模拟方法、装置、存储介质、处理器及电子装置
CN111514581B (zh) * 2020-04-26 2023-09-15 网易(杭州)网络有限公司 游戏中虚拟对象的显示方法、装置以及电子终端
CN113289348A (zh) * 2020-04-28 2021-08-24 阿里巴巴集团控股有限公司 对象处理方法、客户端、服务端、电子设备及存储介质
US20220212100A1 (en) * 2021-01-04 2022-07-07 Microsoft Technology Licensing, Llc Systems and methods for streaming interactive applications
JP2023011071A (ja) * 2021-07-11 2023-01-23 株式会社スクウェア・エニックス プラン処理プログラムおよびプラン処理システム
CN116999794A (zh) * 2022-09-08 2023-11-07 腾讯科技(深圳)有限公司 虚拟场景的数据处理方法、装置、电子设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5377997A (en) * 1992-09-22 1995-01-03 Sierra On-Line, Inc. Method and apparatus for relating messages and actions in interactive computer games
US5498003A (en) 1993-10-07 1996-03-12 Gechter; Jerry Interactive electronic games and screen savers with multiple characters
JP3542795B1 (ja) * 2003-01-14 2004-07-14 コナミ株式会社 模擬実験装置、模擬実験方法、ならびに、プログラム
WO2004066200A2 (en) * 2003-01-17 2004-08-05 Yeda Research And Development Co. Ltd. Reactive animation
US20050253840A1 (en) * 2004-05-11 2005-11-17 Kwon Ryan Y W Method and system for interactive three-dimensional item display
US7296007B1 (en) 2004-07-06 2007-11-13 Ailive, Inc. Real time context learning by software agents
US7788071B2 (en) * 2004-12-03 2010-08-31 Telekinesys Research Limited Physics simulation apparatus and method
KR100676673B1 (ko) 2004-12-13 2007-02-01 한국전자통신연구원 물리 시뮬레이션 고속화 시스템 및 그 방법
US7403202B1 (en) * 2005-07-12 2008-07-22 Electronic Arts, Inc. Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models
US20080026838A1 (en) * 2005-08-22 2008-01-31 Dunstan James E Multi-player non-role-playing virtual world games: method for two-way interaction between participants and multi-player virtual world games
US20070066403A1 (en) * 2005-09-20 2007-03-22 Conkwright George C Method for dynamically adjusting an interactive application such as a videogame based on continuing assessments of user capability
US7953521B2 (en) * 2005-12-30 2011-05-31 Microsoft Corporation Learning controller for vehicle control
JP4794343B2 (ja) 2006-03-30 2011-10-19 株式会社バンダイナムコゲームス 画像生成システム、プログラム及び情報記憶媒体
JP2008079748A (ja) * 2006-09-27 2008-04-10 Taito Corp 映像音声出力装置、映像音声出力方法、映像音声出力プログラム
GB2444516B (en) * 2006-12-05 2011-11-02 Iti Scotland Ltd Distributed computer system
US8734214B2 (en) * 2007-11-29 2014-05-27 International Business Machines Corporation Simulation of sporting events in a virtual environment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527792B1 (ko) * 2013-08-29 2015-06-12 한양대학교 산학협력단 상호작용하는 캐릭터를 모델링 하는 방법 및 장치
KR20160146089A (ko) 2015-06-11 2016-12-21 주식회사 핸드온게임즈 물리엔진이 적용된 시뮬레이션 방식의 게임프로그램 및 게임진행방법
US10331819B2 (en) 2016-08-10 2019-06-25 Korea Institute Of Science And Technology System, method and readable recording medium of controlling virtual model

Also Published As

Publication number Publication date
JP6047842B2 (ja) 2016-12-21
JP2011528947A (ja) 2011-12-01
KR101357978B1 (ko) 2014-02-03
CN102160086B (zh) 2016-04-27
US8554526B2 (en) 2013-10-08
EP2319018A4 (en) 2012-10-17
WO2010011770A2 (en) 2010-01-28
US20100029384A1 (en) 2010-02-04
WO2010011770A3 (en) 2010-04-15
EP2319018A2 (en) 2011-05-11
CN102160086A (zh) 2011-08-17

Similar Documents

Publication Publication Date Title
KR101357978B1 (ko) 시뮬레이션에서의 물리 상호작용을 위한 시스템 및 방법
CN108654086B (zh) 虚拟环境中的攻击物伤害获取方法、装置及设备
JP5138520B2 (ja) プログラム及びゲーム装置
WO2021227733A1 (zh) 虚拟道具的显示方法、装置、设备及存储介质
JP2011528946A (ja) 自明のマルチユーザコンテンツのためのシステム及び方法
KR100963846B1 (ko) 게임장치, 화상생성방법 및 정보기록매체
WO2022007567A1 (zh) 一种虚拟资源显示方法和相关装置
US10195529B2 (en) Systems and methods of providing emergent interactions in virtual worlds
JP2023541697A (ja) 仮想シーンにおける位置取得方法、装置、電子機器、記憶媒体及びコンピュータプログラム
CN112107859A (zh) 道具控制方法和装置、存储介质及电子设备
Forlani et al. Game embrace siegecraft in" protect the walls!"
US10532286B2 (en) Reactive emitters of a video game effect based on intersection of coverage and detection zones
US11918906B2 (en) Systems and methods for providing video game gameplay having falling puzzle mechanics influenced by character movements within a puzzle space
CN114146412A (zh) 游戏中的显示控制方法、装置、电子设备和存储介质
Hokkanen et al. Plusminus: Augmenting physics to promote emergent gameplay
Pinchbeck Meat Chunks in the Metro: The Apocalyptic Soul of the Ukrainian Shooter
Huang et al. The development of a game with applications of object-oriented programming concepts
JP7251083B2 (ja) ゲーム処理プログラム、ゲーム処理方法及び端末
Tołkaczewski From Symbolism to Realism. Physical and Imaginary Video Game Spaces in Historical Aspects
CN117654038A (zh) 虚拟场景的互动处理方法、装置、电子设备及存储介质
CN114405008A (zh) 虚拟场景中的障碍物处理方法、装置、设备及存储介质
CN114288678A (zh) 虚拟场景的互动处理方法、装置、电子设备及存储介质
CN115970286A (zh) 虚拟对象的控制方法、装置、终端、存储介质及程序产品
US9399166B1 (en) System and method for object weakpoint generation
Whaley et al. VROARRR, Audio Based VR Weapon Design

Legal Events

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

Payment date: 20170116

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180109

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190110

Year of fee payment: 6