KR102365155B1 - 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버 - Google Patents

온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버 Download PDF

Info

Publication number
KR102365155B1
KR102365155B1 KR1020210113136A KR20210113136A KR102365155B1 KR 102365155 B1 KR102365155 B1 KR 102365155B1 KR 1020210113136 A KR1020210113136 A KR 1020210113136A KR 20210113136 A KR20210113136 A KR 20210113136A KR 102365155 B1 KR102365155 B1 KR 102365155B1
Authority
KR
South Korea
Prior art keywords
animation
motion
execution command
character
client device
Prior art date
Application number
KR1020210113136A
Other languages
English (en)
Inventor
양희일
Original Assignee
티니스튜디오 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 티니스튜디오 주식회사 filed Critical 티니스튜디오 주식회사
Priority to KR1020210113136A priority Critical patent/KR102365155B1/ko
Application granted granted Critical
Publication of KR102365155B1 publication Critical patent/KR102365155B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/44Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
    • 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/20Input arrangements for video game devices
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법이 개시된다.
본 발명의 캐릭터 애니메이션을 구현하는 방법은 클라이언트 장치를 통해 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법에 관한 것으로서, 사용자로부터 플레이어 캐릭터의 동작 실행 명령을 입력받는 단계; 상기 동작 실행 명령에 대한 요청 패킷을 온라인 게임 서버로 전송하고, 상기 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하는 단계; 상기 온라인 게임 서버로부터, 상기 동작 실행 명령에 대응되는 동작 애니메이션 및 상기 동작 실행 명령에 대하여 반응하는 상대 캐릭터의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 수신하는 단계; 및 상기 응답 패킷이 수신되면, 상기 통합된 애니메이션 중 상기 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하는 단계;를 포함할 수 있다.

Description

