KR20230032519A - 목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법 및 컴퓨터 장치 - Google Patents

목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법 및 컴퓨터 장치 Download PDF

Info

Publication number
KR20230032519A
KR20230032519A KR1020210115453A KR20210115453A KR20230032519A KR 20230032519 A KR20230032519 A KR 20230032519A KR 1020210115453 A KR1020210115453 A KR 1020210115453A KR 20210115453 A KR20210115453 A KR 20210115453A KR 20230032519 A KR20230032519 A KR 20230032519A
Authority
KR
South Korea
Prior art keywords
character
information
motion
reinforcement learning
learning model
Prior art date
Application number
KR1020210115453A
Other languages
English (en)
Other versions
KR102580138B1 (ko
Inventor
이윤상
이정민
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020210115453A priority Critical patent/KR102580138B1/ko
Publication of KR20230032519A publication Critical patent/KR20230032519A/ko
Application granted granted Critical
Publication of KR102580138B1 publication Critical patent/KR102580138B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법은 컴퓨터 장치가 시점 t에서의 캐릭터의 상태 정보를 획득하는 단계, 상기 컴퓨터 장치가 상기 상태 정보를 사전에 구축한 강화학습 모델에 입력하여 액션 정보를 생성하는 단계 및 상기 컴퓨터 장치가 상기 시점 t에서의 상기 액션 정보를 기준으로 상기 캐릭터의 동작을 결정하는 단계를 포함한다. 상기 상태 정보는 상기 캐릭터의 자세 정보 및 상기 캐릭터가 이동하고자 하는 목표 위치를 포함하고, 상기 컴퓨터 장치는 상기 상태 정보를 이용하여 강화 학습의 보상을 최대화하는 액션 정보를 생성한다.

Description

목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법 및 컴퓨터 장치{CHARACTER MOTION GENERATING METHOD FOR MOVING TO TARGET POSITION AND COMPUTER APPARATUS}
이하 설명하는 기술은 강화학습에 기반하여 가상의 캐릭터 동작을 제어하는 기법이다.
게임과 같은 디지털 콘텐츠에서 캐릭터는 주변 환경의 변화에 반응하여 자연스러운 동작을 하는 것이 중요하다. 캐릭터 동작 제어를 위하여 주변 환경과 상호작용하는 물리법칙이 적용된 시뮬레이션에 대한 연구가 진행되고 있다. 그 방법론으로 유한 상태 기계 기반 제어기(SIMBICON), 모션 캡쳐 데이터를 특정 규칙에 따라 변형하는 방식 등이 있다. 또한, 최근 주목받는 심층 강화학습 기반 연구는 다양한 캐릭터들에 대한 제어 방법을 연구하고 있다.
미국등록특허 US10,888,785호
모션 캡쳐 클립 없이 심층 강화학습으로 학습된 모델은 캐릭터의 동작이 부자연스러운 문제점이 있었다.
이하 설명하는 기술은 참조 모션을 구축하고, 참조 모션을 이용한 심층 강화학습을 이용하여 캐릭터 동작을 제어하는 기법을 제공하고자 한다.
목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법은 컴퓨터 장치가 시점 t에서의 캐릭터의 상태 정보를 획득하는 단계, 상기 컴퓨터 장치가 상기 상태 정보를 사전에 구축한 강화학습 모델에 입력하여 액션 정보를 생성하는 단계 및 상기 컴퓨터 장치가 상기 시점 t에서의 상기 액션 정보를 기준으로 상기 캐릭터의 동작을 결정하는 단계를 포함한다. 상기 상태 정보는 상기 캐릭터의 자세 정보 및 상기 캐릭터가 이동하고자 하는 목표 위치를 포함하고, 상기 액션 정보는 상기 캐릭터의 관절들의 각도 정보를 포함하고, 상기 강화학습 모델은 강화 학습의 보상이 최대가 되도록 사전에 학습된 모델이다.
캐릭터의 동작 정보를 생성하는 컴퓨터 장치는 시점 t에서의 캐릭터의 자세 정보를 입력받는 입력장치, 목표 위치로 이동하기 위한 캐릭터의 상태 정보를 기준으로 액션 정보를 출력하는 강화학습 모델을 저장하는 저장장치 및 상기 자세 정보 및 상기 캐릭터의 목표 위치를 포함하는 현재 상태 정보를 상기 강화학습 모델에 입력하여 액션 정보를 출력하고, 상기 출력된 액션 정보를 기준으로 상기 시점 t에서 상기 캐릭터의 동작을 위한 제어 정보를 생성하는 연산장치를 포함한다. 상기 액션 정보는 상기 캐릭터의 관절들의 각도 정보를 포함하고, 상기 강화학습 모델은 강화 학습의 보상이 최대가 되도록 사전에 학습된 모델이다.
이하 설명하는 기술은 1족 캐릭터의 특징을 구현한 모델을 사용하여 캐릭터의 자연스러운 동작 제어를 제공한다.
도 1은 캐릭터의 동작 정보를 출력하는 시스템에 대한 예이다.
도 2는 럭소 캐릭터의 예이다.
도 3은 컴퓨터 장치가 캐릭터의 동작 제어 정보를 산출하는 과정에 대한 예이다.
도 4는 보행 동작을 산출하는 컴퓨터 장치에 대한 예이다.
이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설명된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
이하 설명하는 기술은 컴퓨터 장치를 이용하여 가상공간에서 특정 객체의 동작 정보를 출력하는 기술이다. 이하 설명하는 기술은 가상공간에서 특정 객체의 동작을 제어하는 정보를 생성하는 기술이기도 하다.
이하 컴퓨터 장치가 동작을 제어하는 대상을 캐릭터(character)라고 명명한다. 캐릭터는 가상 공간 또는 실제 공간에서의 객체일 수 있다. 가상 공간의 캐릭터는 게임, 애니메이션 등에 등장하는 사람, 동물, 로봇 등과 같은 객체를 포함한다. 나아가, 실제 공간에서의 캐릭터는 로봇, 이동 수단, 보행 기계 등과 같은 객체를 포함할 수 있다.
컴퓨터 장치는 강화학습모델을 이용하여 직전 보행 동작을 기준으로 현재 시점에서 적절한 보행 동작을 출력한다. 컴퓨터 장치는 사전에 마련된 강화학습모델을 이용하여 입력 데이터를 기준으로 캐릭터의 동작 정보를 출력한다. 컴퓨터 장치는 데이터 처리가 가능한 다양한 장치로 구현될 수 있다. 예컨대, 컴퓨터 장치는 PC, 네트워크상의 서버, 스마트 기기, 전용 프로그램이 임베딩된 칩셋 등으로 구현될 수 있다.
이하 컴퓨터 장치는 가상의 캐릭터에 대한 동작 정보를 제공한다고 가정한다. 이하 설명하는 기술의 특정 객체는 가상의 객체로서 탄성력이 있는 하나의 다리로 보행(이동) 가능한 객체(1족 캐릭터)이다. 연구자는 픽사 애니메이션 스튜디오의 마스코트 캐릭터 럭소(Luxo)를 대상으로 모델을 구축하였다.
도 1은 캐릭터의 동작 정보를 출력하는 시스템(100)에 대한 예이다. 도 1에서 컴퓨터 장치(130, 140)가 동작 정보를 생성한다. 도 1에서 컴퓨터 장치는 서버(130) 및 컴퓨터 단말(140) 형태로 도시하였다. 도 1은 럭소와 같은 1족 보행하는 캐릭터를 예로 도시하였다.
캐릭터(C)는 현재 동작에 대한 동작 정보를 생성한다. 동작 정보는 캐릭터의 자세 정보(관절 각도, 높이 등)를 포함할 수 있다. 캐릭터(C)는 가상의 객체이므로, 캐릭터의 동작 정보는 캐릭터가 출력되거나 캐릭터의 동작 정보 생성하는 장치로부터 전달된다. 따라서, 컴퓨터 장치(130, 140) 또는 사용자 단말(110)이 캐릭터(C)의 동작 정보를 생성한다.
서버(130)는 캐릭터(C)의 동작 정보를 수신한다. 서버(130)는 사용자 단말(110)로부터 현재 동작 정보를 수신할 수 있다. 서버(130)는 동작 정보, 캐릭터의 현재 위치 및 목표 위치 등을 이용하여 상태 정보를 생성할 수 있다. 또는 서버(130)는 사용자 단말(110)로부터 상태 정보를 수신할 수도 있다. 서버(130)는 사전에 구축한 강화 학습 모델을 이용하여 상태 정보를 기준으로 목표 위치 도달을 위한 액션(action) 정보를 생성한다. 서버(130)는 액션 정보에 기반하여 캐릭터(C)의 동작을 나타내는 동작 데이터를 생성할 수 있다. 서버(130)는 동작 데이터를 사용자 단말(110)에 전송할 수 있다. 단말(10)은 가상 공간에서 현재 시점의 로봇 동작을 출력할 수 있다.
컴퓨터 단말(140)은 캐릭터(C)의 동작 정보를 획득한다. 이 경우 캐릭터(C)는 컴퓨터 단말(140)에서 일정한 동작을 하는 객체일 수 있다. 컴퓨터 단말(140)은 동작 정보, 캐릭터의 현재 위치 및 목표 위치 등을 이용하여 상태 정보를 생성할 수 있다. 컴퓨터 단말(140)은 사전에 구축한 강화 학습 모델을 이용하여 상태 정보를 기준으로 목표 위치 도달을 위한 액션 정보를 생성한다. 컴퓨터 단말(140)은 액션 정보에 기반하여 캐릭터(C)의 동작을 나타내는 동작 데이터를 생성할 수 있다. 컴퓨터 단말(140)은 가상 공간에서 현재 시점의 로봇 동작을 출력할 수 있다.
컴퓨터 장치(130, 140)는 캐릭터의 보행 동작 정보를 제공하는 서비스를 제공한다. 따라서, 컴퓨터 장치는 서비스 장치라고 명명할 수도 있다.
강화학습 모델을 이용하여 캐릭터의 동작을 제어하는 과정을 설명한다. 연구자는 럭소 캐릭터를 다음과 같이 설정하였다. 도 2는 럭소 캐릭터의 예이다. 럭소의 몸체는 머리(4kg), 윗팔(8kg), 아랫팔(16kg) 및 발판(2kg)으로 구성(전체 30kg)된다. 럭소가 곧게 폈을 때의 높이는 1.5m이다. 럭소의 몸체 구성은 각 부분을 잇는 세 개의 관절을 갖는다. 제1 관절과 제3 관절은 x축과 z축으로 회전이 가능하고, 제2 관절은 x축으로 회전 가능하므로 럭소는 모두 다섯 개의 자유도를 갖는다. 럭소 캐릭터는 이 관절들을 이용하여 머리와 발판을 위, 아래 및/또는 양옆으로 향할 수 있다.
연구자는 심층 강화학습을 위하여 참조 모션을 사전에 생성하였다. 참조 모션 생성에 대하여 설명한다.
시뮬레이션 공간의 수직축을 y축이라고 가정한다. 다리가 하나인 럭소는 점프동작을 통해 xz평면 상에서 이동한다. 연구자는 럭소가 짧은 점프를 반복하여 목적 위치에 도달하는 것으로 목표로 한다. 연구자는 점프 동작을 원활히 학습시키기 위해 참조 점프 모션을 만들어 이용하였다.
한 번의 점프동작은 1초의 페이즈(phase) 동안 0.4초간 균형을 잡고(hold), 0.2초간 몸을 편 후(stretch), 0.4초간 다시 몸을 숙이는(fold) 동작으로 구성된다. 아래 표 1은 럭소의 점프 동작에서의 관절의 각도 값을 나타낸다. head는 제1 관절, arm은 제2 관절, base는 제3 관절을 의미한다.
Figure pat00001
연구자는 점프 동작들의 선형 보간(linear interpolation)을 하여 주어진 페이즈 값에 상응하는 내부관절의 다섯 개의 자유도에 따른 값들을 확인하였다.
연구자는 선형 보간을 통해 마련한 참조 동작을 이용하여 강화 학습모델을 구축하였다. 강화 학습모델에 대하여 설명한다.
강화 학습의 문제는 마르코프 결정과정(Markov Decision Process, MDP)으로표현된다. 강화 학습에서 에이전트(agent)는 관찰되는 환경 상태 st에서 각 강화 학습 단계마다 특정한 액션(action) at를 선택한다. 특정 액션 at를 수행한 후, 에이전트는 환경으로부터 보상 rt = r(st, at)을 받는다. t는 특정 시점을 말한다.
강화학습에서는 미리 정의된 입출력 쌍이 존재하지 않기 때문에 MDP로 공식화된 문제공간을 탐색하며 아래 수학식 1과 같이 한 에피소드 내에서 최적의 누적보상을 받는 행동 정책 πθ *(a|s)를 학습한다.
Figure pat00002
물리 시뮬레이션이 이루어지고 있는 환경 안에서 st,at,rt은 각각시뮬레이션시간 t에서의 현재 상태, 행동 및 그에 따른 보상을 의미한다. p(st+1|st,at)는 주어진 상태와 행동에 따라 다음 상태값을 결정하는 한 단계의 물리 시뮬레이션을 의미한다. γ ∈ {0,1}은 보상에 대한 할인율을 의미한다.
연구자는 최적의 θ*를 찾기 위하여 PPO(proximal policy optimization)를 이용하였다. PPO는 MDP 문제를 푸는 방법들 중 하나로, 환경과 에이전트가 환경으로부터 받아 낸 데이터를 저장해 샘플링하여 정책 네트워크(policy network)와 가치 네트워크(value network)를 지속적으로 업데이트 한다.
가치 네트워크는 TD(γ) 함수가 반환하는 값들을 통해 업데이트 되고, 일반화된 어드밴티지 추정, 즉 GAE(λ) 방식을 통해 보상의 손실과 분산을 줄여 안정적으로 에이전트를 학습시킨다.
정책 네트워크의 입력과 출력은 각각 상태와 행동이다. 입력인 관찰값s는 발판의 xz회전(2), 땅에서 발판까지의 수직 높이(1), 내부 관절의 각도(5), 속도(11), 목표 위치(2), 페이즈(2)까지 총 23개의 값으로 구성되었다. 괄호의 숫자는 값의 개수를 의미한다.
xz 회전(2)은 발판이 x축과 z축을 기준으로 얼마나 기울어져 있는지를 나타내며 이는 럭소가 균형을 잡고 서 있는지에 대한 간접적인 지표이기도 하다. xz회전과 발판의속도(6), 목표위치는 모두 현재 럭소의 위치에서 수평 발판 좌표계를 기준으로 구한 값들이다. 목표위치와 페이즈를 제외한 모든 관찰값들은 현재 시뮬레이션되고 있는 럭소의 상태로부터 가져온다. 수평 발판 좌표계는 모델의 발판이 xz 평면에 수평이고 y축 높이가 0이라고 가정한 발판의 지역 좌표계이다.
참조용 모션이 주어지는 모방학습에서는 주어진 페이즈에 대해 해당하는 참조 포즈를 모방하는 적절한 행동을 선택하도록 학습한다. 페이즈 θ는 한 번의 참조 점프 동작 사이클(1초) 동안 0에서 시작하여 2π까지의 값을 갖는다. 페이즈의 연속적인 변화가 연속적인 상태 입력이 되도록 sin(θ)과 cos(θ), 두 개의 주기 함수로 계산된 값을 관찰값으로 하였다. 이렇게 구해진 23개의 관찰값들을 y축에 대한 발판의 수직 높이를 제외하고 모두 [-1,1] 사이의 값으로 정규화하였다.
네트워크의 출력 a는 럭소가 특정 관찰값이 주어졌을 때 확률적으로 취하게 되는 행동이다. 출력 a는 PD 컨트롤(Proportional-Derivativecontrol)의 타겟 포즈에 해당하는 럭소 내부 관절의 각도(5)이다. 해당 값(radian)은 범위에 제한이 없어 어떤 값이든 가질 수 있지만 처음에 출력되는 값들이 1보다 약간 작거나 큰 값들이기 때문에 학습이 진행되면서 적절한 크기로 조정된다.
럭소의 강화학습 모델은 3가지 조건 아래 양수의 보상을 주는 방식이다. 학습의 효율성을 위해 캐릭터가 넘어진다면 더 이상 에피소드를 진행하지 않고 종료하였다. 이하 강화학습 모델에서 사용한 3가지 보상에 대하여 설명한다.
첫 번째 보상 r imi은 시뮬레이션 동작이 참조모션과 비슷하고 균형을 잘 잡고 있을수록 높은 보상(최대1)값을 가진다. 첫 번째 보상 r imi은 아래 수학식 2와 같이 표현할 수 있다.
Figure pat00003
Figure pat00004
는 선형 보간법으로 생성된 참조용 모션
Figure pat00005
과 시뮬레이션된 모션
Figure pat00006
의 각 자유도의 각도 차이이다. i는 자유도의 인덱스이다. x0 및 z0는 발판의 회전값이다. 수학식 2는 참조용 모션과 시뮬레이션된 모션의 자유도들의 각도 차이의 합 및 발판의 바닥과의 각도를 합산한 값이 작을 수록 높은 보상을 준다. 즉, 시뮬레이션된 모션이 참조 모션과 유사할 수록, 또한 발판이 바닥과 평형에 가까울 수록(발판의 회전값이 0에 가까울 수록) r imi은 높은 값이 된다.
두 번째 보상 rupright는 아래 수학식 3과 같이 수평 발판 좌표계에 대한 시뮬레이션 동작의 xz 평면 상의 머리 위치 h가 좌표계에 대한 참조 모션의 xz 평면 상의 머리 위치 hr과 같을수록 높은 보상을 준다.
Figure pat00007
세 번째 보상 robj는 목표 달성량을 나타낸다. 럭소의 목표는 반경 안에서 정해진 xz 평면 위의 목표 지점을 향해 뛰어가는 것이다. 따라서, 아래 수학식 4와 같이 robj는 목표 위치 goalx,z와 현재 발판 위치 posx,z의 차이가 작을수록 높은 보상을 준다(최대 1).
Figure pat00008
최종적인 보상값 r은 아래 수학식 5와 같다. 보상값 r은 강화학습 모델이 하나의 스텝에서 받을 수 있는 보상값이며, 전술한 3개의 보상값에 대한 가중합으로 표현될 수 있다.
Figure pat00009
연구자가 설정한 럭소 모델에 대해서는 가중치 wimi, wupright, wobj에 대하여 각각 20, 1 및 40으로 설정했을 때 가장 자연스러운 결과를 보였다.
연구자는 stable baselines 라이브러리의 PPO2 모듈을 이용하였다. PPO2는 PPO1과 달리 여러 개의 환경을 생성하여 동시에 학습이 가능하다. 물론, 최적화를 위한 다른 알고리즘을 사용하여 강화학습 모델을 구현할 수도 있을 것이다.
연구자는 학습 과정에서 γ=0.99, 학습율 = 0.00025, 클립 범위(clip range) = 0.2로 설정하여 stable baselines 라이브러리의 기본값을 사용하였다.
연구자는 네트워크가 업데이트 될 때마다 샘플링되는 미니배치(minibatch)의 개수는 128개로 증량하였다. 모든 실험은 16개의 CPU로 16개의 럭소 환경들을 만들어 계산하였으며 시뮬레이션은 0.001초마다 진행되고 0.02초마다 럭소가 목표하는 다음 관절값이 출력을 통해 결정하였다. 럭소의 에피소드는 다음과 같이 진행하였다. 현재 위치를 기준으로 반경 5m인 반원을 그려 그 경계의 랜덤한 위치 하나를 선택하고, 럭소 발판의 중심이 목표 위치의 0.5m 근처까지 도달한다면 그 위치를 기준으로 반경 5m인 반원을 그려 새로운 목표위치를 설정하여 시뮬레이션을 하였다. 만약, 럭소가 목표 위치의 0.5m 근처까지 도달하지 못하고 넘어지면 곧바로 에피소드를 종료하는 기법을 사용하였다.
도 3은 컴퓨터 장치가 캐릭터의 동작 제어 정보를 산출하는 과정(200)에 대한 예이다. 컴퓨터 장치는 강화 학습에 따라 동작을 결정하는 에이전트에 해당한다.
강화학습 모델은 전술한 바와 같이 누적되는 보상을 최대화하기 위한 액션을 출력하는 정책 모델에 해당한다. 최적의 정책을 결정하기 위한 강화학습 모델은 사전에 학습되었다고 전제한다. 도 3은 정책 네트워크(policy network)와 가치 네트워크(value network)로 구성된 강화학습 모델을 도시하였다. 강화학습 모델은 DQN(Deep Q-Networks)과 같은 모델을 사용할 수도 있다.
에이전트는 캐릭터에 대하여 t 시점에서의 상태 st를 획득한다(210). 상태 st는 t 시점에서의 캐릭터 자세 정보 및 목표 위치를 포함할 수 있다. 상태 st는 발판의 xz회전(2), 땅에서 발판까지의 수직 높이(1), 내부 관절의 각도(5), 속도(11), 목표 위치(2), 페이즈(2)를 포함할 수 있다.
컴퓨터 장치는 환경이 주는 보상 rt를 결정하고, 강화학습 모델을 이용하여 t 시점에서의 액션 at를 생성할 수 있다(220).
컴퓨터 장치는 결정된 액션 at를 캐릭터가 출력되는 장치 또는 캐릭터의 자세 정보를 필요로 하는 장치에 전달하여 t 시점에서의 동작을 수행하게 한다(230). 캐릭터는 일정 시간에 일정한 보행 동작으로 목표 위치로 이동하게 된다.
도 4는 보행 동작을 산출하는 컴퓨터 장치(300)에 대한 예이다. 컴퓨터 장치(300)는 도 1의 컴퓨터 장치(130 또는 140)에 해당하는 장치이다. 컴퓨터 장치(300)는 전술한 강화 학습을 이용하여 캐릭터의 현재 상태를 기준으로 목표 위치에 이르기 위한 보행 동작을 결정할 수 있다. 컴퓨터 장치(300)는 물리적으로 다양한 형태로 구현될 수 있다. 예컨대, 컴퓨터 장치(300)는 PC, 스마트 기기, 네트워크상의 서버, 데이터 처리 전용 칩셋 등의 형태를 가질 수 있다.
컴퓨터 장치(300)는 저장장치(310), 메모리(320), 연산장치(330), 인터페이스 장치(340), 통신장치(350) 및 출력장치(360)를 포함할 수 있다.
저장장치(310)는 입력되는 특정 시점에 대한 캐릭터의 자세 정보를 저장할 수 있다.
또는, 저장장치(310)는 특정 시점에 대한 캐릭터의 상태 정보를 저장할 수도 있다. 상태 정보는 특정 시점의 자세 정보와 목표 위치를 포함할 수 있다.
저장장치(310)는 캐릭터의 상태 정보를 기준으로 액션을 출력하는 강화학습 모델을 저장할 수 있다.
나아가 저장장치(310)는 데이터 처리에 필요한 프로그램 내지 소스 코드 등을 저장할 수 있다.
저장장치(310)는 특정 시점에서 결정된 캐릭터의 액션 내지 보행 동작 데이터를 저장할 수 있다.
메모리(320)는 컴퓨터 장치(300)가 캐릭터의 보행 동작을 결정하는 과정에서 생성되는 데이터 및 정보 등을 저장할 수 있다.
인터페이스 장치(340)는 외부로부터 일정한 명령 및 데이터를 입력받는 장치이다. 인터페이스 장치(340)는 입력 장치 또는 외부 저장장치로부터 시점 t의 캐릭터의 자세 정보를 입력받을 수 있다. 자세 정보는 캐릭터의 자세 내지 동작을 정의하는 관절의 각도 및 특정 부위의 위치 등을 포함할 수 있다. 인터페이스 장치(340)는 시점 t에서 캐릭터의 목표 위치를 입력받을 수도 있다.
인터페이스 장치(340)는 컴퓨터 장치(300) 내지 연산 장치(330)가 결정한 현재 시점의 캐릭터 액션(동작 데이터)을 캐릭터가 동작하는 장치에 전달할 수 있다.
통신장치(350)는 유선 또는 무선 네트워크를 통해 일정한 정보를 수신하고 전송하는 구성을 의미한다. 통신장치(350)는 외부 객체로부터 시점 t의 캐릭터의 자세 정보를 수신할 수 있다. 통신장치(350)는 시점 t에서 캐릭터의 목표 위치를 입력받을 수도 있다.
통신장치(350)는 현재 시점의 캐릭터 액션 내지 보행 동작 데이터를 외부 객체(캐릭터 동작을 출력하는 장치)로 송신할 수 있다.
통신장치(350) 내지 인터페이스 장치(340)는 외부로부터 일정한 데이터 내지 명령을 입출력하는 장치이다. 따라서, 통신장치(350) 내지 인터페이스 장치(340)를 포괄하여 입출력장치라고 명명할 수 있다. 입력만을 고려하여 통신장치(350) 내지 인터페이스 장치(340)를 입력 장치라고 할 수도 있다.
출력장치(360)는 일정한 정보를 출력하는 장치이다. 출력장치(360)는 데이터 처리 과정에 필요한 인터페이스를 출력할 수 있다. 출력장치(360)는 현재 시점의 캐릭터 액션 내지 보행 동작 데이터를 기준으로 캐릭터의 보행 동작을 화면에 출력할 수도 있다.
연산 장치(330)는 현재 시점의 캐릭터 자세 정보와 목표 위치를 포함하는 상태 정보를 강화학습 모델에 입력하여 액션을 출력하게 한다. 액션은 캐릭터의 움직임을 정의하는 관절들의 목표 각도를 포함한다.
연산 장치(330)는 가상의 캐릭터의 동작 제어를 위한 제어 정보를 생성한다고 할 수 있다. 제어 정보는 관절들의 각도 정보 또는 각 관절의 각도 제어를 위한 제어 명령 형태일 수 있다.
연산 장치(330)는 데이터를 처리하고, 일정한 연산을 처리하는 프로세서, AP, 프로그램이 임베디드된 칩과 같은 장치일 수 있다.
컴퓨터 장치(300)는 t 후의 시점에서도 일정한 간격으로 해당 시점에서의 캐릭터 동작을 결정할 수 있다. 컴퓨터 장치(300)는 시점을 달리하면서 반복적으로 캐릭터의 동작을 결정하여 자연스러운 캐릭터 애니메이션을 생성할 수 있다.
또한, 상술한 바와 같은 강화학습 기반 캐릭터 동작 제어 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램(또는 어플리케이션)으로 구현될 수 있다. 상기 프로그램은 일시적 또는 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM (read-only memory), PROM (programmable read only memory), EPROM(Erasable PROM, EPROM) 또는 EEPROM(Electrically EPROM) 또는 플래시 메모리 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
일시적 판독 가능 매체는 스태틱 램(Static RAM,SRAM), 다이내믹 램(Dynamic RAM,DRAM), 싱크로너스 디램 (Synchronous DRAM,SDRAM), 2배속 SDRAM(Double Data Rate SDRAM,DDR SDRAM), 증강형 SDRAM(Enhanced SDRAM,ESDRAM), 동기화 DRAM(Synclink DRAM,SLDRAM) 및 직접 램버스 램(Direct Rambus RAM,DRRAM) 과 같은 다양한 RAM을 의미한다.
본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.

Claims (8)

  1. 컴퓨터 장치가 시점 t에서의 캐릭터의 상태 정보를 획득하는 단계;
    상기 컴퓨터 장치가 상기 상태 정보를 사전에 구축한 강화학습 모델에 입력하여 액션 정보를 생성하는 단계; 및
    상기 컴퓨터 장치가 상기 시점 t에서의 상기 액션 정보를 기준으로 상기 캐릭터의 동작을 결정하는 단계를 포함하되,
    상기 상태 정보는 상기 캐릭터의 자세 정보 및 상기 캐릭터가 이동하고자 하는 목표 위치를 포함하고, 상기 액션 정보는 상기 캐릭터의 관절들의 각도 정보를 포함하고, 상기 강화학습 모델은 강화 학습의 보상이 최대가 되도록 사전에 학습된 모델인 목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법.
  2. 제1항에 있어서,
    상기 캐릭터는 발판을 갖는 1족 캐릭터이고,
    상기 자세 정보는 발판의 회전 상태, 바닥에서 발판까지의 수직 높이, 내부 관절의 각도 및 속도를 포함하는 목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법.
  3. 제1항에 있어서,
    상기 상태 정보는 페이즈(phase)를 더 포함하고,
    상기 페이즈는 상기 캐릭터의 이동 동작을 구분하는 단위 동작 구간을 의미하며, 상기 페이즈는 상기 캐릭터의 관절들의 각도로 정의되는 목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법.
  4. 제1항에 있어서,
    상기 보상은 참조 모션과 상기 강화학습 모델이 출력하는 캐릭터의 시뮬레이션 동작의 차이의 합과 상기 캐릭터의 발판과 회전값의 합이 작을수록 높은 값을 갖는 제1 보상값, 상기 참조 모션에서의 캐릭터 머리 위치와 상기 강화학습 모델이 출력하는 상기 캐릭터의 시뮬레이션 동작에 따른 머리 위치의 차이가 작을 수록 높은 값을 갖는 제2 보상값 및 상기 목표 위치와 상기 강화학습 모델이 출력하는 상기 캐릭터의 시뮬레이션 동작에 따른 캐릭터의 위치의 차이가 작을 수록 높은 값을 갖는 제3 보상값을 포함하는 목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법.
  5. 시점 t에서의 캐릭터의 자세 정보를 입력받는 입력장치;
    목표 위치로 이동하기 위한 캐릭터의 상태 정보를 기준으로 액션 정보를 출력하는 강화학습 모델을 저장하는 저장장치; 및
    상기 자세 정보 및 상기 캐릭터의 목표 위치를 포함하는 현재 상태 정보를 상기 강화학습 모델에 입력하여 액션 정보를 출력하고, 상기 출력된 액션 정보를 기준으로 상기 시점 t에서 상기 캐릭터의 동작을 위한 제어 정보를 생성하는 연산장치를 포함하되,
    상기 액션 정보는 상기 캐릭터의 관절들의 각도 정보를 포함하고, 상기 강화학습 모델은 강화 학습의 보상이 최대가 되도록 사전에 학습된 모델인 캐릭터의 동작 정보를 생성하는 컴퓨터 장치.
  6. 제5항에 있어서,
    상기 캐릭터는 발판을 갖는 1족 캐릭터이고,
    상기 자세 정보는 발판의 회전 상태, 바닥에서 발판까지의 수직 높이, 내부 관절의 각도 및 속도를 포함하는 캐릭터의 동작 정보를 생성하는 컴퓨터 장치.
  7. 제5항에 있어서,
    상기 상태 정보는 페이즈(phase)를 더 포함하고,
    상기 페이즈는 상기 캐릭터의 이동 동작을 구분하는 단위 동작 구간을 의미하며, 상기 페이즈는 상기 캐릭터의 관절들의 각도로 정의되는 캐릭터의 동작 정보를 생성하는 컴퓨터 장치.
  8. 제5항에 있어서,
    상기 보상은 참조 모션과 상기 강화학습 모델이 출력하는 캐릭터의 시뮬레이션 동작의 차이의 합과 상기 캐릭터의 발판과 회전값의 합이 작을수록 높은 값을 갖는 제1 보상값, 상기 참조 모션에서의 캐릭터 머리 위치와 상기 강화학습 모델이 출력하는 상기 캐릭터의 시뮬레이션 동작에 따른 머리 위치의 차이가 작을 수록 높은 값을 갖는 제2 보상값 및 상기 목표 위치와 상기 강화학습 모델이 출력하는 상기 캐릭터의 시뮬레이션 동작에 따른 캐릭터의 위치의 차이가 작을 수록 높은 값을 갖는 제3 보상값을 포함하는 캐릭터의 동작 정보를 생성하는 컴퓨터 장치.
KR1020210115453A 2021-08-31 2021-08-31 목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법 및 컴퓨터 장치 KR102580138B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210115453A KR102580138B1 (ko) 2021-08-31 2021-08-31 목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법 및 컴퓨터 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210115453A KR102580138B1 (ko) 2021-08-31 2021-08-31 목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법 및 컴퓨터 장치

Publications (2)

Publication Number Publication Date
KR20230032519A true KR20230032519A (ko) 2023-03-07
KR102580138B1 KR102580138B1 (ko) 2023-09-18

Family

ID=85513474

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210115453A KR102580138B1 (ko) 2021-08-31 2021-08-31 목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법 및 컴퓨터 장치

Country Status (1)

Country Link
KR (1) KR102580138B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117398690A (zh) * 2023-10-20 2024-01-16 北京畅游悦想互动软件技术有限公司 一种行程生成方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10888785B2 (en) 2018-06-18 2021-01-12 Unity IPR ApS Method and system for real-time animation generation using machine learning

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10888785B2 (en) 2018-06-18 2021-01-12 Unity IPR ApS Method and system for real-time animation generation using machine learning

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Peng, Xue Bin, et al. "Deepmimic: Example-guided deep reinforcement learning of physics-based character skills." ACM Transactions On Graphics (TOG) 37.4 (2018): 1-14. (2018.07.30.)* *
Yamane, Katsu, Yuka Ariki, and Jessica Hodgins. "Animating non-humanoid characters with human motion data." Proceedings of the 2010 ACM SIGGRAPH/Eurographics Symposium on Computer Animation. 2010. (2010.07.02.)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117398690A (zh) * 2023-10-20 2024-01-16 北京畅游悦想互动软件技术有限公司 一种行程生成方法、装置、设备及介质
CN117398690B (zh) * 2023-10-20 2024-04-09 北京畅游悦想互动软件技术有限公司 一种行程生成方法、装置、设备及介质

Also Published As

Publication number Publication date
KR102580138B1 (ko) 2023-09-18

Similar Documents

Publication Publication Date Title
JP7061238B2 (ja) 異種のターゲットアニメーションデータを使用してキャラクタをトレーニングする強化学習
Aristidou et al. Inverse kinematics techniques in computer graphics: A survey
Kenwright Inverse kinematics–cyclic coordinate descent (ccd)
US7864181B1 (en) Shape friction: shape preservation of simulated objects in computer animation
Kenwright Synthesizing Balancing Character Motions.
US11104001B2 (en) Motion transfer of highly dimensional movements to lower dimensional robot movements
JP6321905B2 (ja) 関節システムの制御方法、記憶媒体、制御システム
CN107875633B (zh) 改善模拟中的模型的运动动画的计算机实现方法及系统
US20230334744A1 (en) Method and apparatus for generating walk animation of virtual role, device and storage medium
US20180361579A1 (en) Motion model synthesizer methods and systems
US10657697B2 (en) Method for the computer animation of captured images
KR102580138B1 (ko) 목표 위치로 이동하는 캐릭터의 동작 정보 생성 방법 및 컴퓨터 장치
US20190139288A1 (en) Dynamic motion simulation methods and systems
US20140285513A1 (en) Animation of a virtual object
Lee et al. Motion fields for interactive character locomotion
Alvarado et al. Generating Upper‐Body Motion for Real‐Time Characters Making their Way through Dynamic Environments
Abdolmaleki et al. Omnidirectional walking with a compliant inverted pendulum model
KR102611126B1 (ko) 강화학습모델을 이용한 보행 동작 정보 출력 방법 및 서비스 장치
JP2022013786A (ja) ロボットまたは仮想アバターなどの対象物のスタイル設定された運動を生成するための方法および制御装置
Ribeiro et al. Expressive Inverse Kinematics Solving in Real-time for Virtual and Robotic Interactive Characters
Cadevall Soto Procedural generation of animations with inverse kinematics
US20230196678A1 (en) Transforming three-dimensional model by using correlation to template model with template skeleton
US20160059140A1 (en) Walking Machines
Kavafoglu et al. Robust standing control with posture optimization
Viveros Barrera et al. Inverse Kinematics Using Arduino and Unity for People with Motor Skill Limitations

Legal Events

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