온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버 {METHOD FOR REALIZING ANIMATION OF GAME-CHARACTER IN ONLINE GAME AND SERVER FOR REALIZING THE SAME}
본 발명은 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버로, 더욱 상세하게는 느린 네트워크 환경에서 캐릭터 애니메이션을 효율적으로 구현하기 위한 방법 및 이를 위한 서버에 관한 것이다.
차세대 성장 엔진으로 주목받고 있는 온라인 게임은 간단한 조작 방법에 의해 쉽게 즐길 수 있는 캐쥬얼 아케이드 게임에서부터, 각자의 플레이어 캐릭터를 생성하여 온라인 게임 내의 공간에서 자유롭게 이동하면서 퀘스트를 수행하고 캐릭터를 육성하는 높은 자유도를 갖는 롤플레잉 게임에 이르기까지 매우 다양하다.
그 가운데, 수천 내지 수만의 동시 접속자를 자랑하는 MMORPG(Massively Multiplayer Online Role Playing Game)는 혼자서는 수행하기 어려운 퀘스트 등이 존재하여 다른 게이머들과 함께 협업 플레이를 하기도 하고, 퀘스트 수행 과정에서 다양한 NPC(Non-Player Character)를 만나게 된다.
따라서 MMORPG 서비스에서는 게이머들이 온라인 게임 내에서 조작하는 플레이어 캐릭터들 사이의 인터랙션, 또는 플레이어 캐릭터와 NPC 사이의 인터랙션 등 게임 내에서 다양한 인터랙션이 발생하게 된다.
MMORPG의 특성상 이러한 인터랙션은 실시간으로 이루어지고 보여져야 하므로, 기존의 MMORPG 서비스는 게임에 따라 1초에 수 회에서 수십 회에 걸쳐 현 상태를 서버와 다른 클라이언트에 공유함으로써 캐릭터의 움직임을 여러 유저들이 동일하게 볼 수 있도록 동기화하는 방식을 주로 사용한다.
그러나, 기존 동기화 방식은 네트워크가 느린 환경에서는 캐릭터의 움직임이 끊어져 보인다 던지 한꺼번에 밀렸던 동작이 표시되는 등 충분한 서비스 품질의 확보가 어렵다는 한계가 존재하였다.
이러한 한계는 물리적으로 상호 통신속도가 느릴 수 밖에 없는 먼 지역에 있는 유저와의 게임 플레이 경험을 부정적으로 만들어 여러 국가가 함께 플레이하는 MMORPG 서비스를 어렵게 하는 주요 원인이 되고 있다.
따라서, 느리거나 불안정한 네트워크 환경에서도 온라인 게임 내 캐릭터의 움직임이 최대한 끊기지 않고 딜레이 없이 표시되도록 온라인 게임 서비스를 효율적으로 운영하기 위한 방안의 마련이 필요하다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 온라인 게임 서비스에 있어서, 통신이 느리거나 속도가 불규칙한 환경에서도 캐릭터 간 상호 작용의 시점을 정확하게 일치시킴으로써 캐릭터의 움직임이 최대한 자연스럽게 구현되도록 하는 방법 및 이를 위한 서버를 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제가 상술한 과제로 제한되는 것은 아니며, 언급되지 아니한 과제들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 클라이언트 장치를 통해 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법은 사용자로부터 플레이어 캐릭터의 동작 실행 명령을 입력받는 단계, 상기 동작 실행 명령에 대한 요청 패킷을 온라인 게임 서버로 전송하고, 상기 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하는 단계, 상기 온라인 게임 서버로부터, 상기 동작 실행 명령에 대응되는 동작 애니메이션 및 상기 동작 실행 명령에 대하여 반응하는 대상 캐릭터의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 수신하는 단계 및, 상기 응답 패킷이 수신되면, 상기 통합된 애니메이션 중 상기 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하는 단계를 포함하고, 상기 나머지 부분을 이어서 재생하는 단계는 상기 요청 패킷의 전송 시간 및 상기 응답 패킷의 수신 시간의 차에 기초하여 패킷 지연 시간을 계산하고, 상기 패킷 지연 시간이 상기 동작 애니메이션의 재생 시간을 초과하면 상기 나머지 부분의 재생 속도를 기본 속도보다 빠르게 조절하는 것을 특징으로 한다.
이때, 상기 나머지 부분을 이어서 재생하는 단계는 상기 패킷 지연 시간이 상기 동작 애니메이션의 재생 시간 미만인 조건을 만족하는 경우, 상기 통합된 애니메이션 중 상기 동작 애니메이션의 기 재생된 구간을 제외한 나머지 미재생 구간 및 상기 리액션 애니메이션을 이어서 재생하거나, 상기 기 저장된 동작 애니메이션이 재생된 후, 상기 통합된 애니메이션 중 상기 리액션 애니메이션을 이어서 재생할 수 있다.
또한, 상기 나머지 부분을 이어서 재생하는 단계는 상기 패킷 지연 시간이 상기 동작 애니메이션의 재생 시간을 초과하고 상기 통합된 애니메이션의 총 재생 시간 미만인 조건을 만족하는 경우, 상기 통합된 애니메이션의 총 재생 시간에서 상기 패킷 지연 시간을 뺀 나머지 시간동안 상기 리액션 애니메이션이 빠르게 재생되도록 재생 속도를 조절할 수 있다.
또한, 상기 나머지 부분을 이어서 재생하는 단계는 상기 패킷 지연 시간이 상기 통합된 애니메이션의 총 재생 시간을 초과하는 조건을 만족하는 경우, 상기 리액션 애니메이션이 기 설정된 시간동안 빠르게 재생되도록 재생 속도를 조절하고, 상기 리액션 애니메이션이 재생된 후 이어서 재생되는 후속 애니메이션의 재생속도를 기본 속도보다 빠르게 조절할 수 있다.
또한, 상기 동작 애니메이션을 재생하는 단계는 상기 동작 실행 명령에 대한 요청 패킷에 상기 사용자의 고유 ID 값을 포함시켜 전송하고, 상기 요청 패킷의 전송 시간을 기록할 수 있다.
또한, 상기 응답 패킷을 수신하는 단계는 상기 응답 패킷에 포함된 상기 사용자의 고유 ID 값이 확인되면, 상기 응답 패킷의 수신 시간을 기록할 수 있다.
한편, 본 발명의 일 실시 예에 따른 클라이언트 장치를 통해 온라인 게임상에서의 캐릭터 애니메이션을 구현하기 위한 서버는 상기 캐릭터 애니메이션의 구현을 위한 프로그램을 저장하는 적어도 하나 이상의 메모리, 상기 프로그램을 실행함으로써, 상기 클라이언트 장치로부터 플레이어 캐릭터의 동작 실행 명령에 대한 요청 패킷을 수신하면, 상기 클라이언트 장치가 상기 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하도록 제어하고, 상기 동작 실행 명령에 대응되는 동작 애니메이션 및 상기 동작 실행 명령에 대하여 반응하는 대상 캐릭터의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 상기 클라이언트 장치로 전송하며, 상기 응답 패킷을 수신한 클라이언트 장치가 상기 통합된 애니메이션 중 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하도록 제어하는 프로세서를 포함하고, 상기 프로세서는 상기 클라이언트 장치가 상기 요청 패킷의 전송 시간 및 상기 응답 패킷의 수신 시간의 차에 기초하여 패킷 지연 시간을 계산하고, 상기 패킷 지연 시간이 상기 동작 애니메이션의 재생 시간을 초과하면 상기 나머지 부분의 재생 속도를 기본 속도보다 빠르게 조절하도록 제어하는 것을 특징으로 한다.
이때, 상기 프로세서는 상기 패킷 지연 시간이 상기 동작 애니메이션의 재생 시간 미만인 조건을 만족하는 경우, 상기 클라이언트 장치가 상기 통합된 애니메이션 중 상기 동작 애니메이션의 기 재생된 구간을 제외한 나머지 미재생 구간 및 상기 리액션 애니메이션을 이어서 재생하거나, 상기 기 저장된 동작 애니메이션이 재생된 후, 상기 통합된 애니메이션 중 상기 리액션 애니메이션을 이어서 재생하도록 제어할 수 있다.
또한, 상기 프로세서는 상기 패킷 지연 시간이 상기 동작 애니메이션의 재생 시간을 초과하고 상기 통합된 애니메이션의 총 재생 시간 미만인 조건을 만족하는 경우, 상기 클라이언트 장치가 상기 통합된 애니메이션의 총 재생 시간에서 상기 패킷 지연 시간을 뺀 나머지 시간동안 상기 리액션 애니메이션이 빠르게 재생되도록 재생 속도를 조절하도록 제어할 수 있다.
또한, 상기 프로세서는 상기 패킷 지연 시간이 상기 통합된 애니메이션의 총 재생 시간을 초과하는 조건을 만족하는 경우, 상기 클라이언트 장치가 상기 리액션 애니메이션이 기 설정된 시간동안 빠르게 재생되도록 재생 속도를 조절하고, 상기 리액션 애니메이션이 재생된 후 이어서 재생되는 후속 애니메이션의 재생속도를 기본 속도보다 빠르게 조절하도록 제어할 수 있다.
또한, 상기 프로세서는 상기 클라이언트 장치가 상기 동작 실행 명령에 대한 요청 패킷에 상기 사용자의 고유 ID 값을 포함시켜 전송하고, 상기 요청 패킷의 전송 시간을 기록하도록 제어할 수 있다.
또한, 상기 프로세서는 상기 클라이언트 장치가 상기 응답 패킷에 포함된 상기 사용자의 고유 ID 값이 확인되면, 상기 응답 패킷의 수신 시간을 기록하도록 제어할 수 있다.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 온라인 게임 서비스에 있어서, 통신이 느리거나 속도가 불규칙한 환경에서도 캐릭터 애니메이션의 끊김이 최소화됨으로써 게이머의 부정적 플레이 경험을 개선할 수 있게 된다.
본 발명의 효과가 상술한 효과들로 제한되는 것은 아니며, 언급되지 아니한 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 온라인 게임상에서의 캐릭터 애니메이션 구현을 위한 시스템의 구성요소를 설명하기 위한 도면,
도 2는 본 발명의 일 실시 예에 따른 클라이언트 장치에서의 캐릭터 애니메이션의 구현 방법을 간략히 설명하기 위한 흐름도,
도 3은 본 발명의 일 실시 예에 따른 패킷 지연시간에 따른 캐릭터 애니메이션의 재생방법을 설명하기 위한 흐름도,
도 4는 본 발명의 일 실시 예에 따른 서버의 구성을 간략히 설명하기 위한 블록도이다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 발명의 다양한 실시 예들에서의 기능을 고려하여 일반적인 용어들을 선택하였다. 하지만, 이러한 용어들은 당 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어일 수 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 명세서에 첨부된 각 도면에 기재된 동일한 참조 번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다. 설명 및 이해의 편의를 위해서 서로 다른 실시 예들에서도 동일한 참조번호 또는 부호를 사용하여 설명하도록 한다. 즉, 복수의 도면에서 동일한 참조 번호를 가지는 구성 요소를 모두 도시하고 있다고 하더라도, 복수의 도면들이 하나의 실시 예를 의미하는 것은 아니다.
또한, 본 명세서 및 청구범위에서는 구성요소들 간의 구별을 위하여 '제1', '제2' 등과 같이 서수를 포함하는 용어가 사용될 수 있다. 이러한 서수는 동일 또는 유사한 구성 요소들을 서로 구별하기 위하여 사용하는 것이며, 이러한 서수 사용으로 인하여 용어의 의미가 한정 해석되어서는 안될 것이다. 일 예로, 이러한 서수와 결합된 구성 요소는 그 숫자에 의해 사용 순서나 배치 순서 등이 제한 해석되어서는 안된다. 필요에 따라서는, 각 서수들은 서로 교체되어 사용될 수도 있다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다름을 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, '포함하다' 또는 '구성하다' 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 발명의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한 어떤 부분이 어떤 구성 요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다.
이하, 첨부된 도면을 참조하여 본 발명을 더욱 구체적으로 설명하기로 한다.
도 1은 본 발명의 일 실시 예에 따른 온라인 게임상에서의 캐릭터 애니메이션 구현을 위한 시스템의 구성요소를 설명하기 위한 도면이다.
본 발명의 온라인 게임상에서의 캐릭터 애니메이션 구현을 위한 온라인 게임 시스템(1000)은 온라인 게임 서버(100) 및 클라이언트 장치(200-1 ~ 200-n)를 포함한다.
온라인 게임 서버(100)는 네트워크(2000)를 통해 다수의 클라이언트 장치(200-1 ~ 200-n)와 연결된다.
이러한 온라인 게임 서버(100)는 동시 접속한 다수의 클라이언트 장치(200-1 ~ 200-n)들로 하여금 온라인 게임을 실행할 수 있도록, 게임 소프트웨어를 포함하는 각종 데이터를 제공하고 함께 게임을 실행하는 다른 사용자들의 상태 정보와 게임 내 각종 변수에 관한 정보를 공유할 수 있도록 한다.
이때, 온라인 게임 서버(100)가 제공하는 온라인 게임은 바람직하게는 각 클라이언트 장치(200-1 ~ 200-n)가 각자 자신의 플레이어 캐릭터를 조작하여 온라인 게임 내의 공간인 "맵" 상에서 자유롭게 이동하면서 퀘스트를 수행하고 때로는, 다른 플레이어 캐릭터와 파티를 구성하여 협업 플레이를 하는 형태의 MMORPG(Massively Multiplayer Online Role Playing Game)일 수 있다.
다만, 온라인 게임 서버(100)가 제공하는 온라인 게임은 MMORPG에 한정되지 않으며 다른 캐릭터와 인터랙션을 수행하는 다양한 방식의 게임을 포함할 수 있다.
여기서, 플레이어 캐릭터는 온라인 게임 화면 상에 등장하여 사용자의 조작에 따라 게임 내에서 일정한 행동을 하게 되며, 맵은 사용자가 운용하는 캐릭터가 활동하는 게임 상의 가상 공간을 의미한다. 맵은 게임의 종류에 따라 실제 세계의 지상, 숲, 산속, 도시, 하늘, 바닷속 또는 우주 공간 등 다양한 종류, 크기 및 형태로 표현되어 제공될 수 있다. 즉, 맵은 특정한 공간을 지칭하지 않으며 게임의 종류에 따른 어떤 형태의 가상 공간도 의미할 수 있다.
클라이언트 장치(200-1 ~ 200-n)는 네트워크(2000)를 통해 온라인 게임 서버(100)에 접속하여 사용자의 가상의 게임 캐릭터인 플레이어 캐릭터를 조작하기 위한 장치로, 바람직하게는 개인용 컴퓨터(Psersonal Computer)로 구현될 수 있으나, 네트워크(2000)를 통해 온라인 게임 서버(100)에 접속할 수 있는 것이라면 스마트폰이나 타블렛 등의 하드웨어일 수도 있다.
이러한 클라이언트 장치(200-1 ~ 200-n)는 온라인 게임상에서의 캐릭터 애니메이션을 구현하기 위한 방법을 실현하는데 필요한 프로그램 및 사용자 정보, 게임 정보 등을 저장하기 위한 메모리(미도시)를 포함할 수 있으며, 프로세서(미도시)에 의해 전반적인 동작이 제어될 수 있다.
이때, 메모리는 HDD(Hard Disk Drive), SSD(Solid State Drive), DRAM 메모리, SRAM 메모리, FRAM 메모리 및 플래시 메모리 중 하나로 구현될 수 있으며, 이 밖에도 다양한 형태의 데이터를 기록 가능한 저장 장치로 구현될 수 있다.
네트워크(2000)는 온라인 게임 서버(100)와 적어도 하나의 클라이언트 장치(200-1 ~ 200-n) 사이에 통신을 제공한다. 네트워크(2000)는 통신 및 통신망과 동일한 의미로 사용될 수 있으며, 본 발명의 네트워크(2000)는 유선 및 무선 네트워크를 모두 포함한다. 또한, 네트워크(2000)는 근거리 네트워크 및 원거리 광역 네트워크를 모두 포함할 수 있다.
클라이언트 장치(200-1 ~ 200-n)는 사용자 인터페이스(User Interface)를 통해 각 사용자로부터 플레이어 캐릭터가 NPC(Non-Player Character), 다른 사용자의 플레이어 캐릭터 등 적어도 하나의 다른 캐릭터(대상 캐릭터)와 상호작용(interaction)을 하기 위한 특정 동작을 수행하도록 하는 동작 실행 명령을 입력받을 수 있으며, 입력된 동작 실행 명령을 수행하도록 요청하는 요청 패킷을 온라인 게임 서버(100)로 전송할 수 있다.
여기서, 특정 동작은 공격, 대화, 거래, 도발, 치유, 특정 스킬(skill) 등 상호작용하는 캐릭터로부터 리액션(피격, 방어, 대화, 거래, 공격 등)을 이끌어낼 수 있는 다양한 동작을 포함한다.
이때, 클라이언트 장치(200-1 ~ 200-n)는 플레이어 캐릭터의 특정 동작에 대응하여 상호작용 캐릭터가 어떤 리액션을 취하게 될지 모르므로 온라인 게임 서버(100)로부터 상호작용 캐릭터(대상 캐릭터)의 리액션 애니메이션을 포함한 데이터를 수신하여야 한다.
온라인 게임 서버(100)는 클라이언트 장치(200-1 ~ 200-n)로부터 요청 패킷을 수신하면, 상호작용 캐릭터가 해당 특정 동작에 대하여 기 설정된 리액션을 보이도록 하는 리액션 실행 명령을 수행하고, 리액션 실행 명령에 대응되는 상호작용 캐릭터의 리액션 애니메이션 데이터를 클라이언트 장치(200-1 ~ 200-n)의 요청 패킷에 대한 응답 패킷에 포함하여 클라이언트 장치(200-1 ~ 200-n)로 전송할 수 있다.
클라이언트 장치(200-1 ~ 200-n)는 온라인 게임 서버(100)로부터 응답 패킷을 수신하고, 응답 패킷에 포함된 상호작용 캐릭터의 리액션 애니메이션 데이터에 따라 플레이어 캐릭터의 특정 동작에 따른 상호작용 캐릭터의 리액션 애니메이션을 재생할 수 있다.
예를 들어, 클라이언트 장치(200-1 ~ 200-n)로부터 입력된 플레이어 캐릭터의 특정 동작이 몬스터 등 특정 NPC에 대한 공격 스킬인 경우, 플레이어 캐릭터가 몬스터를 공격하는 동작 애니메이션이 재생될 수 있다. 재생되는 동작 애니메이션은 공격 스킬에 따라 칼을 휘두르거나 공격마법을 시전하는 등의 다양한 애니메이션을 포함할 수 있다.
플레이어 캐릭터의 동작 애니메이션에 이어서, 플레이어 캐릭터의 공격 스킬에 대하여 반응하는 상호작용 캐릭터의 리액션 애니메이션이 재생될 수 있다. 예를 들어, 상호작용 캐릭터에 공격 스킬에 의해 피격되거나 이를 방어하는 동작을 나타내는 애니메이션이 재생될 수 있다.
이에 따라, 느린 네트워크 환경에서는 응답 패킷의 수신이 얼마나 지연되는지에 따라 상호작용 캐릭터의 리액션이 끊기거나 한꺼번에 밀렸던 리액션이 표시되는 등 적절히 동기화가 되지 못하는 문제가 발생할 수 있다.
따라서, 상술한 바와 같이 동작하는 시스템(1000) 하에서 상호작용하는 캐릭터간 움직임을 효과적으로 동기화하는 방법을 도 2를 참조하여 구체적으로 설명하도록 한다.
도 2는 본 발명의 일 실시 예에 따른 클라이언트 장치에서의 캐릭터 애니메이션의 구현 방법을 간략히 설명하기 위한 흐름도이다.
이하에서는, 설명의 편의를 위해 플레이어 캐릭터의 동작 실행 명령은 대상캐릭터 중 하나인 특정 NPC를 공격하기 위해 칼을 휘두르는 공격 스킬의 실행 명령이라고 가정하며, 플레이어 캐릭터의 공격 대상인 특정 NPC의 리액션 실행 명령은 칼에 의해 피격되어 휘청거리는 피격 리액션의 실행 명령이라고 가정한다.
다만, 설명의 편의를 위해 대상 캐릭터가 특정 NPC임으로 가정할 뿐, 특정 NPC 외에 다른 플레이어의 캐릭터도 본 발명에 적용될 수 있음은 물론이다.
또한, 이하의 클라이언트 장치(200)는 상술한 복수의 클라이언트 장치(200-1 ~ 200-n) 중 어느 하나를 가정한다.
먼저, 클라이언트 장치(200) 상에서 사용자로부터, 플레이어 캐릭터의 특정 NPC에 대한 공격 스킬 실행 명령을 수신한다(S210).
공격 스킬 실행 명령의 수신을 위해, 클라이언트 장치(200)는 각종 사용자 명령을 입력받을 수 있는 사용자 인터페이스(User Interface)(미도시)를 포함할 수 있다. 이때, 사용자 인터페이스는 키보드, 마우스, 터치 디스플레이 패널 등 사용자와 클라이언트 장치(200) 간에 인터랙션을 수행할 수 있는 다양한 입력 장치를 포함할 수 있다.
이후, 공격 스킬 실행 명령에 대한 요청 패킷을 온라인 게임 서버(100)로 전송하고, 공격 스킬 실행 명령에 대응되는 공격 스킬 애니메이션을 재생한다(S220). 이때, 재생되는 공격 스킬 애니메이션은 클라이언트 장치(200)의 메모리 등 저장부에 기 저장되어 있을 수 있다.
즉, 클라이언트 장치(200)는 공격 스킬 실행 명령을 입력받으면 곧바로 공격 스킬 실행 명령에 대응되는 공격 스킬 애니메이션을 메모리로부터 읽어들여 게임 화면이 표시되는 디스플레이(미도시)를 통해 재생할 수 있다.
이후, 온라인 게임 서버(100)로부터, 공격 스킬 실행 명령에 대응되는 공격 스킬 애니메이션 및 공격 스킬 실행 명령에 대하여 반응하는 NPC의 피격 리액션 실행 명령에 대응되는 피격 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 수신한다(S230).
즉, 온라인 게임 서버(100)는 공격 스킬 실행 명령에 대응되는 공격 스킬 애니메이션과 이에 대하여 피격되는 NPC의 피격 애니메이션을 하나로 통합한 통합 애니메이션을 생성하고, 생성된 통합 애니메이션을 응답 패킷에 포함시켜 클라이언트 장치(200)로 전송할 수 있다. 이때, 공격 스킬 애니메이션 및 NPC의 피격 애니메이션은 온라인 게임 서버(100)에 기 저장되어 있을 수 있다.
예를 들어, 공격 스킬 동작의 지속 시간(duration), 즉 공격 스킬에 따라 칼을 휘두른 후 NPC가 피격되기까지의 시간이 3초이고, 피격 동작의 지속 시간, 즉 NPC가 피격되어 휘청거리는 시간이 2초라고 가정할 수 있다. 이때, 온라인 게임 서버(100)는 플레이어 캐릭터가 공격 스킬을 실행하도록 하는 공격 스킬 명령 패킷과 NPC가 피격 리액션을 실행하도록 하는 피격 리액션 명령 패킷을 하나로 패키지화하여 공격 스킬 애니메이션(3초) 및 피격 애니메이션(2초)을 통합한 총 5초의 재생 시간을 갖는 통합 애니메이션을 생성할 수 있다.
이와 같이 생성된 통합 애니메이션을 포함하는 응답 패킷이 클라이언트 장치(200)로 전송될 수 있다.
이하의 실시 예는 모두 이와 같은 가정에 따라 기술하도록 한다.
이후, 응답 패킷이 수신되면, 통합된 애니메이션 중 공격 스킬 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생한다(S240).
즉, 클라이언트 장치(200)에 응답 패킷이 수신된 시점을 기준으로 하여, 통합 애니메이션 중 클라이언트 장치(200)에서 재생된 공격 스킬 애니메이션을 제외한 나머지 부분이 이어서 재생될 수 있다.
구체적으로 예를 들면, 클라이언트 장치(200)에서 기 저장된 공격 스킬 애니메이션이 2초 간 재생된 시점에 응답 패킷이 수신된 경우, 응답 패킷에 포함된 통합 애니메이션 중에서 기 재생된 2초를 제외한 공격 스킬 애니메이션의 나머지 미재생 구간(1초)과 NPC의 피격 애니메이션을 이어서 재생할 수 있다.
또는, 실시 예에 따라 클라이언트 장치(200)에서 기 저장된 공격 스킬 애니메이션이 2초 간 재생된 시점에 응답 패킷이 수신된 경우, 나머지 미재생 구간(1초)을 그대로 재생하고, 응답 패킷에 포함된 통합 애니메이션 중에서 NPC의 피격 애니메이션만 이어서 재생할 수도 있다.
즉, 요청 패킷의 전송 시간 및 응답 패킷의 수신 시간의 차(패킷 지연 시간)가 공격 스킬 애니메이션의 재생 시간 미만인 조건을 만족하는 경우에는 공격 스킬 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 온라인 게임 서버(100)로부터 수신한 통합 애니메이션에서 이어서 재생하게 된다.
패킷 지연 시간을 계산하기 위한 본 발명의 일 실시 예에 따르면, 클라이언트 장치(200)는 공격 스킬 실행 명령에 대한 요청 패킷 중 공격 스킬에 대한 콘텍스트(context) 필드에 플레이어 캐릭터의 고유 값(owner_id)을 포함시켜 온라인 게임 서버(100)로 전송할 수 있다. 이때, 클라이언트 장치(200)는 해당 콘텍스트를 키(key) 값으로 전송한 시간을 기록할 수 있다.
구체적으로, 클라이언트 장치(200)는 온라인 게임 서버(100)로부터 받은 응답 패킷에 포함된 고유 값(owner_id)을 확인하여 플레이어 캐릭터의 고유 값(owner_id)과 일치하면 요청 패킷을 온라인 게임 서버(100)로 보낸 시간을 확인하여 기록할 수 있다.
이와 같은 방식으로, 클라이언트 장치(200)는 온라인 게임 서버(100)로 요청 패킷을 보낸 시간과 응답 패킷을 받은 시간의 차를 이용하여 패킷 지연 시간을 계산할 수 있다.
한편, 본 발명의 일 실시 예에 따르면, 클라이언트 장치(200)는 계산된 패킷 지연 시간이 공격 스킬 애니메이션의 재생 시간을 초과하는 경우, 나머지 부분의 재생 속도를 기본 속도보다 빠르게 조절할 수 있다. 이와 관련한 구체적인 내용은 도 3을 참조하여 설명하도록 한다.
도 3은 본 발명의 일 실시 예에 따른 패킷 지연시간에 따른 캐릭터 애니메이션의 재생방법을 설명하기 위한 흐름도이다.
먼저, 클라이언트 장치(200)에서 요청 패킷을 보낸 시간과 응답 패킷을 받은 시간의 차를 이용하여 패킷 지연 시간을 계산할 수 있다(S310).
계산된 패킷 지연 시간이 공격 스킬 애니메이션의 재생 시간을 초과하는지 여부를 판단하고(S320), 패킷 지연 시간이 공격 스킬 애니메이션의 재생 시간을 초과하지 않는 경우(S320:N), 도 2에서 설명한 바와 같이 응답 패킷에 포함된 통합 애니메이션 중 공격 스킬 애니메이션의 미재생 구간 및 리액션 애니메이션을 이어서 재생할 수 있다(S350). 즉, 상술한 실시 예에서 패킷 지연 시간이 0초 내지 3초 내인 경우에 해당할 수 있다.
패킷 지연 시간이 공격 스킬 애니메이션의 재생 시간을 초과하는 경우(S320:Y), 패킷 지연 시간이 통합 애니메이션의 재생 시간을 초과하는지 여부를 판단하고(S330), 패킷 지연 시간이 통합 애니메이션의 재생 시간을 초과하지 않는 경우(S330:N), 통합 애니메이션의 총 재생시간에서 패킷 지연 시간을 뺀 나머지 시간 동안 NPC의 피격 애니메이션을 빠르게 재생할 수 있다(S360).
즉, 패킷 지연 시간이 공격 스킬 애니메이션의 재생 시간을 초과하되, 통합 애니메이션의 총 재생 시간을 초과하지 않는 경우로서, 상술한 실시 예에서 패킷 지연 시간이 3초 내지 5초 내인 경우에 해당할 수 있다.
이때는, 클라이언트 장치(200)에 기 저장된 공격 스킬 애니메이션이 재생된 후, 통합 애니메이션의 피격 애니메이션이 재생되기까지의 딜레이를 보정하기 위하여 NPC의 피격 애니메이션을 기본 속도보다 빠르게 재생되도록 재생 속도를 조절할 수 있다. 바람직하게는, NPC의 피격 애니메이션은 통합 애니메이션의 재생시간에서 패킷 지연 시간을 뺀 나머지 시간에 맞춰 재생이 빠르게 이루어지도록 재생 속도가 조절될 수 있다.
예를 들어, 패킷 지연 시간이 4초인 경우, 통합 애니메이션의 재생시간인 5초에서 패킷 지연 시간 4초를 뺀 1초 동안만에 2초간 지속되는 NPC의 피격 애니메이션이 모두 재생되도록 기본 속도보다 2배 빠르게 재생 속도를 조절하여, 1초의 딜레이를 보정할 수 있다.
한편, 패킷 지연 시간이 통합 애니메이션의 재생 시간을 초과하는 경우(S330:Y), NPC의 피격 애니메이션 및 후속 애니메이션을 빠르게 재생할 수 있다(S340).
즉, 상술한 실시 예에서 패킷 지연 시간이 5초를 초과하는 경우에 해당할 수 있다.
이때는, NPC의 피격 애니메이션이 기 설정된 배속으로 빠르게 재생되도록 조절할 수 있다. 다만, NPC의 피격 애니메이션을 아무리 빠르게 재생하더라도 발생된 딜레이를 보정하기 어려우므로, NPC의 피격 애니메이션이 재생된 후 이어서 재생될 후속 애니메이션의 재생속도까지 기본 속도보다 빠르게 조절할 수 있다.
예를 들어, 패킷 지연 시간이 6초인 경우, 클라이언트 장치(200)에서 기 저장된 공격 스킬 애니메이션이 재생된 후로부터 3초 간의 딜레이가 발생되므로 3초의 딜레이를 보정하기 위해서 NPC의 피격 애니메이션의 재생 속도 및 후속 애니메이션의 재생 속도를 기본 속도보다 빠르게 조절하여 3초의 보상이 발생되도록 할 수 있다.
여기서, 후속 애니메이션은 차회로 수행되는 플레이어 캐릭터의 동작 애니메이션 또는 NPC의 차회의 리액션 애니메이션 등 캐릭터를 불문하고 재생되는 애니메이션을 포함할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 온라인 게임상에서의 캐릭터 애니메이션을 구현하기 위한 서버의 구성을 간략히 설명하기 위한 블록도이다.
본 발명의 서버(100)는 통신부(110), 메모리(120) 및 프로세서(130)를 포함한다. 다만, 서버(100)의 구성요소가 전술한 예에 한정되는 것은 아니다. 예를 들어, 서버(100)는 전술한 구성 요소보다 더 많은 구성 요소를 포함하거나 더 적은 구성 요소를 포함할 수 있다. 뿐만 아니라, 통신부(110), 메모리(120) 및 프로세서(130)가 하나의 칩(Chip) 형태로 구현될 수도 있다.
통신부(110)는 클라이언트 장치(200)와 네트워크를 통해 각종 신호를 송수신할 수 있다. 서버(100)는 통신부(110)를 통해 동시접속한 다수의 클라이언트 장치(200-1 ~ 200-n)들로 하여금 온라인 게임을 실행할 수 있도록, 게임 소프트웨어를 포함하는 각종 데이터를 제공하고 함께 게임을 실행하는 다른 사용자들의 상태 정보와 게임 내 각종 변수에 관한 정보를 공유할 수 있도록 한다.
특히, 통신부(110)를 통해 본 발명을 구현하기 위한 요청 패킷 및 응답 패킷 등 각종 데이터를 송수신할 수 있다.
메모리(120)는 온라인 게임 서비스의 제공에 필요한 프로그램 및 데이터를 저장하는 구성이다. 일 실시 예에서, 메모리(120)는 서버(100)가 송수신하는 신호에 포함된 제어 정보 또는 데이터를 저장할 수 있으며, 플레이어 캐릭터 및/또는 NPC의 동작 애니메이션 및 리액션 애니메이션을 저장할 수 있다. 메모리(120)는 롬(ROM), 램(RAM), 하드디스크, CD-ROM 및 DVD 등과 같은 저장 매체 또는 저장 매체들의 조합으로 구성될 수 있으며, 복수 개일 수도 있다. 일 실시 예에 따르면, 메모리(120)는 전술한 본 발명의 실시 예들인 서버(100)의 동작을 수행하기 위한 프로그램, 예를 들어 캐릭터 애니메이션의 구현을 위한 프로그램 등을 저장할 수 있다.
프로세서(130)는 상술한 본 발명의 실시 예에 따라 서버(100)가 동작하는 일련의 과정을 제어할 수 있다. 예를 들면, 일 실시 예에 따른 서버(100)의 동작을 수행하도록 서버(100)의 구성요소들을 제어할 수 있으며, 이로부터 클라이언트 장치(200)를 간접적으로 제어할 수도 있다.
프로세서(130)는 복수 개일 수 있으며, 프로세서(130)는 메모리(120)에 저장된 프로그램을 실행함으로써 서버(100)의 동작을 수행할 수 있다.
일 실시 예에서, 프로세서(130)는 클라이언트 장치(200)로부터 플레이어 캐릭터의 동작 실행 명령에 대한 요청 패킷을 수신하면, 클라이언트 장치(200)가 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하도록 제어하고, 동작 실행 명령에 대응되는 동작 애니메이션 및 동작 실행 명령에 대하여 반응하는 NPC의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 클라이언트 장치(200)로 전송할 수 있으며, 응답 패킷을 수신한 클라이언트 장치(200)가 통합된 애니메이션 중 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하도록 제어할 수 있다.
특히, 일 실시 예에 따르면, 프로세서(130)는 클라이언트 장치(200)가 요청 패킷의 전송 시간 및 응답 패킷의 수신 시간의 차에 기초하여 패킷 지연 시간을 계산하고, 패킷 지연 시간이 동작 애니메이션의 재생 시간을 초과하면 나머지 부분의 재생 속도를 기본 속도보다 빠르게 조절하도록 제어할 수 있다.
또한, 일 실시 예에 따르면, 프로세서(130)는 패킷 지연 시간이 동작 애니메이션의 재생 시간 미만인 조건을 만족하는 경우, 클라이언트 장치(200)가 통합된 애니메이션 중 동작 애니메이션의 기 재생된 구간을 제외한 나머지 미재생 구간 및 리액션 애니메이션을 이어서 재생하거나, 기 저장된 동작 애니메이션이 재생된 후, 통합된 애니메이션 중 리액션 애니메이션을 이어서 재생하도록 제어할 수 있다.
또한, 일 실시 예에 따르면, 프로세서(130)는 패킷 지연 시간이 동작 애니메이션의 재생 시간을 초과하고 통합된 애니메이션의 총 재생 시간 미만인 조건을 만족하는 경우, 클라이언트 장치(200)가 통합된 애니메이션의 총 재생 시간에서 패킷 지연 시간을 뺀 나머지 시간동안 리액션 애니메이션이 빠르게 재생되도록 재생 속도를 조절하도록 제어할 수 있다.
또한, 일 실시 예에 따르면, 프로세서(130)는 패킷 지연 시간이 통합된 애니메이션의 총 재생 시간을 초과하는 조건을 만족하는 경우, 클라이언트 장치(200)가 리액션 애니메이션이 기 설정된 시간동안 빠르게 재생되도록 재생 속도를 조절하고, 리액션 애니메이션이 재생된 후 이어서 재생되는 후속 애니메이션의 재생속도를 기본 속도보다 빠르게 조절하도록 제어할 수 있다.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 온라인 게임 서비스에 있어서, 통신이 느리거나 속도가 불규칙한 환경에서도 캐릭터 애니메이션의 끊김이 최소화됨으로써 게이머의 부정적 플레이 경험을 개선할 수 있게 된다.
한편, 상술한 다양한 실시 예에 따른 캐릭터 애니메이션 구현 방법은 프로그램으로 구현되어 다양한 기록 매체에 저장될 수 있다. 즉, 각종 프로세서에 의해 처리되어 상술한 캐릭터 애니메이션 구현 방법을 실행할 수 있는 컴퓨터 프로그램이 기록 매체에 저장된 상태로 사용될 수도 있다.
일 예로, ⅰ) 사용자로부터 플레이어 캐릭터의 동작 실행 명령을 입력받는 단계, ⅱ) 동작 실행 명령에 대한 요청 패킷을 온라인 게임 서버로 전송하고, 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하는 단계, ⅲ) 온라인 게임 서버로부터, 동작 실행 명령에 대응되는 동작 애니메이션 및 동작 실행 명령에 대하여 반응하는 대상 캐릭터 중 하나인 NPC의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 수신하는 단계 및, ⅳ) 응답 패킷이 수신되면, 통합된 애니메이션 중 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하되, 요청 패킷의 전송 시간 및 응답 패킷의 수신 시간의 차에 기초하여 패킷 지연 시간을 계산하고, 패킷 지연 시간이 동작 애니메이션의 재생 시간을 초과하면 나머지 부분의 재생 속도를 기본 속도보다 빠르게 조절하는 단계를 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
상술한 실시 예에서는 "서버"라는 표현을 사용하였으나, 분산 컴퓨팅 환경에서는 기능이나 부하를 다수의 서버로 분할하여 처리하는 것이 일반적이므로 "서버"는 반드시 단일한 하드웨어 구성요소를 지칭하지 아니하며, 기능적으로 구분되는 서버군을 포함할 수 있다.
또한, 상술한 실시 예에서는 "네트워크"라는 표현을 사용하였으나, 이때 네트워크는 거리와 규모에 따라서는 LAN(Local Area Network), WAN(Wide Area Network), 접속경로의 특징에 따라서는 인트라넷, VPN(Virtual Private Network), 접속방식에 따라서는 와이브로, WiFi, 이동통신망과 같이 지칭되는 다양한 네트워크 연결방식을 모두 포함하는 광의의 개념으로 해석되어야 한다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되면 안될 것이다.
100: 서버 110: 통신부
120: 입력부 130: 메모리
200: 클라이언트 장치 1000: 온라인 게임 시스템
2000: 네트워크

Claims (14)

  1. 클라이언트 장치를 통해 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법에 있어서,
    사용자로부터 플레이어 캐릭터의 동작 실행 명령을 입력받는 단계;
    상기 동작 실행 명령에 대한 요청 패킷을 온라인 게임 서버로 전송하고, 상기 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하는 단계;
    상기 온라인 게임 서버로부터, 상기 동작 실행 명령에 대응되는 동작 애니메이션 및 상기 동작 실행 명령에 대하여 반응하는 상대 캐릭터의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 수신하는 단계; 및
    상기 응답 패킷이 수신되면, 상기 통합된 애니메이션 중 상기 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하는 단계;를 포함하고,
    상기 나머지 부분을 이어서 재생하는 단계는,
    상기 요청 패킷의 전송 시간 및 상기 응답 패킷의 수신 시간의 차에 기초하여 패킷 지연 시간을 계산하고,
    상기 패킷 지연 시간이 상기 동작 애니메이션의 재생 시간 미만인 조건을 만족하는 경우, 상기 통합된 애니메이션 중 상기 동작 애니메이션의 기 재생된 구간을 제외한 나머지 미재생 구간 및 상기 리액션 애니메이션을 이어서 재생하거나, 상기 기 저장된 동작 애니메이션이 재생된 후, 상기 통합된 애니메이션 중 상기 리액션 애니메이션을 이어서 재생하는,
    온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법.
  2. 클라이언트 장치를 통해 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법에 있어서,
    사용자로부터 플레이어 캐릭터의 동작 실행 명령을 입력받는 단계;
    상기 동작 실행 명령에 대한 요청 패킷을 온라인 게임 서버로 전송하고, 상기 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하는 단계;
    상기 온라인 게임 서버로부터, 상기 동작 실행 명령에 대응되는 동작 애니메이션 및 상기 동작 실행 명령에 대하여 반응하는 상대 캐릭터의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 수신하는 단계; 및
    상기 응답 패킷이 수신되면, 상기 통합된 애니메이션 중 상기 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하는 단계;를 포함하고,
    상기 나머지 부분을 이어서 재생하는 단계는,
    상기 요청 패킷의 전송 시간 및 상기 응답 패킷의 수신 시간의 차에 기초하여 패킷 지연 시간을 계산하고,
    상기 패킷 지연 시간이 상기 동작 애니메이션의 재생 시간을 초과하고 상기 통합된 애니메이션의 총 재생 시간 미만인 조건을 만족하는 경우, 상기 통합된 애니메이션의 총 재생 시간에서 상기 패킷 지연 시간을 뺀 나머지 시간동안 상기 리액션 애니메이션이 빠르게 재생되도록 재생 속도를 조절하는,
    온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법.
  3. 클라이언트 장치를 통해 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법에 있어서,
    사용자로부터 플레이어 캐릭터의 동작 실행 명령을 입력받는 단계;
    상기 동작 실행 명령에 대한 요청 패킷을 온라인 게임 서버로 전송하고, 상기 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하는 단계;
    상기 온라인 게임 서버로부터, 상기 동작 실행 명령에 대응되는 동작 애니메이션 및 상기 동작 실행 명령에 대하여 반응하는 상대 캐릭터의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 수신하는 단계; 및
    상기 응답 패킷이 수신되면, 상기 통합된 애니메이션 중 상기 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하는 단계;를 포함하고,
    상기 나머지 부분을 이어서 재생하는 단계는,
    상기 요청 패킷의 전송 시간 및 상기 응답 패킷의 수신 시간의 차에 기초하여 패킷 지연 시간을 계산하고,
    상기 패킷 지연 시간이 상기 통합된 애니메이션의 총 재생 시간을 초과하는 조건을 만족하는 경우, 상기 리액션 애니메이션이 기 설정된 시간동안 빠르게 재생되도록 재생 속도를 조절하고, 상기 리액션 애니메이션이 재생된 후 이어서 재생되는 후속 애니메이션의 재생속도를 기본 속도보다 빠르게 조절하는,
    온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법.
  4. 삭제
  5. 삭제
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 동작 애니메이션을 재생하는 단계는,
    상기 동작 실행 명령에 대한 요청 패킷에 상기 사용자의 고유 ID 값을 포함시켜 전송하고, 상기 요청 패킷의 전송 시간을 기록하는,
    온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법.
  7. 제6항에 있어서,
    상기 응답 패킷을 수신하는 단계는,
    상기 응답 패킷에 포함된 상기 사용자의 고유 ID 값이 확인되면, 상기 응답 패킷의 수신 시간을 기록하는,
    온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법.
  8. 클라이언트 장치를 통해 온라인 게임상에서의 캐릭터 애니메이션을 구현하기 위한 서버에 있어서,
    상기 캐릭터 애니메이션의 구현을 위한 프로그램을 저장하는 적어도 하나 이상의 메모리;
    상기 프로그램을 실행함으로써, 상기 클라이언트 장치로부터 플레이어 캐릭터의 동작 실행 명령에 대한 요청 패킷을 수신하면, 상기 클라이언트 장치가 상기 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하도록 제어하고, 상기 동작 실행 명령에 대응되는 동작 애니메이션 및 상기 동작 실행 명령에 대하여 반응하는 대상 캐릭터의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 상기 클라이언트 장치로 전송하며, 상기 응답 패킷을 수신한 클라이언트 장치가 상기 통합된 애니메이션 중 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하도록 제어하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 클라이언트 장치가 상기 요청 패킷의 전송 시간 및 상기 응답 패킷의 수신 시간의 차에 기초하여 패킷 지연 시간을 계산하고,
    상기 패킷 지연 시간이 상기 동작 애니메이션의 재생 시간 미만인 조건을 만족하는 경우, 상기 클라이언트 장치가 상기 통합된 애니메이션 중 상기 동작 애니메이션의 기 재생된 구간을 제외한 나머지 미재생 구간 및 상기 리액션 애니메이션을 이어서 재생하거나, 상기 기 저장된 동작 애니메이션이 재생된 후, 상기 통합된 애니메이션 중 상기 리액션 애니메이션을 이어서 재생하도록 제어하는,
    온라인 게임상에서의 캐릭터 애니메이션을 구현하는 서버.
  9. 클라이언트 장치를 통해 온라인 게임상에서의 캐릭터 애니메이션을 구현하기 위한 서버에 있어서,
    상기 캐릭터 애니메이션의 구현을 위한 프로그램을 저장하는 적어도 하나 이상의 메모리;
    상기 프로그램을 실행함으로써, 상기 클라이언트 장치로부터 플레이어 캐릭터의 동작 실행 명령에 대한 요청 패킷을 수신하면, 상기 클라이언트 장치가 상기 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하도록 제어하고, 상기 동작 실행 명령에 대응되는 동작 애니메이션 및 상기 동작 실행 명령에 대하여 반응하는 대상 캐릭터의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 상기 클라이언트 장치로 전송하며, 상기 응답 패킷을 수신한 클라이언트 장치가 상기 통합된 애니메이션 중 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하도록 제어하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 클라이언트 장치가 상기 요청 패킷의 전송 시간 및 상기 응답 패킷의 수신 시간의 차에 기초하여 패킷 지연 시간을 계산하고,
    상기 패킷 지연 시간이 상기 동작 애니메이션의 재생 시간을 초과하고 상기 통합된 애니메이션의 총 재생 시간 미만인 조건을 만족하는 경우, 상기 통합된 애니메이션의 총 재생 시간에서 상기 패킷 지연 시간을 뺀 나머지 시간동안 상기 리액션 애니메이션이 빠르게 재생되도록 재생 속도를 조절하는,
    온라인 게임상에서의 캐릭터 애니메이션을 구현하는 서버.
  10. 클라이언트 장치를 통해 온라인 게임상에서의 캐릭터 애니메이션을 구현하기 위한 서버에 있어서,
    상기 캐릭터 애니메이션의 구현을 위한 프로그램을 저장하는 적어도 하나 이상의 메모리;
    상기 프로그램을 실행함으로써, 상기 클라이언트 장치로부터 플레이어 캐릭터의 동작 실행 명령에 대한 요청 패킷을 수신하면, 상기 클라이언트 장치가 상기 동작 실행 명령에 대응되는 기 저장된 동작 애니메이션을 재생하도록 제어하고, 상기 동작 실행 명령에 대응되는 동작 애니메이션 및 상기 동작 실행 명령에 대하여 반응하는 대상 캐릭터의 리액션 실행 명령에 대응되는 리액션 애니메이션이 통합된 애니메이션을 포함하는 응답 패킷을 상기 클라이언트 장치로 전송하며, 상기 응답 패킷을 수신한 클라이언트 장치가 상기 통합된 애니메이션 중 동작 애니메이션의 기 재생된 부분을 제외한 나머지 부분을 이어서 재생하도록 제어하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 클라이언트 장치가 상기 요청 패킷의 전송 시간 및 상기 응답 패킷의 수신 시간의 차에 기초하여 패킷 지연 시간을 계산하고,
    상기 패킷 지연 시간이 상기 통합된 애니메이션의 총 재생 시간을 초과하는 조건을 만족하는 경우, 상기 리액션 애니메이션이 기 설정된 시간동안 빠르게 재생되도록 재생 속도를 조절하고, 상기 리액션 애니메이션이 재생된 후 이어서 재생되는 후속 애니메이션의 재생속도를 기본 속도보다 빠르게 조절하는,
    온라인 게임상에서의 캐릭터 애니메이션을 구현하는 서버.
  11. 삭제
  12. 삭제
  13. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 프로세서는,
    상기 클라이언트 장치가 상기 동작 실행 명령에 대한 요청 패킷에 고유 ID 값을 포함시켜 전송하고, 상기 요청 패킷의 전송 시간을 기록하도록 제어하는,
    온라인 게임상에서의 캐릭터 애니메이션을 구현하는 서버.
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 클라이언트 장치가 상기 응답 패킷에 포함된 상기 고유 ID 값이 확인되면, 상기 응답 패킷의 수신 시간을 기록하도록 제어하는,
    온라인 게임상에서의 캐릭터 애니메이션을 구현하는 서버.
KR1020210113136A 2021-08-26 2021-08-26 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버 KR102365155B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210113136A KR102365155B1 (ko) 2021-08-26 2021-08-26 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210113136A KR102365155B1 (ko) 2021-08-26 2021-08-26 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버

Publications (1)

Publication Number Publication Date
KR102365155B1 true KR102365155B1 (ko) 2022-02-18

Family

ID=80495055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210113136A KR102365155B1 (ko) 2021-08-26 2021-08-26 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버

Country Status (1)

Country Link
KR (1) KR102365155B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007301047A (ja) * 2006-05-09 2007-11-22 Aruze Corp ゲーム装置、及び、ゲームサーバ
KR20080069682A (ko) * 2006-02-17 2008-07-28 가부시키가이샤 코나미 데지타루 엔타테인멘토 게임서버장치, 게임서비스방법 및 프로그램을 기록한 컴퓨터 판독 가능한 정보기록매체
KR20150103199A (ko) * 2013-01-29 2015-09-09 소니 컴퓨터 엔터테인먼트 아메리카 엘엘씨 네트워크 멀티플레이어 게임의 레이턴시를 숨기기 위한 방법 및 장치
JP6255526B1 (ja) * 2017-06-14 2017-12-27 株式会社 ディー・エヌ・エー 情報処理装置、ゲームプログラム、及び、情報処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080069682A (ko) * 2006-02-17 2008-07-28 가부시키가이샤 코나미 데지타루 엔타테인멘토 게임서버장치, 게임서비스방법 및 프로그램을 기록한 컴퓨터 판독 가능한 정보기록매체
JP2007301047A (ja) * 2006-05-09 2007-11-22 Aruze Corp ゲーム装置、及び、ゲームサーバ
KR20150103199A (ko) * 2013-01-29 2015-09-09 소니 컴퓨터 엔터테인먼트 아메리카 엘엘씨 네트워크 멀티플레이어 게임의 레이턴시를 숨기기 위한 방법 및 장치
JP6255526B1 (ja) * 2017-06-14 2017-12-27 株式会社 ディー・エヌ・エー 情報処理装置、ゲームプログラム、及び、情報処理方法

Similar Documents

Publication Publication Date Title
US8496531B2 (en) Interactive hybrid asynchronous computer game infrastructure with dynamic difficulty adjustment
US8585505B2 (en) Inter-game interactive hybrid asynchronous computer game infrastructure
JP3699660B2 (ja) ゲーム装置及びネットワークゲームシステム
US10994207B2 (en) Massively single-playing online game
KR101707639B1 (ko) 네트워크 멀티플레이어 게임의 레이턴시를 숨기기 위한 방법 및 장치
JP4040050B2 (ja) プログラム、キャラクタ制御方法、ならびに、キャラクタ制御装置
EP1704903B1 (en) Message output device, message control method, program, and information recording medium
US20120009997A1 (en) Interactive asynchronous game offline play architecture
US20120122552A1 (en) Interactive asynchronous game bucketing facility
US9675885B2 (en) Game system, a controlling method of the game system thereof, and a non-transitory computer-readable storage medium thereof
JP5555454B2 (ja) ゲーム装置、ゲームサーバ、ゲームプログラム
KR20090119923A (ko) 네트워크 게임시스템, 서버, 부정행위 방지방법, 부정행위 검출방법 및 정보기록매체
WO2013163205A1 (en) Systems and methods that enable a spectator's experience for online active games
JP2007075607A (ja) ガードコンディションシステム
WO2022062146A1 (zh) 游戏副本的展示方法及装置、存储介质
JP2022514449A (ja) ダイレクトゲームプレイを起動するための動的インタフェース
KR101629378B1 (ko) 엠엠오알피지에서의 리플레이 동영상 제공 시스템 및 그 방법
KR20220157938A (ko) 멀티플레이어 온라인 전투 프로그램에서 메시지를 송신하기 위한 방법 및 장치, 단말 및 매체
KR102318171B1 (ko) 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버
KR102365155B1 (ko) 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버
JP6996068B2 (ja) ゲームプログラム、およびゲームシステム
US11872485B2 (en) Server device, method for controlling the same, computer-readable recording medium and game system
KR102374592B1 (ko) 온라인 게임상에서의 캐릭터 애니메이션을 구현하는 방법 및 이를 위한 서버
JP2002282533A (ja) ゲームプログラム、ゲームプログラムを記録した記録媒体、ロールプレイングゲームにおける物語展開処理方法及びゲーム装置
EP1082984A2 (en) Entertainment system which correlates a role-playing game and a simulation game

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant