KR102574247B1 - 실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법 - Google Patents

실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102574247B1
KR102574247B1 KR1020207005339A KR20207005339A KR102574247B1 KR 102574247 B1 KR102574247 B1 KR 102574247B1 KR 1020207005339 A KR1020207005339 A KR 1020207005339A KR 20207005339 A KR20207005339 A KR 20207005339A KR 102574247 B1 KR102574247 B1 KR 102574247B1
Authority
KR
South Korea
Prior art keywords
animation
character
real
user
data
Prior art date
Application number
KR1020207005339A
Other languages
English (en)
Other versions
KR20200085263A (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 KR20200085263A publication Critical patent/KR20200085263A/ko
Application granted granted Critical
Publication of KR102574247B1 publication Critical patent/KR102574247B1/ko

Links

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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2135Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • G06V10/763Non-hierarchical techniques, e.g. based on statistics of modelling distributions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • H04L65/4053Arrangements for multi-party communication, e.g. for conferences without floor control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Remote Sensing (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Architecture (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Algebra (AREA)
  • Computer Networks & Wireless Communication (AREA)

Abstract

시스템, 방법 및 비일시적 컴퓨터 판독 가능 매체는 실시간 몰입 환경 내에서 사용자에게 표현되는 가상 캐릭터를 식별할 수 있다. 가상 캐릭터에 적용될 제 1 애니메이션이 결정된다. 상기 제 1 애니메이션과 동시에 가상 캐릭터에 적용될 비언어적 의사 소통 애니메이션이 결정된다. 가상 캐릭터는 제 1 애니메이션과 비언어적 의사소통 애니메이션을 기반으로 실시간으로 애니메이션된다.

Description

실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법
본 기술은 디지털 캐릭터 애니메이션 분야에 관한 것이다. 보다 상세하게, 본 기술은 실시간 복합 캐릭터 애니메이션 및 상호작용성을 위한 기술에 관한 것이다.
가상 현실(VR) 및 증강 현실(AR)은 컨텐츠 제작자가 다른 매체에서는 불가능한 방식으로 시청자를 몰입시킬 수 있는 엔터테인먼트 및 스토리텔링을 위한 새로운 매체이다. VR과 AR은 문학이나 영화에서 많이 경험하는 것처럼 관객이 공감할 수 있는 캐릭터로 매력적인 이야기를 전달하는 강력한 몰입형 플랫폼이다. VR 및 AR 경험에 사용되는 바와 같은 디지털 캐릭터는 종종 중립화된 3D 모델(종종 "디폴트 모델"이라고 함)로 시작한다. 캐릭터 "리그(rig)"는 캐릭터 모델이 살아 있다는 환영을 주며 그럴듯한 모든 방식으로 움직이고, 돌아다니고, 감정을 표현할 수 있도록 캐릭터 모델을 살아 움직이게 할 수 있는 디지털 인형이다. 캐릭터 리그는 정적 디폴트 캐릭터 모델을 입력으로 취한 다음 (팔꿈치가 얼마나 많이 구부러지거나 캐릭터의 입이 얼마나 많이 웃는지와 같은) 애니메이션 입력 컨트롤을 기반으로 이러한 모델에 일련의 절차적 수정을 적용하여 시간에 걸쳐 살아 움직이는 변모하는 표현력 있는 캐릭터를 만들어 낸다. 캐릭터 리그는 일반적으로 골격 조인트 또는 뼈의 기본 계층구조 또는 집합을 구동하는 애니메이션 컨트롤 세트를 포함한다. 이 프로세스를 종종 캐릭터의 모션 시스템이라고 한다. 그런 다음, 다양한 기법을 사용하여 변형 레이어(들)가 캐릭터 모델을 이러한 애니메이션 골격에 부착하거나 바인딩한다.
본 개시의 다양한 실시예는 가상의 변형 가능한 기하학적 모델과 관련된 가상 모델 정보를 수신하도록 구성된 시스템, 방법 및 비일시적 컴퓨터 판독 가능 매체를 포함할 수 있다. 가상 모델 정보는 복수의 변환 및 디폴트 모델에 의해 정의된 제 1 복수의 정점을 포함하는 복합 리그, 및 제 2 복수의 변환 및 제 2 복수의 정점을 포함하는 단순 리그를 포함한다. 제 2 복수의 정점은 디폴트 모델에 의해 정의된 제 1 복수의 정점에 대응한다. 단순 리그 및 복합 리그는 가상의 변형 가능한 기하학적 모델에 적용될 애니메이션에 기초하여 변형된다. 오프셋 데이터 세트가 계산된다. 오프셋 데이터 세트는, 제 1 복수의 정점에서 각각의 정점에 대해, 상기 정점과 제 2 복수의 정점에 대응하는 정점 사이의 오프셋을 포함한다.
일 실시예에서, 애니메이션은 복수의 프레임을 포함하고, 오프셋 데이터 세트는, 제 1 복수의 정점에서 각각의 정점 및 복수의 프레임에서의 각각의 프레임에 대해, 상기 정점과 제 2 복수의 정점에서 대응하는 정점 사이의 오프셋을 포함한다.
일 실시예에서, 몰입 환경에서 애니메이션이 가상의 변형 가능한 기하학적 모델에 실시간으로 적용될 것이라는 표시가 수신된다.
일 실시예에서, 단순 리그는 애니메이션에 기초하여 실시간으로 변형되고, 단순 리그 및 오프셋 데이터 세트의 변형에 기초하여 복합 모델 변형이 생성된다.
일 실시예에서, 제 2 복수의 변환은 제 1 복수의 변환의 서브 세트를 나타낸다.
일 실시예에서, 제 1 복수의 변환은 복수의 변형 변환 및 복수의 제어 변환을 포함하고, 제 2 복수의 변환은 복수의 변형 변환의 서브 세트를 포함한다.
일 실시예에서, 제 1 복수의 변환 중 적어도 일부는 계층적으로 배열된다.
일 실시예에서, 제 2 복수의 변환 중 적어도 일부는 계층적으로 배열된다.
일 실시예에서, 단순 리그는 제 2 복수의 변환과 제 2 복수의 정점 사이의 관계를 정의하는 스키닝 가중치 세트를 더 포함한다.
일 실시예에서, 제 2 복수의 정점에서의 각각의 정점은 제 2 복수의 변환 중 4개 이하의 변환과 관련된다.
본 개시의 다양한 실시예는 가상의 변형 가능한 기하학적 모델과 관련된 가상 모델 정보를 수신하도록 구성된 시스템, 방법 및 비일시적 컴퓨터 판독 가능 매체를 포함할 수 있다. 가상 모델 정보는 복수의 변환 및 디폴트 모델에 의해 정의된 제 1 복수의 정점을 포함하는 복합 리그, 및 제 2 복수의 변환 및 제 2 복수의 정점을 포함하는 단순 리그를 포함한다. 제 2 복수의 정점은 디폴트 모델에 의해 정의된 제 1 복수의 정점에 대응한다. 단순 리그 및 복합 리그는 가상의 변형 가능한 기하학적 모델에 적용될 애니메이션에 기초하여 변형된다. 오프셋 데이터 세트가 계산된다. 오프셋 데이터 세트는, 제 1 복수의 정점에서 각각의 정점에 대해, 상기 정점과 제 2 복수의 정점에 대응하는 정점 사이의 오프셋을 포함한다. 오프셋 데이터 세트의 압축 버전은 가상의 변형 가능한 기하학적 모델의 실시간 애니메이션을 위해 실시간 처리 엔진으로 익스포트된다.
일 실시예에서, 오프셋 데이터 세트의 압축 버전이 생성된다.
일 실시예에서, 오프셋 데이터 세트의 압축 버전을 생성하는 단계는, 제 1 복수의 정점의 각 정점에 대해, 애니메이션을 통한 정점에 대한 최소 및 최대 X, Y 및 Z 오프셋 값을 추적함으로써 제 1 복수의 정점의 각 정점에 대한 타이트 바운딩 박스를 계산하는 단계를 포함한다.
일 실시예에서, 오프셋 데이터 세트의 압축된 버전을 생성하는 단계는 타이트 바운딩 박스에 기초하여 16 비트 이하의 정수를 사용하여 오프셋 데이터 세트의 오프셋을 양자화하여 오프셋 데이터의 하위 비트 양자화를 생성하는 단계를 더 포함한다.
일 실시예에서, 오프셋 데이터 세트의 압축 버전을 생성하는 단계는 X, Y 및 Z 오프셋 값을 컬러 성분값에 매핑함으로써 오프셋 데이터의 하위 비트 양자화를 비디오 압축 기술과 결합하는 단계를 더 포함한다.
일 실시예에서, 오프셋 데이터 세트의 압축 버전을 생성하는 단계는 X, Y 및 Z 오프셋 값을 오디오 스트림의 채널에 매핑함으로써 오프셋 데이터의 하위 비트 양자화를 손실 또는 무손실 오디오 압축 기술과 결합하는 단계를 더 포함한다.
일 실시예에서, 오프셋 데이터 세트의 압축 버전을 생성하는 단계는 X, Y 및 Z 오프셋 값을 사진의 픽셀에 있는 컬러 성분값에 매핑하고 연속 애니메이션 프레임에 인접한 픽셀을 사용함으로써 오프셋 데이터의 하위 비트 양자화를 손실 또는 무손실 광압축 기술과 결합하는 단계를 더 포함한다.
일 실시예에서, 오프셋 데이터 세트의 압축 버전을 생성하는 단계는 제 1 복수의 정점의 각각의 정점을 비디오 스트림의 픽셀에 상관시키는 단계를 더 포함한다.
일 실시예에서, 제 1 복수의 정점의 각 정점을 비디오 스트림의 픽셀에 상관시키는 단계는 제 1 복수의 정점의 각 정점을 텍스처 룩업을 사용해 텍스처 로케이션에 매핑하거나 인덱싱 방식을 이용함으로써 제 1 복수의 정점의 각 정점을 비디오 스트림의 픽셀에 상관시키는 단계를 포함한다.
일 실시예에서, 오프셋 데이터 세트의 압축된 버전을 생성하는 단계는 오프셋 데이터 세트를 클러스터링하여 복수의 클러스터를 생성하는 단계를 포함하고, 또한 오프셋 데이터 세트를 클러스터링하는 단계는 K-평균을 이용해 오프셋 데이터 세트를 클러스터링하는 단계를 포함한다.
일 실시예에서, 오프셋 데이터 세트의 압축된 버전을 생성하는 단계는 오프셋 데이터 세트를 클러스터링하여 복수의 클러스터를 생성하는 단계; 및 PCA(Principal Component Analysis)를 복수의 클러스터의 각각의 클러스터에 적용하는 단계를 포함한다.
일 실시예에서, 오프셋 데이터 세트의 압축된 버전을 생성하는 단계는 근사 파라미터화 분석함수(approximating parametrized analytical function)를 사용하여 오프셋 데이터 세트의 오프셋에 대한 시간에 걸친 변화를 나타내는 단계; 및 근사 파라미터화 분석함수의 파라미터의 서브 세트만을 유지하는 단계를 포함한다.
본 개시의 다양한 실시예는 실시간 몰입 환경에서 애니메이션될 가상의 변형 가능한 기하학적 모델을 식별하도록 구성된 시스템, 방법 및 비일시적 컴퓨터 판독 가능 매체를 포함할 수 있다. 가상의 변형 가능한 기하학적 모델은 복수의 정점, 복수의 에지 및 복수의 면을 포함하는 가상 모델 메시(virtual model mesh)를 포함한다. 가상 모델 메시는 개선된 메시를 생성하기 위해 1회 이상의 반복으로 반복적으로 개선된다. 1회 이상의 반복의 각 반복은 정점의 수, 에지의 수 및/또는 면의 수를 증가시킨다. 개선된 메시는 실시간 몰입 환경내에 가상의 변형 가능한 기하학적 모델의 실시간 애니메이션 중에 표시된다.
일 실시예에서, 실시간 몰입 환경은 가상 현실 환경 또는 증강 현실 환경이다.
일 실시예에서, 개선된 메시는 복수의 제 2 정점을 포함하고, 제 2 복수의 정점의 각각의 정점은 복수의 정점에서의 정점의 선형 가중 조합이다.
일 실시예에서, 정점의 각각의 선형 가중 조합은 하나 이상의 가중치를 포함하고, 이 방법은 실시간 몰입 환경 내에 가상의 변형 가능한 기하학적 모델의 실시간 애니메이션 이전에 각각의 선형 가중 조합에 대한 하나 이상의 가중치를 사전 계산하는 단계를 더 포함한다.
일 실시예에서, 각각의 선형 가중 조합은 사전정의된 최대 가중치 수로 제한된다.
일 실시예에서, 사전정의된 최대 가중치 수보다 더 많은 복수의 가중치를 갖는 제 2 복수의 정점의 각각의 정점에 대해, 가중치의 절대 크기를 기반으로 선형 가중치 조합에 포함시키기 위해 복수의 가중치 중에서 가중치의 서브 세트가 선택된다.
일 실시예에서, 근사 법선 벡터 및 근사 접선 벡터는 제 2 복수의 정점에서 각각의 정점에 대해 계산된다.
일 실시예에서, 제 2 복수의 정점들 중 제 1 정점 서브 세트의 각 정점은 정확히 4개의 인접한 정점들을 가지며; 제 1 정점 서브 세트의 각 정점에 대한 근사 법선 벡터를 계산하는 단계는, 제 1 정점 서브 세트에서 정점에 대해, 상기 정점에 인접한 4개의 정점에 기초하여 근사 법선 벡터를 계산하는 단계를 포함하고; 제 1 정점 서브 세트의 각 정점에 대한 근사 접선 벡터를 계산하는 단계는, 제 1 정점 서브 세트의 각 정점에 대해, 상기 정점에 인접한 4개의 정점에 기초하여 근사 접선 벡터를 계산하는 단계를 포함한다.
일 실시예에서, 제 2 복수의 정점들 중 제 1 정점 서브 세트의 각 정점은 4개보다 많은 인접 정점을 가지며; 상기 제 1 정점 서브 세트의 각 정점에 대한 근사 법선 벡터를 계산하는 단계는, 상기 제 1 정점 서브 세트의 정점에 대해, 정점에 인접한 4개의 정점을 선택하는 단계, 및 상기 정점에 인접한 선택된 4개의 정점에 기초하여 근사 법선 벡터를 계산하는 단계를 포함하고; 제 1 정점 서브 세트의 각 정점에 대한 근사 접선 벡터를 계산하는 단계는, 제 1 정점 서브 세트의 각 정점에 대해, 상기 정점에 인접한 선택된 4개의 정점에 기초하여 근사 접선 벡터를 계산하는 단계를 포함한다.
일 실시예에서, 제 2 복수의 정점들 중 제 1 정점 서브 세트의 각 정점은 4개 미만의 인접한 정점을 가지며; 상기 제 1 정점 서브 세트의 각 정점에 대한 근사 법선 벡터를 계산하는 단계는, 상기 제 1 정점 서브 세트의 각 정점에 대해, 상기 정점과 관련된 4개의 정점 세트를 결정하는 단계; 및 4개의 정점 세트에 기초하여 정점에 대한 근사 법선 벡터를 계산하는 단계를 포함하고, 상기 4개의 정점 세트는 정점에 인접한 모든 정점을 포함하며, 상기 정점 그자체는 임의의 누락 정점들에 대해 대체되고; 제 1 정점 서브 세트의 각 정점에 대한 근사 접선 벡터를 계산하는 단계는, 제 1 정점 서브 세트의 각 정점에 대해, 4개의 정점 세트에 기초하여 근사 접선 벡터를 계산하는 단계를 포함한다.
본 개시의 다양한 실시예는 실시간 몰입 환경 내에서 사용자에게 상영되는 가상 캐릭터를 식별하도록 구성된 시스템, 방법 및 비일시적 컴퓨터 판독 가능 매체를 포함할 수 있다. 가상 캐릭터에 적용될 제 1 애니메이션이 결정된다. 제 1 애니메이션과 동시에 가상 캐릭터에 적용될 비언어적 커뮤니케이션 애니메이션이 결정된다. 가상 캐릭터는 제 1 애니메이션과 비언어적 커뮤니케이션 애니메이션을 기반으로 실시간으로 애니메이션된다.
일 실시예에서, 비언어적 커뮤니케이션 애니메이션은 사용자와 연관된 사용자 입력에 기초하여 결정된다.
일 실시예에서, 사용자 입력은 몰입 환경에서 추적되는 사용자상의 특징 위치 세트와 관련된 위치 및 방향 정보를 포함한다.
일 실시예에서, 비언어적 커뮤니케이션 애니메이션은 가상 캐릭터가 위치 및 방향 정보에 기초하여 사용자상의 특징 위치 세트의 하나 이상의 특징 위치를 보도록하는 룩킹 애니메이션을 포함한다.
일 실시예에서, 비언어적 커뮤니케이션 애니메이션은 가상 캐릭터가 실시간 몰입 환경에서 2이상의 객체를 번갈아 바라 보도록하는 룩킹 애니메이션을 포함하며, 여기서 2이상의 객체는 사용자의 머리, 사용자의 손, 사용자의 신체 또는 얼굴상의 특징 위치, 실시간 몰입 환경의 다른 사용자, 실시간 몰입 환경의 제 2 가상 캐릭터, 또는 실시간 몰입 환경에서 시뮬레이션된 객체 중 적어도 둘을 포함한다.
일 실시예에서, 위치 및 방향 정보는 사용자의 머리와 관련된 머리 위치 및 방향 정보를 포함하고, 비언어적 커뮤니케이션 애니메이션은 가상 캐릭터가 머리 위치 및 방향 정보에 기초하여 사용자에 의한 머리 움직임을 미러링하도록 하는 미러링 애니메이션을 포함한다.
일 실시예에서, 위치 및 방향 정보는 하나 이상의 사용자의 손과 관련된 손 위치 및 방향 정보를 더 포함한다.
일 실시예에서, 제 1 애니메이션 및 비언어적 커뮤니케이션 애니메이션에 기초하여 가상 캐릭터를 실시간으로 애니메이션하는 단계는 비언어적 커뮤니케이션 애니메이션을 제 1 애니메이션과 레이어링(layering)하는 단계를 포함한다.
일 실시예에서, 비언어적 커뮤니케이션 애니메이션은 몰입 환경과 관련된 가상 환경 상태 정보에 기초하여 결정된다.
일 실시예에서, 비언어적 커뮤니케이션 애니메이션은 가상 환경 상태 정보에 기초하여 가상 캐릭터의 활동 레벨을 증가시키는 단계를 포함한다.
개시된 기술의 많은 다른 특징들, 응용들, 실시예들 및/또는 변형들은 첨부 도면들 및 하기의 상세한 설명으로부터 명백해질 것이라는 것이 이해되어야 한다. 본 명세서에 기술된 구조, 시스템, 비일시적 컴퓨터 판독 가능 매체 및 방법의 추가 및/또는 대안적 구현은 개시된 기술의 원리를 벗어남이 없이 채용될 수 있다.
본 발명의 내용에 포함됨.
도 1a는 본 개시의 일 실시예에 따른 캐릭터 애니메이션 모듈을 포함하는 예시적인 시스템을 도시한 것이다.
도 1b는 본 개시의 일 실시예에 따른, 애니메이션 클립 데이터의 예의 블록도 표현을 도시한 것이다.
도 2는 본 개시의 일 실시예에 따른 예시적인 데이터 익스포터 모듈을 도시한 것이다.
도 3은 본 개시의 일 실시예에 따른 비언어적 캐릭터 큐 모듈의 예를 도시한 것이다.
도 4는 본 개시의 일 실시예에 따른 예시적인 복합 모델 변형 모듈을 도시한 것이다.
도 5는 본 개시의 일 실시예에 따른 예시적인 모델 테셀레이션(tessellation) 모듈을 도시한 것이다.
도 6은 본 개시의 일 실시예에 따른 모델 테셀레이션과 관련된 예시적인 시나리오를 도시한 것이다.
도 7은 본 개시의 일 실시예에 따른, 법선 벡터의 근사와 관련된 예시적인 시나리오를 도시한 것이다.
도 8은 본 개시의 일 실시예에 따른, 법선 벡터의 근사와 관련된 예시적인 시나리오를 도시한 것이다.
도 9는 본 개시의 일 실시예에 따른, 법선 벡터의 근사와 관련된 예시적인 시나리오를 도시한 것이다.
도 10은 본 개시의 일 실시예에 따른, 서브분할 표면의 생성을 위한 예시적인 흐름도를 도시한 것이다.
도 11은 본 개시의 일 실시예에 따른, 복합 캐릭터 모듈 및 단순 캐릭터 모델의 정점들 간의 정점 오프셋 데이터를 계산하는 예시적인 방법을 도시한 것이다.
도 12는 본 개시 내용의 일 실시예에 따른, 복합 캐릭터 모델 및 단순 캐릭터 모델 정점 간의 압축된 정점 오프셋 데이터를 계산하는 예시적인 방법을 도시한 것이다.
도 13은 본 개시의 일 실시예에 따라 베이스 메시로부터 개선된 메시를 생성하는 예시적인 방법을 도시한 것이다.
도 14는 본 개시의 일 실시예에 따른, 비언어적 의사소통 애니메이션으로 가상 캐릭터 애니메이션을 증강시키는 예시적인 방법을 도시한 것이다.
도 15는 본 개시의 일 실시예에 따른 다양한 시나리오에서 이용될 수 있는 컴퓨터 시스템 또는 컴퓨팅 디바이스의 예를 도시한 것이다.
도면은 단지 예시의 목적으로 개시된 기술의 다양한 실시예를 도시하며, 도면은 동일한 요소를 식별하기 위해 동일한 참조 번호를 사용한다. 당업자는 하기의 설명으로부터 도면에 도시된 구조 및 방법의 대안적인 실시예가 본 명세서에 기술된 개시된 기술의 원리를 벗어나지 않고 채용될 수 있음을 쉽게 인식할 것이다.
실시간 복합 모델 애니메이션 및 상호작용성
가상 현실(VR) 및 증강 현실(AR)은 컨텐츠 제작자가 다른 매체에서는 불가능한 방식으로 시청자를 몰입시킬 수 있는 엔터테인먼트 및 스토리텔링을 위한 새로운 매체이다. VR과 AR은 문학이나 영화에서 많이 경험하는 것처럼 관객이 공감할 수 있는 캐릭터로 매력적인 이야기를 전달하는 강력한 몰입형 플랫폼이다. 그러나, 영화 경험과 달리, VR 및 AR은 시청자가 이야기의 가상 세계에 완전히 몰입하기 때문에 디지털 캐릭터가 실시간으로 시청자와 상호작용하고 반응할 기회를 제공한다.
디지털 캐릭터는 종종 중화된 3D 모델(종종 "디폴트 모델"이라고 함)로 시작된다. 캐릭터 "리그(rig)"는 캐릭터 모델이 살아 있다는 환영을 주며 그럴듯한 모든 방식으로 움직이고, 돌아다니고, 감정을 표현할 수 있도록 캐릭터 모델을 살아 움직이게 할 수 있는 디지털 인형이다. 캐릭터 리그는 정적 디폴트 캐릭터 모델을 입력으로 취한 다음 (팔꿈치가 얼마나 많은 각도로 구부러지거나 캐릭터의 입이 얼마나 많이 웃는지와 같은) 애니메이션 입력 컨트롤을 기반으로 이러한 모델에 일련의 절차적 수정을 적용하여 시간이 지남에 따라 살아 움직이는 변모하는 표현력 있는 캐릭터를 만들어 낸다. 캐릭터 리그는 일반적으로 골격 조인트 또는 뼈의 기본 계층구조 또는 집합을 구동하는 애니메이션 컨트롤 세트를 포함한다. 이 프로세스를 종종 캐릭터의 모션 시스템이라고 한다. 그런 다음, 다양한 기법을 사용하여 변형 레이어(들)가 캐릭터 모델을 이러한 애니메이션 골격에 부착하거나 바인딩한다.
캐릭터 애니메이션에 대한 종래의 접근법은 일반적으로 (비디오 게임, VR 및/또는 AR과 같은) 실시간 애플리케이션 및 (장편 영화와 같은) 비실시간 애플리케이션에 대한 상이한 레벨의 품질을 수반한다. 대부분의 실시간 애플리케이션에 내재된 컴퓨팅 제약으로 인해 실시간 애플리케이션은 일반적으로 비실시간 애플리케이션보다 저품질의 애니메이션을 이용한다는 사실을 이해할 수 있다. 비디오 게임은 일반적으로 초당 30 또는 60 프레임(FPS)으로 단일 시점을 렌더링한다. VR 프로젝트는 일반적으로 90FPS에서 (각 눈에 하나씩) 두 가지 시점을 렌더링하므로 더 큰 컴퓨팅 요구 사항이 있다. 이와 같이, 대부분의 비디오 게임뿐만 아니라 VR 및 AR에 대한 기존의 접근 방식은 스키닝(skinning) 및 모프(morph) 타켓의 변형을 사용하는데, 이들은 간단한 캐릭터 변형 기술로 캐릭터 애니메이션 품질은 떨어지지 만 실시간으로 실행되도록 최적화되어 있다. 실시간 적용을 목적으로 하는 캐릭터 리그에서, "스키닝"은 디폴트 모델의 스킨을 리그의 뼈에 바인딩하는 데 일반적으로 사용되는 기술이다. 각 뼈는 뼈의 움직임에 영향을 받는 피부의 정점 세트와 관련이 있다. 각 뼈의 정점은 여러 뼈들에 의해 영향을 받을 수 있다. 실시간 적용을 위한 캐릭터 리그는 일반적으로 각 피부 정점이 관련될 수 있는 뼈들의 개수뿐만 아니라 리그에 있는 전체적인 뼈들의 개수에 제한되므로, 캐릭터가 실시간으로 변형될 수 있도록 한다. 실시간 캐릭터 리그에서, 페이스 퍼포먼스는 종종 일련의 블렌드 셰이프(blend shapes) 또는 모프 타겟 세트로서 캡처된다. 페이스 리그는 애니메이터에 의해 온오프로 블렌딩되는 다수의 모델링된 얼굴 형태(예를 들어 스마일 포즈)로 구성될 수 있다.
반대로, 장편 영화를 위한 캐릭터 리그에서, 실시간 애니메이션과 관련된 제약은 적용되지 않으며, 따라서 더 넓은 범위의 기술이 적용되어 애니메이션 캐릭터 모델을 생성할 수 있다. 근육, 지방 및 피부의 복합을 포착하거나 캐릭터의 모양 또는 실루엣의 특정한 시각적 특성을 유지하기 위해 다수의 변형 레이어뿐만 아니라 더 정교한 디포머 세트가 사용될 수 있다. 얼굴 표정은 모양을 블렌드하는데 국한되지 않으며 얼굴의 모든 복합 부분을 포착하기 위해 많은 변형 레이어를 포함할 수 있다. 대부분의 경우, 복합 캐릭터 리그는 신체 기반 시뮬레이션을 실행하여 긴 머리카락, 옷, 근육 및 해부체 상에 미끄러듯 움직이는 피부를 보다 정확하게 묘사할 수 있다. 복합 장편 영화 리그는 실시간으로 실행할 필요가 없으며 컴퓨터 의 분산형 클러스터, 특히 시뮬레이션 요소를 사용하여 오프라인으로 최종 캐릭터 모델을 계산하는 것이 일반적이다. 실시간 처리시 고유의 컴퓨팅 자원에 대한 제한으로 인해, 게임 및 VR과 같은 실시간 애플리케이션의 캐릭터 애니메이션에 대한 기존의 접근 방식은 애니메이션이 장편 영화와 같은 비실시간 애플리케이션에서 캐릭터 애니메이션의 품질, 복잡성 및 풍부성을 결여하게 만든다.
컴퓨터 기술에 근거한 개선된 접근법은 특히 컴퓨터 기술의 영역에서 발생하는 종래의 접근법과 관련된 상기 및 다른 단점을 극복한다. 일반적으로, 본 기술은 VR 및 AR을 포함하나 또한 홀로그래픽 기술 및 뇌-컴퓨터 인터페이스와 같은 다른 몰입형 시나리오로 확장되는 임의의 시뮬레이션된 몰입 환경을 위해 설계된 혁신적인 시스템을 제공한다. 몰입 환경을, 적절한 경우, 전체적으로 간단히 하기 위해 VR이라고 한다. 본 기술은 엔터테인먼트, 의료, 훈련 및 교육 상황과 같은 많은 영역에 적용될 수 있다. 본 명세서에 기술된 많은 특징들이 VR 및 AR 엔터테인먼트를 참조하여 설명될 것이나, 본 기술은 엔터테인먼트를 넘어 광범위한 응용 범위를 갖는 임의의 시뮬레이션 또는 몰입 환경에 적용될 수 있으며, 본 명세서에서 논의되는 특징은 하나의 특정한 예시적 애플리케이션을 나타낸다. 다양한 실시예들에서, 본 기술은 장편 영화 또는 기타 비실시간 애니메이션 애플리케이션에서 기대할 수 있지만 실시간으로 VR 컴퓨팅 디바이스에서 실행할 수 있는 모든 시각적 충실도 및 미세한 행동으로 캐릭터 애니메이션을 포함하여 고품질의 애니메이션을 생성하는 (적절한 경우, 전체적으로 간단히 하기 위해 VR이라 할 수 있는) VR 및 AR 엔터테인먼트를 위해 설계된 혁신적인 시스템을 제공한다. 본 기술은 표현력이 높고 사용자 입력에 매우 반응하는 VR 캐릭터 퍼포먼스를 가능하게 한다. 본 기술은 사용자를 스토리 안에 두어 사용자가 캐릭터이고 다른 캐릭터와 상호작용하고 이야기에 참여할 수 있는 진정한 몰입형 VR 경험을 만들기 위한 중추가 될 수 있다. 본 기술은 영화의 공감을 게임 기획사와 결합하지만 실생활의 동기부여와도 결합하는 VR 경험을 가능하게 한다.
종래 기술에 비해 본 기술의 일부 이점은 다음을 포함한다:
·시뮬레이션된 움직임이 있는 가상 환경의 캐릭터 및 기타 측면들 모두를 포함한 가상의 변형 가능한 기하학적 모델의 고품질 가상 표현;
·사용자 입력에 반응할 수 있는 VR에 대해 실시간으로 렌더링되는 시각적 충실도 및 애니메이션(움직임) 품질 모두에서 고품질 캐릭터 퍼포먼스;
·사용자 입력에 동적으로 반응할 수 있는 실시간 VR 경험에서 실행되는 장편 영화 품질의 얼굴 표정;
·실시간 VR 경험에서 실행되는 피부, 옷 및 머리카락에 대한 캐릭터 시뮬레이션;
·실시간 VR 경험에서 실행되는 원만한 서브디비전 서피스 모델;
·실시간 게임 엔진에서 실행될 수 있는 빠르지만 저품질 기술(예를 들어, 스키닝)에 의해 국한되지 않는 캐릭터의 시각적 충실도;
·실시간 엔진 파이프라인에서 캐릭터 애니메이션 파이프라인을 분리; 및
·하이-엔드 컴퓨터에 테더링된 VR 헤드셋에서 실행하는 능력뿐만 아니라 모바일 구동 VR 헤드셋 장치, AR 장치 및 기타 몰입 기술과 같은 덜 강력한 장치에서 실행되도록 확장할 수 있는 능력.
본 기술은 아티스트들이 장편 영화에서 기대하는 모든 섬세함을 가는 고품질의 캐릭터 애니메이션을 생성할 수 있게 하지만, 실시간 엔진에 의해 결과가 절차적으로 변경될 수 있는 실시간 엔진에서 실시간으로 실행된다. 본 기술은 애니메이션 생성 툴에서 임의로 복합 캐릭터 설정을 허용함으로써 실시간 애니메이션 캐릭터 퍼포먼스에 대한 제한을 없앤다. 개시된 실시간 엔진 파이프라인은 하드에지형 폴리곤 모델(hard-edged polygonal models) 대신 원만한 서브디비전 서피스로 렌더링되는 변형된 복합 캐릭터 모델을 생성하기 위해 게임 로직 및 사용자 입력에 기초하여 사이클 애니메이션을 블렌딩함으로써 완전한 캐릭터 상호작용성을 가능하게 한다. 개시된 기술에 관한 보다 상세한 내용이 아래에 제공된다.
도 1a는 본 개시의 실시예에 따른 캐릭터 애니메이션 모듈(102)을 포함하는 예시적인 시스템(100)을 도시한 것이다. 캐릭터 애니메이션 모듈(102)은 하나 이상의 컴퓨팅 디바이스에서 실행되는 하나 이상의 소프트웨어 애플리케이션에서 구현될 수 있다. 이 도면에 도시된 구성 요소들(예를 들어, 모듈들, 요소들 등) 및 본 명세서의 모든 도면들은 단지 예시적인 것이며, 다른 구현들은 추가적이거나, 더 적거나, 통합된 또는 상이한 구성 요소들을 포함할 수 있다. 일부 구성 요소는 관련 세부 사항을 모호하게 하지 않기 위해 나타내지 않을 수 있다. 다양한 실시예들에서, 캐릭터 애니메이션 모듈(102)과 연계하여 설명된 기능들 중 하나 이상은 임의의 적절한 조합으로 구현될 수 있다.
도 1a의 예에 도시된 바와 같이, 캐릭터 애니메이션 모듈(102)은 애니메이션 생성 모듈(104) 및 실시간 엔진 모듈(116)을 포함할 수 있다. 도 1a의 예에 도시된 바와 같이, 애니메이션 생성 모듈(104)은 복합 캐릭터 리그 모듈(106), 단순 캐릭터 리그 모듈(108), 애니메이션 모듈(110), 및 데이터 익스포트 모듈(112)을 포함할 수 있다. 도 1a의 예에 더 도시된 바와 같이, 실시간 엔진 모듈(116)은 데이터 임포트 모듈(118), 애니메이션 드라이버 모듈(120), 캐릭터 인터랙티브 제약 모듈(122), 비언어적 캐릭터 큐 모듈(124), 단순 캐릭터 리그 애니메이션 모듈(126), 복합 모델 변형 모듈(128), 모델 테셀레이션 모듈(130) 및 렌더링 파이프라인 모듈(132)을 포함할 수 있다. 일 실시예에서, 복합 모델 변형 모듈(128), 모델 테셀레이션 모듈(130) 및/또는 렌더링 파이프라인(132)은 GPU(graphics processing unit)(134)를 사용하여 부분적으로 또는 전체적으로 구현될 수 있다.
일부 실시예들에서, 본 명세서에 기술된 다양한 모듈들 및/또는 애플리케이션들은 부분적으로 또는 전체적으로 소프트웨어, 하드웨어 또는 이들의 임의의 조합으로서 구현될 수 있다. 일반적으로, 본 명세서에서 논의된 바와 같은 모듈 및/또는 애플리케이션은 소프트웨어, 하드웨어 또는 이들의 임의의 조합과 관련될 수 있다. 일부 구현들에서, 모듈들 및/또는 애플리케이션들의 하나 이상의 기능, 작업 및/또는 동작은 소프트웨어 루틴, 소프트웨어 프로세스, 하드웨어 및/또는 이들의 임의의 조합에 의해 수행되거나 수행될 수 있다. 일부 경우에, 본 명세서에 기술된 다양한 모듈 및/또는 애플리케이션은 부분적으로 또는 전체적으로 하나 이상의 컴퓨팅 디바이스 또는 시스템, 예컨대 사용자 또는 클라이언트 컴퓨팅 디바이스 또는 서버에서 실행되는 소프트웨어로서 구현될 수 있다. 예를 들어, 본 명세서에 기술된 하나 이상의 모듈 및/또는 애플리케이션, 또는 그의 적어도 일부는 사용자 컴퓨팅 디바이스 또는 클라이언트 컴퓨팅 시스템 상에서 실행되는 애플리케이션(예를 들어, 앱), 프로그램 또는 애플릿 등으로 구현되거나 그 내부에서 구현될 수 있다. 다른 예에서, 하나 이상의 모듈 및/또는 애플리케이션, 또는 이의 적어도 일부는 네트워크 서버 또는 클라우드 서버와 같은 하나 이상의 서버를 포함하는 하나 이상의 컴퓨팅 디바이스 또는 시스템을 사용하여 구현될 수 있다. 많은 변형 또는 다른 가능성이 있을 수 있음을 이해해야 한다.
복합 캐릭터 리그 모듈(106)은 디지털 가상 캐릭터에 대한 복합 캐릭터 리그를 정의하는 데이터를 수신 및 유지하도록 구성될 수 있다. 일반적으로, 복합 캐릭터 리그는 복수의 정점을 갖는 디폴트 캐릭터 모델과 연관될 수 있고/있거나 이를 포함할 수 있다. 복합 캐릭터 리그는 3D 위치 및 방향을 정의하는 변환의 기본 세트(예를 들어, 계층, 집합)를 구동하는 애니메이션 컨트롤 세트를 더 포함할 수 있다. 상술한 바와 같이, 이들 변환은 전형적으로 캐릭터 리그에서 골격 조인트 또는 뼈로 표현된다. 복합 골격 리그 조인트는 디폴트 캐릭터 모델에서 정점을 변형시키고 이동시킨다. 특정 실시예에서, 골격 조인트는 (방향 변환 정보없이) 3D 포인트 위치를 포함할 수 있다. 특정 실시예에서, 골격 조인트는 포인트 위치 및 전체 변환의 조합을 포함할 수 있다. 특정 실시예에서, 조인트의 집합은 계층구조로 구성될 수 있다. 그러나, 다른 실시예에서, 조인트의 집합은 계층적으로 배열되지 않을 수 있다. 또한, 현재 개시된 기술은 기하학적 변형에 이르게 하는 임의의 포인트 및 변환 세트에 적용될 수 있다. 본 명세서에 기술된 많은 특징들이 골격 조인트에 의해 추동되는 특성 변형을 참조하여 설명될 것이나, 본 기술은 임의의 포인트 및 변환 세트에 의해 추동되는 임의의 변형 가능한 기하학적 모델에 적용될 수 있고, 본 명세서에서 논의되는 가상 캐릭터 모델은 하나의 특정 예시적인 애플리케이션을 나타내는 것을 알게 될 것이다. 리깅 아티스트는, 다양한 실시예에서, 다양한 디포머, 다중 변형 레이어 및 물리적 기반의 시뮬레이션을 포함하여 다양한 기술을 이용할 수 있는 복합 캐릭터 리그를 만들 수 있다. 특정 실시예에서, 한 세트의 변형 조인트가 골격 컨트롤 조인트로부터 유도되고 이들 변형 조인트는 기하학적 변형 레이어를 추동한다. 변형 조인트는 골격 구성 요소로부터 변형 레이어의 분리 및 캡슐화를 제공한다. 특정 실시예에서, 복합 캐릭터 리그는 예를 들어 근육, 지방 및 피부와 같은 다양한 재료의 복합을 포착하거나 캐릭터의 형태 또는 실루엣의 특정 시각적 품질을 유지하기 위해 다중 변형 레이어를 사용할 수 있다. 특정 실시예에서, 복합 캐릭터 리그는 다양한 변형 레이어에 대응하는 다수의 변형 조인트 세트를 포함한다. 특정 실시예에서, 골격 조인트와 변형 조인트의 조합이 기하학적 변형을 추동한다. 복합 캐릭터 리그는 또한 얼굴의 모든 복합을 포착하기 위해 많은 변형 레이어를 포함할 수 있는 얼굴 표정을 포함할 수 있다. 다양한 실시예에서, 복합 캐릭터 리그는 신체 기반 시뮬레이션을 실행하여 긴 머리카락, 옷, 근육, 해부체 상에 미끄러지듯 움직이는 피부 등과 같은 캐릭터의 요소를 보다 정확하게 묘사할 수 있다. 복합 캐릭터 리그는 정교한 얼굴 애니메이션 설정을 통합하여 과장된 표정과 미묘한 디테일을 모두 포착할 수 있다. 개시된 기술은, 본 명세서에서 더 상세히 설명되는 바와 같이, 실시간 프로세싱 엔진(즉, 애니메이션 생성 모듈(104))에서 실행되는 실시간 캐릭터 시스템으로부터 프론트-엔드 캐릭터 셋업, 애니메이션 및 파이프라인(즉, 애니메이션 생성 모듈(104))을 분리함으로써 캐릭터 리그에 대한 임의의 제한을 제거한다. 실시간 엔진 모듈(116). 이와 같이, 다양한 실시예에서, 복합 캐릭터 리그는 입력으로서 디폴트 캐릭터 모델과 조인트 계층을 포함하는 것과는 별도로 특정 데이터 요구 사항을 갖지 않을 수 있다.
단순 캐릭터 리그 모듈(108)은 디지털 가상 캐릭터를 나타내는 단순 캐릭터 리그를 정의하는 데이터를 수신, 유지 및/또는 생성하도록 구성될 수 있다. 일 실시예에서, 단순 캐릭터 리그는 복합 캐릭터 리그 모듈(106)에 의해 생성, 수신 및/또는 유지되는 복합 캐릭터 리그와 연관될 수 있다. 일 실시예에서, 단순 캐릭터 리그는 (복합 캐릭터 리그의 골격 조인트와 유사한) 골격 조인트 변환 세트를 포함할 수 있다. 다양한 실시예에서, 단순 골격 조인트 변환은 복합 캐릭터 리그와 별개로 정의될 수 있고, 계층적이거나 아닐 수 있다. 일 실시예에서, 단순 캐릭터 리그는 복합 캐릭터 리그의 단순화된 버전일 수 있다. 예를 들어, 단순 캐릭터 리그는 복합 캐릭터 리그 골격에 있는 골격 조인트의 서브 세트를 나타내고 복합 캐릭터 리그 골격에서 모든 애니메이션 컨트롤 데이터를 배제한(예를 들어, 복합 캐릭터 리그 골격에서 하나 이상의 컨트롤 조인트를 제외한) 단순화된 골격을 포함할 수 있다. 일 실시예에서, 단순 캐릭터 리그는 단순화된 골격 조인트 계층, 디폴트 캐릭터 모델을 정의하는 디폴트 모델 정보(예를 들어, 이는 복합 캐릭터 리그에 포함된 동일한 디폴트 캐릭터 모델일 수 있음), 디폴트 캐릭터 모델에서 단순화된 골격과 정점 간의 관계를 정의하는 스키닝 가중치 맵, 및 하나 이상의 블렌드 모양을 포함할 수 있다. 일 실시예에서, 단순 캐릭터 리그는 제한된 스킨 캐릭터 리그일 수 있으며, 디폴트 캐릭터 모델의 각 정점은 단순화된 골격에서 최대 개수의 뼈, 예를 들어 4개 이하의 뼈에 부착될 수 있다. 특정 실시예에서, 단순 캐릭터 리그는 실시간 엔진 모듈(116)에 의해 지원되는 (격자 또는 스무딩 디포머와 같은) 스키닝 이외에 더 복잡한 디포머들로 구성될 수 있다. 특정 실시예에서, 단순 캐릭터 리그는 리깅 아티스트에 의해 수동으로 생성될 수 있다. 특정 실시예에서, 단순 캐릭터 리그는 통계적 또는 머신 러닝 방법을 사용하여 복합 캐릭터 리그로부터 자동으로 도출될 수 있다. 예를 들어, 트레이닝 캐릭터는 타겟이 복합 캐릭터 리그에 대한 변형된 모델 컨트롤 정점인 칼레스테닉 애니메이션(calisthenic animation) 포즈를 사용하여 구성될 수 있다. 복합 변형된 컨트롤 정점과 단순화된 컨트롤 정점의 차이를 계산하는 비용 함수를 정의할 수 있다. 그런 다음, 이 비용 함수를 최소화하기 위해 정점 부착물과 익스포트 리그 스킨 가중치 맵을 학습할 수 있다.
애니메이션 모듈(110)은 복합 캐릭터 리그 및/또는 단순 캐릭터 리그에 대한 애니메이션 데이터를 수신하도록 구성될 수 있다. 특정 프로젝트의 애니메이션을 일련의 샷 또는 클립으로 나눌 수 있다. 주어진 샷 또는 클립은 하나 이상의 가상 캐릭터를 포함할 수 있으며, 각각은 복합 캐릭터 리그 및 단순 캐릭터 리그로 표현되고/되거나 연관된다. 주어진 샷에 대해, 애니메이터는 시간이 지남에 따라 하나 이상의 캐릭터에 대해 (복합 및/또는 단순) 캐릭터 리그를 핸드-애니메이션하거나 키프레임할 수 있거나 애니메이션은 배우 또는 여러 기술의 조합에 의해 라이브 공연에서 모션 캡처할 수 있다. 특정 실시예에서, 하나의 샷은 단일 캐릭터 액션(애니메이션 사이클 또는 사이클 애니메이션이라고도 함)을 나타낼 수 있다. 애니메이션 모듈(110)은 하나 이상의 샷에 대한 애니메이션 데이터를 출력하도록 구성될 수 있다. 샷에 대한 출력 애니메이션 데이터에는 기타 관련된 장면 데이터(예를 들어, 소품 및 환경 요소)와 함께 각 가상 캐릭터에 대한 단순화된 캐릭터의 애니메이션 골격 조인트 데이터가 포함될 수 있다. 본 기술을 이용하여 가상 캐릭터에 애니메이션을 적용하는 것은, 실시간 캐릭터 애니메이션에 대한 종래의 접근법과 달리, 상술한 바와 같이 복합 캐릭터 리그에 제한이 없다는 중요한 이점을 제공한다. 따라서, 애니메이터는 기존 파이프라인보다 훨씬 강력한 캐릭터 퍼포먼스를 달성할 수 있다.
데이터 익스포트 모듈(112)은 단일 또는 다수의 캐릭터 리그에 대한 캐릭터 리그 데이터 및 애니메이션 세트에 대한 캐릭터 애니메이션 데이터(114)를 익스포트하도록 구성될 수 있다. 캐릭터 리그 데이터 및 캐릭터 애니메이션 데이터(114)는 실시간 프로세싱 엔진(예를 들어, 실시간 엔진 모듈(116))에 의해 사용하기 위해 익스포트될 수 있다. 캐릭터 리그 데이터는, 예를 들어, 캐릭터 디폴트 모델 정보(예를 들어, 정점 위치, 메시 토폴로지), 조인트 계층 데이터, 단순 캐릭터 리그 스킨 가중치 맵, 단순 캐릭터 리그에 대한 임의의 추가 디포머와 관련된 데이터 등을 포함할 수 있다. 일 실시예에서, 캐릭터 리그 데이터는 (애니메이션 프레임 당이 아니라) 캐릭터 당 한 번 익스포트될 수 있다.
일 실시예에서, 가상 캐릭터에 적용될 하나 이상의 애니메이션에 관한 캐릭터 애니메이션 데이터는 애니메이션의 프레임 당 캐릭터마다 익스포트될 수 있다. 캐릭터 애니메이션 데이터의 일부 예에는 단순 리그의 조인트 계층구조 및 캐릭터 모델 컨트롤 정점에 대한 로컬 공간 애니메이션 조인트 변환이 포함될 수 있다. 일 실시예에서, 캐릭터 모델 컨트롤 정점은 각 정점의 스키닝 가중치 맵 조인트의 가중 평균인 공간에서 단순 캐릭터 리그의 메시에 대한 오프셋 위치로서 저장되는 복합 캐릭터 메시 데이터를 포함할 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 각 애니메이션의 각 프레임에 대한 캐릭터 모델에서 각 정점에 대한 오프셋이 계산될 수 있다. 오프셋은 실시간 엔진 모듈(116)에 의해 사용되어 단순 캐릭터 리그를 변형한 다음 캐릭터 모델의 정점에 오프셋을 적용함으로써 복합 캐릭터 리그의 변형을 시행할 수 있다. 데이터 익스포트 모듈(112)은 이 데이터를 디스크에 로컬로 저장하거나 원격 서버로 전송할 수 있다. 프레임 별 정점 오프셋 데이터를 익스포팅하면 대용량 데이터 세트가 디스크에 저장되거나 네트워크를 통해 원격 서버로 전송될 수 있다. 본 기술의 다양한 실시예는 익스포트 데이터 크기를 감소시키기 위해 여러 형태의 손실 또는 무손실 압축을 제공한다. 압축 기술의 일부 예는 애니메이션 프레임에 걸쳐 정점 오프셋을 커브 피팅(curve fitting)함으로써 시간에 따른 데이터를 줄이거나 PCA(Principal Component Analysis)와 같은 통계 또는 머신 러닝 기술을 사용하여 저장된 정점의 수를 줄이는 것을 포함할 수 있다. 데이터 익스포터 모듈(112)에 관한 더 자세한 내용은 도 2를 참조하여 아래에 제공될 것이다.
데이터 임포트 모듈(118)은 캐릭터 리그 데이터 및 캐릭터 애니메이션 데이터(114)를 임포트하도록 구성될 수 있다. 일 실시예에서, 데이터 임포트 모듈(118)은 필요에 따라 비동기식 데이터 관리자를 통한 요구시 데이터 익스포트 모듈(112)에 의해 익스포트된 캐릭터 리그 데이터 및 캐릭터 애니메이션 데이터(114)를 로드할 수 있다. 다양한 실시예들에서, 비동기식 데이터 관리자는 로컬 디스크 또는 원격 서버로부터 데이터를 로드할 수 있다. 일 실시예에서, 비동기식 데이터 관리자는 캐릭터 리그 데이터 및 캐릭터 애니메이션 데이터를 실시간 게임 엔진(예를 들어, 실시간 엔진 모듈(116))으로 가져올 수 있다.
상술한 바와 같이, 캐릭터 애니메이션 데이터는 애니메이션의 각 프레임에 대한 하나 이상의 캐릭터에 대한 오프셋 데이터와 같은 데이터를 포함하기 때문에 상당한 양의 데이터를 포함할 수 있다. 일 실시예에서, 캐릭터 애니메이션 데이터는 런타임시 빠르게 소비될 수 있도록 조건화될 수 있다. 도 1b는 이러한 방식으로 캐릭터 애니메이션 데이터가 어떻게 조건화될 수 있는지의 블록도 표현을 제공한다. 위에서 언급한 바와 같이, 캐릭터 애니메이션 데이터는 하나 이상의 애니메이션 클립에 관한 데이터를 포함할 수 있다. 도 1b의 예에서, 애니메이션 클립 데이터의 세트는 단순 리그의 조인트 애니메이션 데이터(예를 들어, 단순 리그의 조인트 계층에 대한 애니메이션 조인트 변환) 및 압축된 정점 애니메이션 데이터(예를 들어, 단순 리그에 관한 각 모델 컨트롤에 대한 정점 오프세트)를 포함한다. 압축된 정점 애니메이션 데이터는 작은 청크(예를 들어, 256 프레임)로 슬라이스되어 런타임 동안 정지없이 비동기식으로 GPU(예를 들어, GPU(134))에 스트리밍될 수 있다. 이 애니메이션 클립 데이터는 로컬 머신에서 제공되거나 클라우드 기반 서버에서 스트리밍될 수 있다. 캐릭터 애니메이션 데이터를 GPU로 스트리밍함으로 인한 장애가 발생하지 않도록 보장하기 위해, 데이터 임포트 모듈(118)은 필요에 따라 애니메이션 슬라이스를 큐잉하고 스트리밍하기 위해 중앙화된 스케줄러를 구현할 수 있다. 상술한 바와 같이, 캐릭터 애니메이션 데이터는 복수의 애니메이션 클립에 관한 데이터를 포함할 수 있다. 특정 실시예에서, 모든 애니메이션 클립의 제 1 청크(예를 들어, 256 프레임)는 VR 애플리케이션 시작시에 GPU 메모리로 스트리밍될 수 있다. 특정 실시예에서, 데이터 임포트 모듈(118)은 최적의 로드 성능을 위해 VR 장치 상에 로컬로 저장된 캐릭터 애니메이션 데이터를 스트리밍할 수 있다. 그러나, 이로 인해 VR 애플리케이션 풋프린트(예를 들어, 큰 로컬 스토리지 사용량)가 커질 수 있다. 대안으로, 데이터 임포트 모듈(118)은 원격 서버로부터 캐릭터 애니메이션 데이터를 스트리밍할 수 있다. 특정 실시예에서, VR 애플리케이션 사용 동안 필요에 따라, 추가 청크는 GPU로 스트리밍되는 것을 예상하여 로컬로 페치되고 저장될 수 있는 반면, 로컬 스토리지의 이용 가능성 및 로컬 머신과 클라우드 기반 서버 간의 스트리밍 속도와 균형을 유지하는 방식으로 더 이상 필요하지 않은 청크는 로컬 스토리지로부터 폐기될 수 있다.
도 1a로 돌아가서, 애니메이션 드라이버 모듈(120)은 애니메이션 사이클을 구동하도록 구성될 수 있다. 실시간 처리 엔진은 여러 사이클 애니메이션을 구동하거나 블렌드하기 위한 많은 메커니즘을 제공한다. 예를 들어, 타임라인 기반의 선형 편집 툴을 사용하여 게임 내 영화 같은 이야기 경험을 만들 수 있다. 상태 머신은 인터랙티브 게임이 서로 다른 주기를 블렌딩하고 사용자 상호작용성을 기반으로 복합 캐릭터 동작을 생성할 수 있도록 한다. 소정의 경우에 따라, 엔지니어는 또한 더욱 정교한 캐릭터 응답을 위해 절차적 인공 지능(AI)을 프로그래밍할 수 있다.
캐릭터 인터랙티브 제약 모듈(122)은 캐릭터 리그 조인트 위치에 대한 제약을 부여하도록 구성될 수 있다. 사이클 애니메이션을 블렌드하고 믿을 수 있는 캐릭터 응답을 만들려면, 캐릭터에 대한 조인트 위치에 제약을 부여하는 것이 바람직할 수 있다. 한 세트의 애니메이션 사이클들 간에 블렌딩하기 위해, 캐릭터 인터랙티브 제약 모듈(122)은 한 세트의 조인트 계층구조들 사이를 선형으로 보간할 수 있다. 캐릭터가 특정 위치를 보도록 하는 것과 같은 추가적인 제약을 부여하기 위해, 캐릭터 인터랙티브 제약 모듈(122)은 특정 조인트 위치(목 및 머리 조인트)를 직접 수정할 수 있다. 본 기술은 또한 예를 들어 애니메이션 사이클들(즉, 서로의 상단에 하나)을 함께 레이어링을 시행하기 위해 조인트 계층구조의 국부적 레이어링를 지원하는 것을 포함한 풍부한 제약 조건들을 가능하게 한다.
비언어적 캐릭터 큐 모듈(124)은 사용자 및 장면 입력에 기초하여 캐릭터 리그 조인트 위치를 수정 및/또는 조정하도록 구성될 수 있다. 인간은 잠재 의식적인 커뮤니케이션 큐를 사용하여 정서적 연결을 구축한다. 이러한 비언어적 큐는 실제 세계에서 서로 의미있는 관계를 구축하는 데 중요하다. VR은 시청자를 경험에 완전히 몰입시키고, 시청자가 가상 구현에 따른 체험시 캐릭터가 될 수 있게 하며, 시청자의 움직임을 (예를 들어, 머리 및 손 위치를 사용하여) 충실하게 추적할 수 있도록 고유한 능력을 갖는다. 이는 의미있는 잠재 의식 커뮤니케이션 큐를 VR 시스템에 구축하는 데 중요한 요소이며 기존 영화 나 게임에서는 불가능하다. 일 실시예에서, 비언어적 캐릭터 큐 모듈(124)은 복합 비언어적 캐릭터 응답을 VR 애니메이션에 포함시키기 위해 사용자 머리 및 손 입력과 같은 사용자 입력을 사용할 수 있다. 사용 사례의 예는 다음과 같다:
1. 사용자를 봄/눈 마주침을 유지
2. 사용자의 미러링 동작
3. 증가된 활동
4. 역동적인 퍼포먼스.
언급된 바와 같이, 비언어적 캐릭터 큐 모듈(124)은 캐릭터 리그의 하나 이상의 조인트 및/또는 정점을 수정함으로써 비언어적 커뮤니케이션 애니메이션을 생성하기 위한 사용자 입력을 수신할 수 있다. 일 실시예에서, 비언어적 캐릭터 큐 모듈(124)은 사용자를 실시간으로 추적하는 VR 플랫폼으로부터 사용자 입력 데이터를 수신할 수 있다. 예를 들어, 비언어적 캐릭터 큐 모듈(124)은 HMD(head-mounted display) 위치 및 방향뿐만 아니라 핸드 컨트롤러 위치(들) 및 방향(들)을 사용하여 사용자의 머리 및 손의 위치 및 방향을 정확하게 추적할 수 있다. 다른 실시예에서, 비언어적 캐릭터 큐 모듈(124)은 VR 경험에 통합되는 추가적인 실제 객체의 위치 및 방향에 관한 데이터와 같은 추가의 추적된 입력을 수신할 수 있다. 다른 실시예에서, 비언어적 캐릭터 큐 모듈(124)은 시스템에 보다 정교한 사용자 입력을 제공하는 사용자에 대한 전신 및 얼굴 추적을 수신할 수 있다. 다른 실시예에서, 비언어적 캐릭터 큐 모듈(124)은 혀 컨트롤러, 눈 스캐너 또는 뇌 컴퓨터 인터페이스와 같은 보조 기술을 통해 감정을 표현하는 사용자로부터 하나 이상의 사용자 입력을 수신할 수 있다. 다른 실시예에서, 비언어적 캐릭터 큐 모듈(124)은 공유된 소셜 경험에서 다수의 사용자로부터 하나 이상의 사용자 입력을 수신할 수 있다.
비언어적 캐릭터 큐 모듈(124)은 VR 장면으로부터 입력을 수신하고 장면 입력에 기초하여 비언어적 의사소통 애니메이션을 생성하도록 또한 구성될 수 있다. 예를 들어, 비언어적 캐릭터 큐 모듈(124)은 가상 캐릭터 조인트 위치를 입력으로서뿐만 아니라 VR 장면에서 다양한 소품의 위치와 같은 다른 환경 입력을 이용할 수 있다. 시스템은 또한 VR 경험과 관련된 상태 정보를 사용할 수 있다.
비언어적 캐릭터 큐 모듈(124)에 의해 출력된 비언어적 커뮤니케이션 애니메이션 데이터는 사용자 및 장면 입력에 기초하여 비언어적 커뮤니케이션 애니메이션이 가상 캐릭터의 애니메이트션된 퍼포먼스에 레이어링되게 할 수 있다. 예를 들어, 가상 캐릭터가 수행할 소스 애니메이션 또는 베이스 애니메이션이 결정될 수 있고, 별도의 비언어적 커뮤니케이션 애니메이션이 또한 결정될 수 있다. 소스 애니메이션은 가상 캐릭터가 제 1 방식으로 애니메이션되도록 할 수 있다(예를 들어, 애니메이션 리그의 조인트 세트에 대한 제 1 방향 및/또는 위치 세트를 정의할 수 있다). 비언어적 커뮤니케이션 애니메이션 데이터는 애니메이션 리그의 하나 이상의 조인트 위치가 더 조정되어 수정된 조인트 위치 세트를 생성하도록 할 수 있다. 예를 들어, 베이스 애니메이션으로 인해 가상 캐릭터가 사용자를 향해 걸어 갈 수 있다. 별도의 미러링 비언어적 커뮤니케이션 애니메이션으로 인해 가상 캐릭터가 사용자를 향해 걷는 동안 가상 캐릭터가 사용자를 미러링할 수 있다. 또는 별개의 보이는 비언어적 커뮤니케이션 애니메이션으로 인해 가상 캐릭터가 사용자를 향해 걸어가는 동안 가상 캐릭터가 사용자와 계속 눈을 마주칠 수 있다. 절차적 조인트 수정은 기존 애니메이션을 수정하는 직관적이고 직접적인 메커니즘을 제공한다. 다른 실시예에서, 하나 이상의 비언어적 커뮤니케이션 애니메이션 및 레이어가 함께 블렌딩될 수 있다. 애니메이션의 블렌딩 또는 레이어링은 모든 애니메이션 리그 조인트에서 또는 조인트의 특정 서브 세트 또는 영역에서만 발생할 수 있다. 이 접근 방식을 통해 아티스트는 비언어적 퍼포먼스를 명시적으로 애니메이션할 수 있다. 블렌딩의 본질은 임의로 복잡할 수 있다. 캐릭터 비언어적 커뮤니케이션 모듈(124)에 관한 더 자세한 내용은 도 3을 참조하여 아래에 제공될 것이다.
단순 캐릭터 리그 애니메이션 모듈(126)은 입력으로서 (예를 들어, 애니메이션 드라이버 모듈(120)로부터) 애니메이션 드라이버, (예를 들어, 캐릭터 인터랙티브 제약 모듈(122)로부터) 인터랙티브 제약 및 (예를 들어, 비언어적 캐릭터 큐 모듈(124)로부터) 비언어적 커뮤니케이션 애니메이션 데이터를 수신하고, 이들 입력에 기초하여 단순 캐릭터 리그 조인트 계층구조를 애니메이션화하도록 구성될 수 있다. 단순 캐릭터 리그 애니메이션 모듈(126)은 애니메이션 드라이버 모듈(120)로부터 애니메이션 클립, 블렌딩 가중치 및 시간 세트를 수신할 수 있다. 애니메이션 클립 세트에 대한 캐릭터 애니메이션 데이터는 데이터 임포트 모듈(118)로부터 수신될 수 있다. 비언어적 캐릭터 큐 모듈(124)로부터 애니메이션에 대한 수정이 수신될 수 있다. 다음으로, 단순 캐릭터 리그 애니메이션 모듈(126)은 애니메이션 및 블렌딩에 기초하여 단순 캐릭터 리그 조인트 계층구조를 업데이트할 수 있다. 마지막으로, 단순 캐릭터 리그 애니메이션 모듈(126)은 캐릭터 인터랙티브 제약 모듈(122)로부터 수신된 인터랙티브 제약에 기초하여 조인트 위치를 수정할 수 있다.
단순 캐릭터 리그 애니메이션 모듈(126)은 실시간 엔진에서 하나 이상의 애니메이션을 트리거, 블렌딩 및/또는 레이어링하도록 구성될 수 있다. 이는 상태 머신, 비선형 타임라인 툴 및/또는 이벤트 기반 트리거의 사용을 포함해 다양한 방법으로 달성될 수 있다. 애니메이션은 전체적으로 또는 부분적으로 사전 정의된 마스크를 사용하여 결합 및 블렌딩될 수 있다. 이를 통해 레이어링 퍼포먼스를 만들 수 있다. 예를 들어, 얼굴 표정 또는 손 제스처는 사용자 입력 또는 동작에 기초하여 수정될 수 있다. 단순 캐릭터 리그 애니메이션 모듈(126)은 로컬 조인트 변환을 블렌딩하고 정점 오프셋의 가중치를 계산하여 (아래에서 더 상세히 논의되는) 복합 모델 변형 모듈(128)을 구동할 수 있다.
복합 모델 변형 모듈(128)은 단순 캐릭터 리그 애니메이션 모듈(126)에 의해 수행된 단순 캐릭터 리그 애니메이션 및 정점 오프셋 데이터에 기초하여 최종 캐릭터 모델 변형을 계산하도록 구성될 수 있다. 상술한 바와 같이, 데이터 익스포트 모듈(112)에 의해 익스포트되고 데이터 임포트 모듈(118)에 의해 임포트된 캐릭터 애니메이션 데이터는 애니메이션의 매 프레임에 대한 캐릭터 모델에서 각 정점에 대한 프레임 당 오프셋을 상세히 설명하는 프레임 당 정점 오프셋 데이터를 포함할 수 있다. 정점 오프셋 데이터는 복합 캐릭터 리그 변형을 시뮬레이션하는 데 사용될 수 있지만 단순 캐릭터 리그만 실제로 실시간으로 변형되었다. 캐릭터 메시상의 모든 컨트롤 정점에 대해, 복합 모델 변형 모듈(128)은 단순 캐릭터 리그 조인트 스키닝을 수정된 조인트 계층구조뿐만 아니라 (격자 또는 스무딩과 같은) 추가적인 단순 캐릭터 리그 메시 디포머에 적용한 다음 복합 캐릭터 리그 메시의 정점 오프셋을 적용할 수 있다. 이는 상이한 애니메이션으로부터의 정점 오프셋 세트를 블렌딩 및/또는 애니메이션 드라이버에 기초한 상이한 애니메이션으로부터의 정점 오프셋의 레이어링을 포함할 수 있다. 복합 모델 변형 모듈(128)에 관한 더 자세한 내용은 도 4를 참조로 아래에 제공될 것이다.
모델 테셀레이션 모듈(model tessellation module)(130)은 캐릭터 모델을 테셀레이트 및 렌더링하도록 구성될 수 있다. 다각형 모델은 테셀레이션 및 렌더링될 수 있지만 최종 캐릭터 변형은 (전통적으로 게임 캐릭터와 관련된 모습이) 거칠고 패싯된(faceted) 것처럼 보인다. 최종 모델이 매끄럽고 고충실도로(장편 영화 캐릭터와 관련된 모습으로) 보이도록 하기 위해, 모델 테셀레이션 모듈(130)은 일 실시예에서 Catmull-Clark 서브디비전 서피스(subdivision surfaces)를 실시간으로 테셀레이트하고 렌더링할 수 있다. 모델 테셀레이션 모듈(130)은 변형된 복합 모델에 대한 1회 서브디비전 반복을 테셀레이트하고 정점 법선 및 접선을 계산할 수 있다. 이 서브디비전된 테셀레이션 모델은 래스터화를 위해 렌더링 파이프라인 모듈(132)로 전달될 수 있다. 모델 테셀레이션 모듈(130)에 관한 더 자세한 내용은 도 5를 참조하여 아래에 제공될 것이다.
도 2는 본 개시의 일 실시예에 따른 예시적인 데이터 익스포터 모듈(202)을 도시한 것이다. 일부 실시예에서, 도 1a의 데이터 익스포트 모듈(112)은 데이터 익스포트 모듈(202)로서 구현될 수 있다. 도 2의 예에 도시된 바와 같이, 데이터 익스포트 모듈(202)은 애니메이션 익스포트 모듈(204) 및 데이터 압축 모듈(206)을 포함할 수 있다.
애니메이션 익스포트 모듈(204)은 실시간 프로세싱 엔진(예를 들어, 실시간 엔진 모듈(116))이 사용하기 위해 캐릭터 애니메이션 데이터를 생성 및 익스포트하도록 구성될 수 있다. 일 실시예에서, 애니메이션 익스포터 모듈(204)은 적어도 2개의 입력, 즉, (1) 복합 캐릭터 리그의 모든 정점의 월드-공간 위치; 및 (2) 단순 캐릭터 리그를 수신할 수 있다. 일 실시예에서, 단순 캐릭터 리그는 (a) 컨트롤 조인트가 배제된 복합 캐릭터 리그의 중요한 변형 조인트의 서브 세트를 나타내는 단순화된 골격; (b) 캐릭터 모델의 전체 해상도 사본; (c) 골격과 모델 사이의 관계를 제공하는 스키닝 가중치 세트; 및 (d) 스키닝 모델(예를 들어, 선형 블렌드 스키닝 또는 듀얼 쿼터니언 스키닝(dual quaternion skinning)). 애니메이션의 각 프레임 및 모델의 각 정점에 대해, 애니메이션 익스포트 모듈(204)은 복합 캐릭터 리그와 단순 캐릭터 리그의 가중치 및 영향을 끼친 변형 매트릭스에 대한 단순 캐릭터 리그의 변형된 결과 사이의 오프셋을 계산하도록 구성될 수 있다.
일 실시예에서, (4개의 조인트를 갖는) 선형 블렌드 스키닝 방정식은 다음과 같이 표현될 수 있다:
여기서, v'는 변형된 정점 위치, v는 정점의 기준 위치, w는 주어진 조인트에 대한 스키닝 가중치, R은 기준 상태에서 주어진 조인트의 변형, M은 변형된 상태에서 주어진 조인트의 변형이다.
결합된 변환(S)을 생성하기 위해 합은 다음과 같이 뽑아낼 수 있다:
그런 다음 오프셋(o)을 계산할 수 있다:
여기서, v"는 복합 캐릭터 리그에서 정점의 월드-공간 위치이고, S는 단순 캐릭터 리그에 의해 생성된 결합된 변환이며, v는 정점의 기준 위치이다. S는 듀얼 쿼터니언 스키닝과 같은 다른 스키닝 방법에 의해 생성될 수 있음에 유의해야 한다. S는 또한 격자 및 스무딩 연산과 같은 추가 디포머에서 생성될 수도 있다.
데이터 압축 모듈(206)은 데이터 익스포트 모듈(202)에 의해 익스포트될 데이터를 압축하도록 구성될 수 있다. 데이터 익스포트 모듈(202)에 의해 익스포트된 데이터(예를 들어, 캐릭터 리그 데이터, 캐릭터 애니메이션 데이터)는 공간적 및 시간적 코히어런스를 모두 가져, 압축성이 뛰어나다.
특정 실시예에서, 애니메이션을 통해 캐릭터 모델의 각 정점에 대해 타이트 바운딩 박스가 계산될 수 있으며, 밀리미터 미만의 정확도를 유지하면서 정점 오프셋이 하위 (예를 들어, 8 또는 16 비트) 정수를 사용하여 양자화될 수 있게 한다. 일 실시예에서, 데이터 압축 모듈(206)은 애니메이션 전체에 걸쳐 정점에 대한 오프셋의 최소 및 최대 X, Y 및 Z 값을 추적함으로써 모델에서 각 정점에 대한 타이트 바운딩 박스를 계산하도록 구성될 수 있다. 그런 다음, 하위 정수를 사용하여 정점 오프셋을 바운딩 박스에 포함시킬 수 있다. 특정 실시예에서, 8 비트 양자화가 사용될 수 있다. 많은 경우에, 8 비트 양자화는 눈에 보이지 않는 정밀도 손실을 나타내는 한편, 데이터의 32 비트 단일 정밀도의 부동 소수점 표현에 비해 4배의 개선을 제공한다. 특정 실시예에서, 하위 정수는 비선형 방식으로 실제 거리를 나타낼 수 있어서, 면에 비해 바운딩 박스의 중심을 향해 바이어스가 관찰되는 애니메이션에 걸쳐 정점 오프셋 분포를 더 잘 포착할 수 있다(예를 들어, 8 비트값은 정수로 해석되지 않으나, 대신 1 비트 부호, 5 비트 가수 및 2 비트 지수를 갖는 부동 소수점 숫자로 처리된다). 특정 실시예에서, 하위 정수는 연속 애니메이션 프레임 사이의 증분 실제 거리를 나타낼 수 있다(예를 들어, 값 1, 2, 5 및 4를 갖는 연속 오프셋은 1, +1(= 2-1), +3(= 5-2) 및 -1(= 4-5)로 표시된다).
다양한 실시예에서, 데이터 압축 모듈(206)은 X, Y 및 Z 정점 오프셋 값을 단일 다중 채널 오디오 스트림의 3개 채널로 매핑함으로써 캐릭터 애니메이션의 8 비트 또는 16 비트 양자화를 MP3 및 WAV와 같은 손실 또는 무손실 오디오 압축 기술과 결합시키도록 구성될 수 있다. 다양한 실시예에서, 데이터 압축 모듈(206)은 X, Y 및 Z 정점 오프셋 값을 사진 픽셀의 R, G 및 B 컬러값으로 매핑하고 순차적인 애니메이션 프레임들에 대해 인접한 픽셀을 사용함으로써 캐릭터 애니메이션의 8 비트 또는 16 비트 양자화를 JPEG 및 PNG와 같은 손실 또는 무손실 사진 압축 기술과 결합하도록 구성될 수 있다. 다양한 실시예에서, 데이터 압축 모듈(206)은 X, Y 및 Z 정점 오프셋 값을 비디오 프레임의 R, G 및 B 컬러값으로 매핑함으로써 캐릭터 애니메이션의 8 비트 또는 16 비트 양자화를 H.264, H.265 및 VP9와 같은 손실 또는 무손실 비디오 압축 기술과 결합하도록 구성될 수 있다. 모바일 디바이스(예를 들어, 전화, 태블릿) 및 컴퓨터와 같은 AR 및 VR에 사용되는 많은 컴퓨팅 디바이스에는 CPU 또는 GPU 자원의 소비를 최소화하면서 인기있는 사진, 오디오 및/또는 비디오 압축 포맷을 디코딩하는 전용 하드웨어가 포함되어 있다.
다양한 실시예에서, 데이터 압축 모듈(206)은 데이터 익스포트 모듈(202)에 의해 익스포트된 데이터의 공간적 및 시간적 코히어런스를 이용하기 위해 통계 분석 및 머신 러닝 기술을 적용하도록 구성될 수 있다. 일 예시적인 구현으로서, PCA(Principal Component Analysis)는 캐릭터 애니메이션 데이터가 주어진 허용 가능한 수준의 오차 내에서(예를 들어, 99% 정확도 내에서) 재생성될 수 있도록 모든 타겟 포즈(캐릭터 애니메이션 데이터 내의 애니메이션 프레임 데이터)를 투영하기 위해 저차원 공간을 식별할 수 있다. K-평균과 같은 클러스터링 알고리즘과 결부해 클러스터된 PCA 접근 방식을 사용하여 더 나은 결과를 얻을 수 있다. 특정 실시예에서, 키프레임 감소 기술을 통해 시간에 따른 정점 오프셋의 파라미터화된 분석 근사 표현(예를 들어, 다항식, 정현파 함수, 클램핑 큐빅 베지에 곡선(clamped cubic Bezier curves)과 같은 스플라인 곡선)은 상당한 절감 기회를 제공한다. 특정 실시예에서, 스플라인 곡선은 대략 시간에 따른 정점 오프셋을 나타내고, 잘 알려진 커브 피팅 알고리즘을 통해 파라미터들이 최소화되도록 이들 곡선의 파라미터(예를 들어, 스플라인의 순서 및 스플라인의 제어점의 수 및 위치)가 선택된다. 특정 실시예에서, 제어점의 제거로 곡선이 지정된 허용 임계치를 넘어 피팅된 오프셋으로부터 벗어나지 않도록 하는 모든 제어점을 제거함으로써 제어점의 수가 최소화된다. 특정 실시예에서, 스플라인 제어점의 제거는 스플라인 곡선의 형상에 대한 제거 영향을 최소화하기 위해 제거된 점의 위치를 향해 인접한 스플라인 제어점을 이동시키는 것과 결합된다.
일 실시예에서, 캐릭터 모델의 각 정점은 표준 UV 텍스처 룩업 기술을 사용하여 텍스처 위치에 매핑될 수 있다. 이는 데이터의 공간 코히어런스(및 압축성)가 향상되지만 정점에 매핑되지 않은 픽셀들에 대해 텍스처 메모리 저장 공간이 낭비된다. 다른 실시예에서, 모델의 각 정점과 비디오 스트림의 각 픽셀 사이의 일대일 상관이 인덱싱 방식을 통해 이루어질 수 있다. 특정 예에서, 이 방식의 품질 및 압축성은 인덱싱에 의존할 수 있다. 데이터의 더 나은 공간 코히어런스를 보장하기 위해, 통계 분석을 사용하여 클러스터링 및 분류(sorting)를 수행할 수 있다. 일 실시예에서, 데이터는 K-평균을 사용하여 클러스터링될 수 있다. 그런 다음, PCA를 각 클러스터에 적용할 수 있으며, 정점은 최대 고유 벡터에 시간 시퀀스를 투영함으로써 클러스터 내에서 분류될 수 있다.
도 3은 본 개시의 실시예에 따른 예시적인 비언어적 캐릭터 큐 모듈(302)을 도시한 것이다. 일부 실시예에서, 도 1a의 비언어적 캐릭터 큐 모듈(124)은 비언어적 캐릭터 큐 모듈(302)로서 구현될 수 있다. 상술한 바와 같이, 비언어적 캐릭터 큐 모듈(302)은 가상 캐릭터에서 하나 이상의 비언어적 커뮤니케이션 애니메이션을 시행하기 위한 비언어적 커뮤니케이션 애니메이션 데이터를 생성하도록 구성될 수 있다. 비언어적 캐릭터 큐 모듈(302)은 하나 이상의 사용자 입력 및/또는 VR 환경 상태 정보에 기초하여 비언어적 커뮤니케이션 애니메이션 데이터를 생성할 수 있다. 도 3의 예에 도시된 바와 같이, 비언어적 캐릭터 큐 모듈(302)은 눈 맞춤 및 주시 모듈(304), 미러링 모듈(306), 증가된 활동 모듈(308) 및 동적 퍼포먼스 모듈(310)을 포함할 수 있다.
눈 맞춤 및 주시 모듈(304)은 사용자 입력 및/또는 VR 환경 상태 정보에 기초하여 룩킹 애니메이션 데이터를 생성하도록 구성될 수 있다. 룩킹 애니메이션 데이터는 가상 캐릭터가 타겟 위치를 보도록 하기 위해 (예를 들어, 단순 캐릭터 리그 애니메이션 모듈(126)에 의해) 사용될 수 있다. 비언어적 커뮤니케이션의 가장 강력한 형태 중 하나는 사람이 다른 사람을 보고 직접 눈을 마주치는 눈 맞춤이다. 이는 두 사람 사이의 참여(engagement) 및 연결을 구축한다. 그러나, 장기간 눈을 맞추면 때로 불편함이 발생할 수 있다. 대조적으로, 눈 맞춤을 피하는 것은 역효과, 무관심의 신호, 참여 부족, 또는 심지어 회피가 될 수 있다.
VR은 장면에서 청중에게 완전한 대리인을 제공한다. 그들은 사방을 볼 수 있으므로 이야기의 중요한 부분을 놓칠 수 있다. VR 컨텐츠 제작자는 시청자의 시선을 적시에 적절한 장소로 향하게 하는 것이 바람직할 수 있다. 가상의 캐릭터가 사용자를 직접 바라보고 따라가도록 눈의 방향을 절차적으로 조정할 경우, 사용자는 자신의 주의를 캐릭터에 완전히 다시 집중함으로써 자연스럽게 반응한다. 가상 캐릭터는 눈 맞춤을 유지하고, 사용자와 연결 해제하거나 눈 맞춤을 끊지 않고도 (예를 들어, 하늘을 바라 보는 등) 불편함을 방지하기 위해 정기적 간격으로 눈 맞춤을 일시적으로 중단하고 (이미 그녀를 보고있는) 사용자가 다음 이야기 호흡에 집중하게 이끌 수 있다. 일 실시예에서, 눈 맞춤 및 주시 모듈(304)은 캐릭터가 사용자를 보도록 하는 룩킹 애니메이션 데이터를 생성하도록 구성될 수 있다. 사용자가 캐릭터를 되돌아보고 있다고 판단될 경우, 눈 맞춤 및 주시 모듈(304)은 눈 맞춤을 유지하거나, 눈 맞춤을 중지하거나, 사용자가 다른 객체를 보도록 지시하기 위해 캐릭터가 다른 객체를 보도록 하는 제 2룩킹 애니메이션 데이터 세트를 생성하도록 구성될 수 있다.
일 실시예에서, 눈 맞춤 및 주시 모듈(304)은 캐릭터가 시청자의 머리 또는 손 위치 또는 다른 객체와 같은 타겟 위치를 직접 볼 수 있도록 가상 캐릭터의 눈(들), 머리(들), 목(들) 및/또는 신체 구성 및 위치를 조정(예를 들어, 캐릭터 리그/모델의 관련된 정점 및/또는 조인트를 조정)하도록 구성될 수 있다. 눈 맞춤 및 주시 모듈(304)은 캐릭터의 눈 맞춤을 동적으로 조정하기 위해 시간에 따라 임의의 수의 타겟 위치들 사이에서 블렌딩하도록 구성될 수 있다.
눈 맞춤 및 주시 모듈(304)은 사용자의 머리를 가상 캐릭터의 눈 맞춤 타겟으로 설정하기 위해 사용자의 HMD 헤드 위치를 입력으로서 사용하도록 구성될 수 있다. 일 실시예에서, 눈 맞춤 및 주시 모듈(304)은 가상 캐릭터가 시간에 따라 사용자의 머리와 사용자의 손 사이에서 눈 맞춤을 절차적으로 전환할 수 있도록 HMD 헤드 위치 및 하나 이상의 핸드 컨트롤러 위치를 입력으로서 사용하도록 구성될 수 있다. 일 실시예에서, 컴퓨터 비전 및 모션 캡처 기술을 사용하여 사용자의 신체 및 얼굴의 일련의 특징이 추적된다. 눈 맞춤 및 주시 모듈(304)은 추적되는 임의의 사용자 특징을 추적하도록 구성될 수 있다. 다른 실시예에서, 사용자의 눈 방향은 머리 위치 및 방향과 독립적으로 추적된다. 예를 들어, 사용자는 한 방향에 대면해 다른 방향을 보고 있을 수 있다. 눈 맞춤 및 주시 모듈(304)은 머리 위치 및 방향과 별개로 사용자의 눈 방향을 추적하도록 구성될 수 있다. 일 실시예에서, 눈 맞춤 및 주시 모듈(304)은 사용자의 HMD 헤드 및 핸드 컨트롤러 위치뿐만 아니라 다른 캐릭터의 위치(예를 들어, 다른 캐릭터의 헤드) 모두를 입력으로서 사용하도록 구성될 수 있다. 이를 통해 가상 캐릭터는 시청자와 장면내 다른 캐릭터 간의 눈 맞춤을 변경할 수 있다. 다른 실시예에서, 시스템은 다수의 사용자와 연관된 다수의 HMD 헤드 및 핸드 컨트롤러 위치를 사용하여 공유 경험에서 다수의 사용자 사이의 가상 캐릭터에 의한 눈 맞춤을 가능하게 한다.
눈 맞춤 및 주시 모듈(304)은 타겟 위치에 기초하여 가상 캐릭터에 대한 애니메이션 리그를 조정하도록 구성될 수 있다. 가장 간단한 조정은 타겟 위치를 기준으로 캐릭터의 눈 조인트 위치를 절차적으로 수정하는 것이다. 그러나, 이 해결책은 달성될 수 있는 눈 맞춤의 범위, 움직임의 현실감, 또는 캐릭터에 의해 전달되는 감정을 제한할 수 있다(예를 들어, 머리 또는 목의 움직임이 전혀 없는 극단적인 눈 움직임은 캐릭터가 고정되어 있거나 의심한다고 암시할 수 있다). 다른 실시예에서, 눈 맞춤 및 주시 모듈(304)은 타겟 위치를 보기 위해 얼머나 멀리 눈을 돌려야 하는지에 기초하여 눈 조인트 위치와 함께 일련의 추가 조인트(예를 들어, 캐릭터의 신체, 목 및 머리에 있는 하나 이상의 조인트)를 절차적으로 수정할 수 있다. 눈 맞춤 및 주시 모듈(304)은 또한 캐릭터가 시간에 따라 다른 객체를 볼 수 있도록 타겟 위치를 절차적으로 수정하도록 구성될 수 있다.
일 예시적인 실시예에서, 애니메이션 조인트는 타겟 위치에 직접 블렌딩되거나 고정될 수 있다. 이 접근법은, 특정한 경우에, 이러한 애니메이션 조인트에 존재하는 임의의 소스 애니메이션을 제거하고 중요한 액팅 큐를 제거할 수 있다는 점에서 제한될 수 있다. 다른 실시예에서, 다양한 목, 머리 및 눈 조인트가 애니메이션 컨텐츠 생성 도구에서 카메라를 바라 보는 것에 대해 애니메이션될 수 있다. 실시간 처리 엔진에서, 눈 맞춤 및 주시 모듈(304)은 카메라를 타겟 위치로 본 다음, 카메라 디폴트 보기와 카메라 타겟 보기 사이의 각 목, 머리 및 눈 조인트를 블렌딩할 수 있다. 이 방법을 사용하면 캐릭터가 특정 타겟 위치를 볼 수는 있지만 보는 것에 대해 레이어링된 원래의 애니메이션 퍼포먼스를 유지할 수 있다. 이 접근법은 또한 본 명세서에서 더 상세히 설명되는 바와 같이 미러링 및 증가된 활동과 같은 다른 인터랙티브 애니메이션에서 구현될 수 있다.
일 실시예에서, 눈 맞춤 및 주시 모듈(304)은 애니메이션 리그를 수정하는 일련의 (예를 들어, 복수의) 룩킹 애니메이션 사이에서 블렌딩하도록 구성될 수 있다. 이를 통해 아티스트는 타겟 위치를 기준으로 캐릭터가 조정되는 방식을 정확하게 조정할 수 있다. 또한 애니메이터가 룩킹 거동에 개성을 넣을 수 있다. 다른 실시예에서, 눈 맞춤 및 주시 모듈(304)은 아이 다트(eye darts)와 같은 미묘한 퍼포먼스를 포착하기 위해 추가 애니메이션을 블렌딩하도록 구성될 수 있다.
미러링 모듈(306)은 사용자 입력 및/또는 가상 환경 상태 정보에 기초하여 미러링 애니메이션 데이터를 생성하도록 구성될 수 있다. 미러링 애니메이션 데이터는 (예를 들어, 단순 캐릭터 리그 애니메이션 모듈(126)에 의해) 사용될 수 있어서, 캐릭터와 사용자 간에 크기 또는 외관의 차이에도 불구하고 가상 캐릭터가 사용자의 움직임 및 동작을 미러링하면서도 여전히 현실적인 캐릭터 움직임을 생성할 수 있다. 또 다른 강력한 비언어적 큐는 모방 또는 미러링이다. 두 사람은 종종 자신의 행동을 깨닫지 못한 채 무의식적으로 서로의 행동을 반영한다. 이 인간 행동은 연결을 구축하고 엔터테인먼트 상황뿐만 아니라 치료 또는 어린이 교육과 같은 임상 또는 교육 상황에서도 사용된다. 미러링 모듈(306)은 가상 캐릭터가 사용자의 행동을 미러링하여 사용자와의 미묘한 연결을 구축할 수 있게 한다.
일 예에서, 미러링 모듈(306)은 HMD 위치 및 방향 정보를 입력으로서 수신하고 머리 기울기와 같은 헤드 변환으로부터 특정 관심 행동을 추출할 수 있다. 미러링 모듈(306)은 가상 캐릭터가 시간 지연 후에, 예를 들어 4초 지연 후에 사용자의 행동을 미러링하게 하는 미러링 애니메이션 데이터를 생성할 수 있다. 미러링 모듈(306)은 가상 캐릭터가 사용자의 머리 기울기를 모방하게 하는 미러링 애니메이션 데이터를 생성할 수 있다. 일 실시예에서, 머리 기울기 변환은 시간 지연 후에 애니메이션 리그의 헤드 조인트에 절차적으로 레이어링될 수 있다. 다른 예에서, 미러링 모듈(306)은 시간 지연 후에 애니메이션 리그의 헤드 및 핸드 조인트를 절차적으로 수정하기 위해 입력으로서 HMD 위치 및 핸드 컨트롤러 위치를 사용할 수 있다. 일 실시예에서, 입력 변환은 미러링 애니메이션 사이를 블렌딩하여 애니메이션 리그를 수정하는 데 사용될 수 있다. 예를 들어, 머리 기울기 애니메이션에는 머리 회전시 웃는 캐릭터와 같은 얼굴 특징이 통합될 수 있다. 일 실시예에서, 미러링 모듈(306)은 전신 추적에 기초하여 사용자의 전신 움직임을 미러링할 수 있다. 다른 실시예에서, 미러링 모듈(306)은 사용자 동작을 미러링하기 전에 시간 지연을 동적으로 조정할 수 있다.
증가된 활동 모듈(308)은 사용자 입력에 기초하여 활동 레벨 애니메이션 데이터를 생성하도록 구성될 수 있다. 활동 레벨 애니메이션 데이터는 가상 캐릭터의 활동 레벨의 조정을 야기하기 위해 (예를 들어, 단순 캐릭터 리그 애니메이션 모듈(126)에 의해) 사용될 수 있다. 증가된 활동 수준은 관심 및 흥분과 같은 긍정적 인 느낌, 신경질, 스트레스 및 두려움과 같은 부정적인 느낌 또는 낮은 온도와 같은 환경적 요인에 대한 자율적 반응을 나타낼 수 있다. 어린이들에게는 이 흥분 수준이 꽤 분명하다. 심지어 흥분된 성인은 더 조바심내고 더 많은 대화를 나누며 더 빨리 이야기한다. 상승하는 활동 수준은 두 성인이 더 가까운 관계의 가능성을 탐색하고 있다는 잠재 의식적 큐가 될 수 있다. 증가된 활동 모듈(308)은 컨텐츠 생성자가 VR 경험에 대한 상태 정보에 기초하여 증가된 활동을 절차적으로 레이어링할 수 있게 한다. 이 동작은 애니메이션의 강도를 높이거나 캐릭터 음성의 속도를 높여 애니메이션 리그 조인트를 조정함으로써 절차적으로 레이어링할 수 있다. 다른 실시예에서, 증가된 활동은 조바심 행동 또는 신경질과 같은 특정 애니메이션을 블렌딩함으로써 달성된다.
동적 퍼포먼스 모듈(310)은 사용자 입력 및/또는 가상 환경 상태 정보에 기초하여 캐릭터 퍼포먼스를 동적으로 조정하도록 구성될 수 있다. 예를 들어, 동적 퍼포먼스 모듈(310)은 사용자가 항상 퍼포먼스를 명확하게 볼 수 있도록 사용자 위치 정보에 기초하여 캐릭터 스테이징을 조정하도록 구성될 수 있다. 다른 예로서, 사용자는 캐릭터가 차갑게 보이도록 하는 것과 같은 레이어링된 캐릭터 응답을 트리거할 수 있다. 이 예에서, 동적 퍼포먼스 모듈(310)은 떨고 있는 애니메이션이 캐릭터의 기존 액션 위에 레이어링되도록 할 수 있다.
추가적인 예들에서, 동적 퍼포먼스 모듈(310)은 윙크, 눈 깜박임 추가 및/또는 사용자의 눈썹을 올리는 것과 같이 캐릭터가 필요에 따라 얼굴 표정을 조절할 수 있도록 구성될 수 있다. 절차적 비언어적 조정은 내러티브의 특정 지점에서 또는 사용자 응시 또는 사용자 터치와 같은 사용자 응답에 기초하여 이루어질 수 있다.
동적 퍼포먼스 모듈(310)은 캐릭터가 퍼포먼스 동안 조작하거나 사용하는 소품의 조정 및/또는 스와핑을 지원할 수 있다. 동적 퍼포먼스 모듈(310)은 사용자에 관한 외부 정보에 기초하여 한 편의 컨텐츠에 대한 소품을 교환할 수 있다. 이는 한 편의 컨텐츠에 제품 배치를 위한 소품을 동적으로 조정하거나 변경하는 데 사용될 수 있다. 동적 소품은 또한 사용자에 대한 사전 지식을 기반으로 컨텐츠를 개인화할 수 있다. 소품에는, 예를 들어 옷, 머리카락이나 피부색과 같은 캐릭터 겉모습의 다른 요소가 포함될 수 있다.
도 4는 본 개시의 일 실시예에 따른 예시적인 복합 모델 변형 모듈(402)을 도시한 것이다. 일부 실시예에서, 도 1a의 복합 모델 변형 모듈(128)은 복합 모델 변형 모듈(402)로서 구현될 수 있다. 도 4의 예에 도시된 바와 같이, 복합 모델 변형 모듈(402)은 데이터 재구성 모듈(404) 및 스킨 계산 쉐이더 모듈(406)을 포함할 수 있다.
데이터 재구성 모듈(404)은 런타임에서 임의의 필요한 캐릭터 애니메이션 데이터(예를 들어, 정점 애니메이션 데이터)를 압축 해제하고, 단순 캐릭터 리그의 애니메이션 동안 (예를 들어, 애니메이션 모듈(110)에 의해) 계산된 가중치를 사용하여 저장된 오프셋을 블렌딩하고, 스키닝 변환을 적용한다. 예를 들어, 컴퓨팅 쉐이더를 사용하여 성능을 높일 수 있다. PCA와 같은 통계적 방법이 캐릭터 애니메이션 데이터에 적용된 경우, 데이터 재구성 모듈(404)은 하위 차원 데이터 공간으로부터 정점의 전체 세트를 재구성하도록 구성될 수 있다.
스킨 컴퓨팅 셰이더 모듈(406)은 다음과 같이 주어진 정점에 대한 단순 캐릭터 변형에 기초하여 완전한 품질의 캐릭터(즉, 복합 캐릭터) 변형을 재구성하도록 구성될 수 있다:
여기서, v"는 완전한 품질의 복합 캐릭터 리그로부터 정점의 재구성된 월드-공간 위치이고, S는 단순 캐릭터 리그에 의해 생성된 결합 변환이며, v는 모델의 기준 위치이며, x는 주어진 애니메이션 클립의 가중치이고, o는 애니메이션 클립의 주어진 프레임에서 정점의 오프셋이다. 결과는 데이터 익스포트 모듈(202)에 의해 제공된 데이터의 재구성이지만, 단순 캐릭터 리그 애니메이션 모듈(126)로부터 절차적 애니메이션이 적용된다. 이 재구성은 데이터 익스포트 모듈(202)에 의해 압축이 사용되지 않았거나 무손실 압축이 사용된 경우에 완벽하다; 그렇지 않고, 손실 압축이 사용된 경우, 재구성은 근사치이다.
도 5는 본 개시의 일 실시예에 따른 예시적인 모델 테셀레이션 모듈(502)을 도시한 것이다. 일부 실시예에서, 도 1a의 모델 테셀레이션 모듈(130)은 모델 테셀레이션 모듈(502)로서 구현될 수 있다. 도 5의 예에 도시된 바와 같이, 모델 테셀레이션 모듈(502)은 서브디비전 테셀레이터 모듈(504) 및 법선 및 접선 계산 모듈(506)을 포함할 수 있다.
서브디비전 테셀레이터 모듈(504)은 캐릭터 애니메이션 지오메트리를 반반하게 다듬어 개선된 메시를 생성하도록 구성될 수 있다. 일 실시예에서, 서브디비전 테셀레이터 모듈(504)은 Catmull-Clark 서브디비전 표면을 사용하여 캐릭터 애니메이션 지오메트리를 반반하게 할 수 있다. 모든 서브디비전된 정점 위치에 대해 스텐실 가중치를 사전 계산할 수 있으므로, 실시간 계산을 겉 정점 위치의 간단한 선형 조합으로 만들 수 있다. 일 실시예에서, 서브디비전 테셀레이터 모듈(504)은 점진적으로 더 평탄한 버전의 메시를 생성하는 재귀적 개선 기술(recursive refinement technique)을 사용하여 캐릭터 애니메이션 지오메트리를 반반하게 하고 개선하도록 구성될 수 있다. 각 반복에서:
·메시의 각면은 중심에서 추가 정점(F)을 생성한다;
·메시의 각 가장자리는 중심과 입사면(F)의 중심의 가중치 조합으로 추가 정점(E)을 생성한다;
·메시의 각 정점(V)은 원래 위치, 입사 가장자리(E)의 중심 및 입사면(F) 중심의 가중치 조합으로 배치된다.
도 6은 상술한 재귀 기술의 2개의 샘플 반복을 도시한 예시적인 시나리오(600)를 나타낸다. 초기(또는 베이스) 메시(602)는 제 1 개선된 메시(604)를 생성하기 위해 제 1 반복에서 개선고, 이는 제 2 개선된 메시(606)를 생성하기 위해 제 2 반복에서 추가로 개선된다. 각각의 반복으로 정점, 면 및 가장자리의 수가 더 커져 점점 더 정교해진 메시가 만들어지는 것을 알 수 있다. 역대입(back-substitution)에 의해 (F) 및 (E)에 대한 (V) 및 (F)에 대한 (E)의 의존성을 단순화할 수 있다. 이 대입을 적용함으로써, 개선된 메시의 임의의 서브디비전 레벨에 있는 임의의 정점은 변형된 베이스 메시에 있는 정점의 선형 가중치 조합으로 표현될 수 있다. 선형 조합에 사용되는 가중치는 베이스 메시 토폴로지에만 의존하며, 런타임시 일정하게 유지된다. 따라서, 가중치는 파이프라인 단계로 한 번 계산되어 저장될 수 있다. 개선된 메시에서 특정 정점을 나타내는데 사용되는 가중치의 수는 베이스 메시에서 정점의 수에 의해서만 제한될 수 있지만, 특정 실시예에서, 그 수는 각각의 입사면에서 정점의 밸런스(valence) 및 정점의 수에 관련될 수 있다. 특정 실시예에서, 하드 한계가 설정될 수 있다. 예를 들어, 개선된 메시의 각 정점은 10개 이하의 가중치로 표시될 수 있다. 특정 실시예에서, 유지된 가중치는 최대 절대 크기를 갖는 가중치일 수 있다. 예를 들어, 각 정점은 10개의 가장 큰 가중치로 표시될 수 있다.
도 5로 돌아가서, 법선 및 접선 계산 모듈(506)은 메시의 이중 그래프 아날로그를 사용하여 메시(예를 들어, 개선된 메시 또는 베이스 메시)에서 각 정점에 대한 대략적인 법선 및 접선 벡터를 계산하도록 구성될 수 있다. 이 접근 방식은 임의로 변형된 기하학적 형태에서도 고품질 법선과 접선을 생성한다.
각 면 주위에 정렬된 정점을 갖는 단편 메시에서, 메시 법선에 기하학적 법선이 암시적으로 정의된다. 그러나, 반반한 메시 모양을 나타내기 위해, 각 정점에 입사면 법선의 일부 선형 조합으로 법선을 할당한 다음 이들 정점 법선을 무게 중심 가중치를 사용하여 다각형에 선형으로 보간할 수 있다. 그러나, 이 기법은 모든 정점 면의 면 법선을 주어진 정점으로 사전 계산해야 하기 때문에 계산 비용이 많이 든다. 결과적으로. 실시간 게임 엔진은 변형된 정점 위치에서 정점 법선을 거의 계산하지 않는다. 대신, 일반적으로 참조 포즈에서 한 번 계산된 다음 스키닝 가중치 및 변형을 사용하여 변형된다.
일 실시예에서, 법선 및 탄젠트 계산 모듈(506)은 4개의 균일 간격의 인접한 정점을 사용하여 정점 법선을 근사화하도록 구성될 수 있다. 일반적으로 Catmull-Clark 서브디비전과 함께 사용되는 메시와 같은 쿼드 도미넌트 메시(quad-dominant meshes)의 경우, 대부분의 정점에는 정확히 4개의 이웃이 있으므로 4개의 인접한 정점 A, B, C 및 D를 간단하고 명확하게 선택할 수 있다. 도 7은 정점(V)이 정확히 4개의 이웃(A, B, C 및 D)을 갖는 예시적인 시나리오(700)를 도시한 것이다. 이러한 시나리오에서, 법선은 다음과 같이 계산될 수 있다:
4개보다 많은 인접 정점을 갖는 가외의 정점에 대해, 법선 및 접선 계산 모듈(506)은 인접한 정점 세트로부터 4개의 균일 간격의 인접 정점을 선택하도록 구성될 수 있다. 일 실시예에서, 4개의 인접 정점은 토폴로지 고려사항만을 이용하여 선택될 수 있다. 예를 들어, 정점에 8개의 입사 에지가 있는 경우, 인접한 모든 다른 정점이 사용될 수 있다. 일 실시예에서, 4개의 인접 정점은 메시의 고유 특성을 사용하여 선택될 수 있다. 예를 들어, 4개의 인접 정점은 정점을 임의의 2개의 선택된 순차적 인접 정점에 연결하는 2개의 에지에 의해 정점에 형성된 각도가 가능한 한 90도에 가깝도록 선택될 수 있다. 도 8은 정점(V)이 4개보다 많은 인접 정점을 갖는 시나리오(800)의 예를 도시한 것이다. 예시적인 시나리오(800)에서, 정점(V)은 8개의 인접 정점을 가지며, 4개의 인접 정점(A, B, C 및 D)은 인접한 모든 정점을 선택함으로써 선택된다.
정점이 4개 미만의 인접 정점을 갖는 경계 정점의 경우, 법선 및 접선 계산 모듈(506)은 임의의 누락된 정점 대신에 정점 자체를 대체하도록 구성될 수 있다. 도 9는 정점(V)이 4개 미만의 인접한 정점을 갖는 예시적인 시나리오(900)를 도시한 것이다. 예시적인 시나리오(900)에서, 정점(V)은 단지 3개의 인접 정점(A, B 및 C)을 갖는다. 따라서, 정점(V) 자체는 제 4 인접 정점(D)으로 대체된다.
일 실시예에서, 접선 벡터는 유사한 구성을 따를 수 있다. 주어진 정점에 대해 무한한 수의 접선 벡터(정의된 법선에 수직인 임의의 벡터)가 존재하지만, 일 실시예에서, 법선 및 접선 계산 모듈(506)은 메시의 UV 파라미터화의 U방향과 정렬되는 접선 벡터를 선택하도록 구성될 수 있다. 편의상, 개시된 표현에서, 이 접선 벡터는 베이스 벡터(A-C) 및 (B-D)의 선형 조합이다. 계수는 토폴로지와 UV 파라미터화에만 의존하며, 런타임시 고정된 상태로 유지되므로 선형 조합의 가중치를 파이프라인 단계로 사전 계산할 수 있다. 일 실시예에서, 접선 벡터는 다음과 같이 계산될 수 있다:
Av, Bv, Cv, Dv는 정점 A, B, C 및 D에서 메시의 UV 파라미터화의 V성분을 나타낸다.
서브디비전 테셀레이터 모듈(504)에 의해 결정된 바와 같이 개선된 메시에 대한 정점 위치, 및 법선 및 접선 계산 모듈(506)에 의해 계산된 바와 같이, 개선된 메시의 각 정점에 대한 대략적인 법선 및 접선 벡터가 도 1a의 렌더 파이프라인 모듈(132)에 의해 소비될 수 있는 정점 쉐이더로 전달된다.
도 10은 다각형 제어 모델에 기초하여 Catmull-Clark 서브디비전 표면에 대한 정점 위치, 법선 및 접선을 생성하는 예시적인 프로세스를 상세히 설명한다. 이 파이프라인은 GPU에서의 실시간 계산에 최적화되어 있다.
도 11은 본 기술의 실시예에 따른 예시적인 방법(1100)을 도시한 것이다. 블록(1102)에서, 방법(1100)은 가상의 변형 가능한 기하학적 모델과 관련된 가상 모델 정보를 수신할 수 있고, 상기 가상 모델 정보는 제 1 복수의 변환 및 디폴트 모델에 의해 정의된 제 1 복수의 정점을 포함하는 복합 리그 및 제 2 복수의 변환들 및 제 2 복수의 정점들을 포함하는 단순 리그를 포함하며, 여기서 제 2 복수의 정점들은 디폴트 모델에 의해 정의된 제 1 복수의 정점들에 대응한다. 블록(1104)에서, 방법(1100)은 가상의 변형 가능한 기하학적 모델에 적용될 애니메이션에 기초하여 단순 리그 및 복합 리그를 변형할 수 있다. 블록(1106)에서, 방법(1100)은 오프셋 데이터의 세트를 계산할 수 있고, 상기 오프셋 데이터의 세트는, 제 1 복수의 정점에서의 각각의 정점에 대해, 상기 정점과 제 2 복수의 정점에서의 대응하는 정점 사이의 오프셋을 포함한다.
도 12는 본 기술의 실시예에 따른 예시적인 방법(1200)을 도시한 것이다. 블록(1202)에서, 방법(1200)은 가상의 변형 가능한 기하학적 모델과 관련된 가상 모델 정보를 수신할 수 있고, 상기 가상 모델 정보는 제 1 복수의 변환 및 디폴트 모델에 의해 정의된 제 1 복수의 정점을 포함하는 복합 리그 및 제 2 복수의 변환들 및 제 2 복수의 정점들을 포함하는 단순 리그를 포함하고, 여기서 제 2 복수의 정점들은 디폴트 모델에 의해 정의된 제 1 복수의 정점들에 대응한다. 블록(1204)에서, 방법(1200)은 가상의 변형 가능한 기하학적 모델에 적용될 애니메이션에 기초하여 단순 리그 및 복합 리그를 변형시킬 수 있다. 블록(1206)에서, 방법(1200)은 오프셋 데이터 세트를 계산할 수 있고, 상기 오프셋 데이터 세트는, 제 1 복수의 정점에서의 각각의 정점에 대해, 상기 정점과 제 2 복수의 정점에서의 대응하는 정점 사이의 오프셋을 포함한다. 블록(1208)에서, 방법(1200)은 가상의 변형 가능한 기하학적 모델의 실시간 애니메이션에 대해 압축된 버전의 오프셋 데이터 세트를 실시간 프로세싱 엔진으로 익스포트할 수 있다.
도 13은 본 기술의 실시예에 따른 예시적인 방법(1300)을 도시한 것이다. 블록(1302)에서, 방법(1300)은 실시간 몰입 환경에서 애니메이션될 가상의 변형 가능한 기하학적 모델을 식별할 수 있고, 상기 가상의 변형 가능한 기하학적 모델은 복수의 정점, 복수의 에지 및 복수의 면을 포함하는 가상 모델 메시를 포함한다. 블록(1304)에서, 방법(1300)은 1회 이상의 반복으로 가상 모델 메시를 반복적으로 정교하게 하여 개선된 메시를 생성할 수 있으며, 여기서 1회 이상 반복의 각 반복은 정점의 수, 에지의 수 및/또는 면의 수를 증가시킨다. 블록(1306)에서, 방법(1300)은 실시간 몰입 환경 내에서 가상의 변형 가능한 기하학적 모델의 실시간 애니메이션 동안 개선된 메시를 표현할 수 있다.
도 14는 본 기술의 실시예에 따른 예시적인 방법(1400)을 도시한 것이다. 블록(1402)에서, 방법(1400)은 실시간 몰입 환경 내에서 사용자에게 표현되는 가상 캐릭터를 식별할 수 있다. 블록(1404)에서, 방법(1400)은 가상 캐릭터에 적용될 제 1 애니메이션을 결정할 수 있다. 블록(1406)에서, 방법(1400)은 제 1 애니메이션과 동시에 가상 캐릭터에 적용될 비언어적 의사소통 애니메이션을 결정할 수 있다. 블록(1408)에서, 방법(1400)은 제 1 애니메이션 및 비언어적 의사소통 애니메이션에 기초하여 가상 캐릭터를 실시간으로 애니메이션할 수 있다.
예시적인 방법에 대한 많은 변형이 가능하다. 달리 언급되지 않는 한, 본 명세서에서 논의된 다양한 실시예의 범위 내에서 유사하거나 대안적인 순서로, 또는 병렬로 수행되는 추가적인 단계, 더 적은 단계 또는 대안적인 단계가 있을 수 있음을 이해해야 한다.
하드웨어 구현
상술한 프로세스 및 특징은 광범위한 머신 및 컴퓨터 시스템 아키텍처에 의해 그리고 광범위한 네트워크 및 컴퓨팅 환경에서 구현될 수 있다. 도 15는 본 개시의 실시예에 따라 머신이 본 명세서에 설명된 하나 이상의 실시예를 수행하게 하기 위한 명령어 세트가 실행될 수 있는 예시적인 머신(1500)을 도시한 것이다. 실시예는 하나 이상의 시스템, 방법 또는 컴퓨터 판독 가능 매체에 관한 것일 수 있다. 머신이 다른 머신에 연결(예를 들어, 네트워킹)될 수 있다. 네트워크 배치에서, 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 머신의 용량으로 작동하거나 피어-투-피어(또는 분산) 네트워크 환경에서 피어 머신으로 작동할 수 있다.
컴퓨터 시스템(1500)은 버스(1508)를 통해 서로 통신하는 프로세서(1502)(예를 들어, 중앙처리장치(CPU), 그래픽처리장치(GPU) 또는 둘 다), 메인 메모리(1504) 및 비휘발성 메모리(1506)(예를 들어, 각각 휘발성 RAM 및 비휘발성 RAM)을 포함한다. 프로세서(1502)는 병렬 처리 시스템과 같은 임의의 적합한 형태로 구현될 수 있다. 일부 경우에, 예시적인 머신(1500)은 컴퓨팅 디바이스 또는 시스템에 대응하거나 포함하거나 포함될 수 있다. 예를 들어, 일부 실시예에서, 머신(1500)은 데스크탑 컴퓨터, 랩톱 컴퓨터, 개인 휴대 정보 단말기(PDA), 어플라이언스, 웨어러블 디바이스, 카메라, 태블릿 또는 휴대폰 등일 수 있다. 일 실시예에서, 컴퓨터 시스템(1500)은 또한 비디오 디스플레이(1510), 문자숫자 입력 장치(1512)(예를 들어, 키보드), 커서 제어 장치(1514)(예를 들어, 마우스), 드라이브 유닛(1516), 신호 생성 장치(1518)(예를 들어, 스피커) 및 네트워크 인터페이스 장치(1520)를 포함한다.
일 실시예에서, 비디오 디스플레이(1510)는 사용자 입력을 위한 터치 감지 스크린을 포함한다. 일 실시예에서, 터치 감지 스크린이 키보드 및 마우스 대신 사용된다. 디스크 드라이브 유닛(1516)은 본 명세서에 기술된 방법들 또는 기능들 중 어느 하나 이상을 구현하는 하나 이상의 명령 세트(1524)(예를 들어, 소프트웨어)가 저장되는 기계 판독 가능 매체(1522)를 포함한다. 명령어(1524)는 또한 컴퓨터 시스템(1500)에 의한 실행 동안 메인 메모리(1504) 및/또는 프로세서(1502) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 명령어(1524)는 네트워크를 통해 네트워크(1540)를 통해 네트워크 인터페이스 장치(1520)를 경유해 추가로 송수신될 수 있다. 일부 실시예에서, 기계 판독 가능 매체(1522)는 또한 데이터베이스(1525)를 포함한다.
휘발성 RAM은 동적 RAM(DRAM)으로서 구현될 수 있으며, 메모리에서 데이터를 새로 고치거나 또는 유지하기 위해 지속적으로 전력을 필요로 한다. 비휘발성 메모리는 전형적으로 자기 하드 드라이브, 자기 광학 드라이브, 광학 드라이브(예를 들어, DVD RAM), 또는 시스템으로부터 전력이 제거된 후에도 데이터를 유지하는 다른 유형의 메모리 시스템이다. 비휘발성 메모리(1506)는 또한 랜덤 액세스 메모리일 수 있다. 비휘발성 메모리(1506)는 컴퓨터 시스템(1500)의 나머지 구성 요소에 직접 연결된 로컬 장치일 수 있다. 모뎀 또는 이더넷 인터페이스와 같은 네트워크 인터페이스를 통해 본 명세서에 기술된 컴퓨터 시스템들 중 어느 하나에 연결된 네트워크 저장 장치와 같은 시스템으로부터 떨어져 있는 비휘발성 메모리도 또한 사용될 수 있다.
기계 판독 가능 매체(1522)가 예시적인 실시예에서 단일 매체인 것으로 도시되어 있지만, "기계 판독 가능 매체"라는 용어는 하나 이상의 명령어 세트를 저장하는 단일 매체 또는 다중 매체(예를 들어, 중앙 집중식 또는 분산 데이터베이스, 및/또는 연관된 캐시 및 서버)를 포함하도록 간주되어야 한다. "기계 판독 가능 매체"라는 용어는 또한 기계에 의해 실행되는 일련의 명령을 저장, 인코딩 또는 수록할 수 있고 기계로 하여금 본 개시의 어느 하나 이상의 방법을 수행하게 하는 임의의 매체를 포함하는 것으로 간주된다. "기계 판독 가능 매체"라는 용어는 이에 따라 고체상태 메모리, 광학 및 자기 매체, 및 반송파 신호를 포함하나 이에 국한되지는 않는다. 본 명세서에서 사용된 바와 같이 "저장 모듈"이라는 용어는 기계 판독 가능 매체를 사용하여 구현될 수 있다.
일반적으로, 본 발명의 실시예를 구현하기 위해 실행된 루틴은 운영 시스템 또는 특정 애플리케이션의 일부, 구성 요소, 프로그램, 객체, 모듈 또는 "프로그램" 또는 "애플리케이션"이라고 하는 명령어 시퀀스로 구현될 수 있다. 예를 들어, 하나 이상의 프로그램 또는 애플리케이션이 본 명세서에 기술된 기능, 기술 및 프로세스 중 일부 또는 전부를 실행하는 데 사용될 수 있다. 프로그램 또는 애플리케이션은 전형적으로 머신의 다양한 메모리 및 저장 장치에 다양한 시간에 설정된 하나 이상의 명령어를 포함하고, 하나 이상의 프로세서에 의한 판독 및 실행시, 컴퓨팅 시스템(1500)이 본 명세서에 기술된 실시예들의 다양한 태양을 포함하는 요소를 실행하는 동작을 수행하게 한다.
실행 가능한 루틴 및 데이터는 예를 들어 ROM, 휘발성 RAM, 비휘발성 메모리 및/또는 캐시 메모리를 포함하는 다양한 장소에 저장될 수 있다. 이들 루틴 및/또는 데이터의 일부는 이들 저장 장치 중 어느 하나에 저장될 수 있다. 또한, 루틴 및 데이터는 중앙 서버 또는 피어-투-피어 네트워크에서 얻을 수 있다. 루틴 및 데이터의 상이한 부분들은 상이한 시간들 및 상이한 통신 세션들 또는 동일한 통신 세션에서 상이한 중앙 서버들 및/또는 피어-투-피어 네트워크들로부터 획득될 수 있다. 루틴 및 데이터는 애플리케이션을 실행하기 전에 전체적으로 얻을 수 있다. 대안으로, 루틴 및 데이터의 일부는 실행에 필요할 때 적시에 동적으로 획득될 수 있다. 따라서, 루틴 및 데이터는 특정 시간 인스턴스에서 전체적으로 기계 판독 가능 매체 상에 있을 필요는 없다.
실시예가 컴퓨팅 시스템과 관련하여 전체적으로 설명되었지만, 당업자는 다양한 실시예가 다양한 형태로 프로그램 제품으로서 배포될 수 있으며, 본 명세서에 기술된 실시예가 실제로 배포에 영향을 주는 데 사용되는 특정 유형의 머신 또는 컴퓨터 판독 가능 매체에 관계없이 동일하게 적용된다는 것을 이해할 것이다. 기계 판독 가능 매체의 예는, 그중에서도, 휘발성 및 비휘발성 메모리 장치, 플로피 및 다른 이동식 디스크, 하드 디스크 드라이브, 광 디스크(예를 들어, CD ROMS(Compact Disk Read-Only Memory), DVD(Digital Versatile Disks) 등) 및 디지털 및 아날로그 통신 링크와 같은 전송 유형 미디어과 같은 기록 가능한 유형의 매체를 포함하나 이에 국한되지는 않는다.
대안으로 또는 조합하여, 본 명세서에 설명된 실시예는 ASIC(Application-Specific Integrated Circuit) 또는 FPGA(Field-Programmable Gate Array)를 사용하는 것과 같은 소프트웨어 명령어의 유무에 관계없이 특수용 회로를 사용하여 구현될 수 있다. 실시예는 소프트웨어 명령어 없이, 또는 소프트웨어 명령어와 결합하여 하드 와이어드 회로를 사용하여 구현될 수 있다. 따라서, 본 기술은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합이나 데이터 처리 시스템에 의해 실행되는 명령어에 대한 임의의 특정 소스에 국한되지 않는다.
설명을 위해, 본 명세서의 철저한 이해를 제공하기 위해 다수의 특정 세부 사항이 설명된다. 그러나, 당업자에게는 본 개시의 실시예가 이들 특정 세부 사항 없이도 실시될 수 있음이 명백할 것이다. 일부 예에서, 모듈, 구조, 프로세스, 특징 및 장치는 설명을 모호하게 하거나 본원에서 논의되는 것을 피하기 위해 블록도 형태로 도시된다. 다른 경우에, 기능 블록 다이어그램 및 흐름도는 데이터 및 논리 흐름을 나타내는 것으로 도시되어 있다. 블록도 및 흐름도의 구성 요소(예를 들어, 모듈, 엔진, 블록, 구조, 장치, 특징 등)는 본원에 명백하게 기술되고 도시된 것과 다른 방식으로 다양하게 조합, 분리, 제거, 재정렬 및 대체될 수 있다.
본 명세서에서 "일 실시예", "실시예", "다른 실시예", "또 다른 실시예", "다양한 실시예에서" 등은 특정한 특징, 디자인, 구조 또는 실시예와 관련하여 기술된 특성이 본 개시의 적어도 하나의 실시예에 포함된다. 예를 들어, 본 명세서의 여러 곳에서 "실시예에 따른", "일 실시예에서", "실시예에서", "다양한 실시예에서" 또는 "다른 실시예에서"라는 어구가 모두 반드시 동일한 실시예를 참조할 필요도 없고, 다른 실시예와 상호 배타적인 별도의 또는 대안적인 실시예도 아니다. 또한, "실시예"등에 대한 명시적 언급이 있는지 여부에 관계없이, 몇몇 실시예에서 다양하게 조합되고 포함될 수 있지만 다른 실시예에서 다양하게 생략될 수 있는 다양한 특징이 설명된다. 유사하게, 일부 실시예들에 대해 하지만 다른 실시예들에는 아닌 선호도 또는 요건이 있을 수 있는 다양한 특징들이 설명된다.
실시예가 특정 예시적인 실시예를 참조로 설명되었지만, 이러한 실시예에 대한 다양한 수정 및 변경이 이루어질 수 있음이 명백할 것이다. 따라서, 명세서 및 도면은 제한적인 의미가 아니라 오히려 예시적인 의미로 간주되어야 한다. 상술한 명세서는 특정 예시적인 실시예들을 참조하여 설명을 제공한다. 하기의 청구범위에 개시된 넓은 기술사상 및 범위를 벗어나지 않고 다양한 변형이 이루어질 수 있음이 명백할 것이다. 따라서, 명세서 및 도면은 제한적인 의미보다는 예시적인 의미로 간주되어야 한다.
도면 중 일부는 특정 순서로 다수의 동작 또는 방법 단계를 도시하나, 순서 의존적이지 않은 단계들이 재정렬될 수 있고 다른 단계들이 결합되거나 생략될 수 있다. 일부 재정렬 또는 다른 그룹화가 구체적으로 언급되나, 다른 재정렬 또는 다른 그룹화도 당업자에게 명백할 것이므로, 대안의 전체 목록을 제시하지는 않는다. 더욱이, 단계들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로 구현될 수 있음을 인식해야 한다.
또한, 본 발명의 본질을 벗어나지 않고 다양한 변경이 이루어질 수 있음을 이해해야 한다. 이러한 변경은 또한 암시적으로 명세서에 포함된다. 이들은 여전히 본 발명의 범위 내에 속한다. 본 개시는 독립적이고 전체적인 시스템으로서 그리고 방법 및 장치 모드 모두에서, 본 발명의 다양한 태양을 포함하는 특허를 제공하는 것으로 이해되어야 한다.
또한, 본 발명의 다양한 요소 및 청구범위 각각은 또한 다양한 방식으로 달성될 수 있다. 본 개시는 각각의 그러한 변형, 즉, 임의의 장치 실시예, 방법 또는 프로세스 실시예의 변형, 또는 심지어 이들의 임의의 요소의 변형인 것을 포함하는 것으로 이해되어야 한다.
또한, "포함하는"이라는 전환 문구의 사용은 전통적인 청구항의 해석에 따라 본 명세서에서 "개방형" 청구항을 유지하기 위해 사용된다. 따라서, 문맥상 달리 요구되지 않는 한, "포함한다" 또는 "포함하고" 또는 "포함하는"과 같은 변형은 언급된 요소 또는 단계 또는 요소 또는 단계의 그룹의 포함을 의미하는 것으로 이해되어야 하지만, 임의의 다른 요소 또는 단계 또는 요소 또는 단계 그룹을 배제하지 않는다. 이러한 용어는 본 출원인이 하기의 청구범위에 따라 법적으로 허용되는 가장 넓은 범위를 갖도록 가장 광범위한 형태로 해석되어야 한다.
본원에 사용된 언어는 원칙적으로 가독성 및 교육용으로 선택되었으며, 본 발명의 주제를 설명하거나 제한하기 위해 선택되지 않았을 수 있다. 따라서, 본 발명의 범위는 이러한 상세한 설명에 의해서가 아니라 여기에 기초한 응용에 제기된 청구범위에 의해 국한되는 것으로 의도된다. 따라서, 본 발명의 실시예의 개시는 하기 청구범위에 나타낸 본 발명의 범위를 예시하기 위한 것이지 국한하기 위한 것이 아니다.

Claims (20)

  1. 컴퓨팅 시스템에 의해, 가상 캐릭터와 연관되는 캐릭터 리그 데이터 및 캐릭터 애니메이션 데이터를 임포트하는 단계;
    컴퓨팅 시스템에 의해, 캐릭터 리그 데이터 및 캐릭터 애니메이션 데이터에 기반하여 가상 캐릭터에 적용될 제 1 애니메이션을 결정하는 단계;
    컴퓨팅 시스템에 의해, 가상 캐릭터와 연관되는 실시간 몰입 환경에서 사용자 입력을 결정하는 단계;
    컴퓨팅 시스템에 의해, 제 1 애니메이션과 동시에 가상 캐릭터에 적용될 비언어적 의사소통 애니메이션을 결정하는 단계;
    컴퓨팅 시스템에 의해, 정점 오프셋 데이터의 세트를 그래픽 처리 유닛으로 비동기식으로 스트리밍될 복수의 프레임의 청크로 슬라이스하는 단계; 및
    컴퓨팅 시스템에 의해, 제 1 애니메이션, 비언어적 의사소통 애니메이션 및 청크에 기초하여 가상 캐릭터를 실시간으로 애니메이션하는 단계를 포함하고,
    캐릭터 애니메이션 데이터는 단순화된 리그의 변형에 기반하여 실시간으로 복합 캐릭터 리그 변형을 시뮬레이션하기 위해 정점 오프셋 데이터의 세트를 포함하고,
    비언어적 의사소통 애니메이션은 사용자 입력에 기반하여 결정되고,
    복수의 프레임의 청크 중 각 청크는 그래픽 처리 유닛에 의한 소비를 위해 스케쥴링되는 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    사용자 입력은 머리 입력 또는 손 입력을 포함하는 컴퓨터 구현 방법.
  3. 제 1 항에 있어서,
    사용자 입력은 실시간 몰입 환경에서 추적되는 사용자 상의 특징 위치의 세트와 관련된 위치 및 방향 정보를 포함하는 컴퓨터 구현 방법.
  4. 제 3 항에 있어서,
    상기 비언어적 의사소통 애니메이션은 상기 가상 캐릭터가 상기 위치 및 방향 정보에 기초하여 상기 사용자 상의 상기 특징 위치 세트 중 하나 이상의 특징 위치를 보도록 하는 룩킹 애니메이션을 포함하는 컴퓨터 구현 방법.
  5. 제 3 항에 있어서,
    상기 비언어적 의사소통 애니메이션은 상기 가상 캐릭터가 상기 실시간 몰입 환경에서 2 이상의 객체를 교대로 바라 보도록 하는 룩킹 애니메이션을 포함하고, 상기 2 이상의 객체는 적어도 사용자의 머리, 사용자의 손, 사용자의 신체 또는 얼굴의 특징 위치, 실시간 몰입 환경의 다른 사용자, 실시간 몰입 환경의 제 2 가상 캐릭터, 또는 실시간 몰입 환경에서 시뮬레이션된 객체 중 2 이상을 포함하는 컴퓨터 구현 방법.
  6. 제 3 항에 있어서,
    상기 위치 및 방향 정보는 상기 사용자의 머리와 관련된 머리 위치 및 방향 정보를 포함하고, 상기 비언어적 의사소통 애니메이션은 가상 캐릭터가 상기 머리 위치 및 방향 정보에 기초한 사용자에 의한 머리 움직임을 미러링하도록 하는 미러링 애니메이션을 포함하는 컴퓨터 구현 방법.
  7. 제 6 항에 있어서,
    위치 및 방향 정보는 사용자의 하나 이상의 손과 관련된 손 위치 및 방향 정보를 더 포함하는 컴퓨터 구현 방법.
  8. 제 1 항에 있어서,
    제 1 애니메이션 및 상기 비언어적 의사소통 애니메이션에 기초하여 가상 캐릭터를 실시간으로 애니메이션하는 단계는 비언어적 의사소통 애니메이션을 제 1 애니메이션과 레이어링하는 단계를 포함하는 컴퓨터 구현 방법.
  9. 제 1 항에 있어서,
    비언어적 의사소통 애니메이션은 실시간 몰입 환경과 관련된 가상 환경 상태 정보에 기초하여 결정되는 컴퓨터 구현 방법.
  10. 제 9 항에 있어서,
    상기 비언어적 의사소통 애니메이션은 상기 가상 환경 상태 정보에 기초하여 상기 가상 캐릭터의 활동 레벨을 증가시키는 단계를 포함하는 컴퓨터 구현 방법.
  11. 적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 의한 실행시, 시스템으로 하여금:
    가상 캐릭터와 연관되는 캐릭터 리그 데이터 및 캐릭터 애니메이션 데이터를 임포트하는 단계;
    캐릭터 리그 데이터 및 캐릭터 애니메이션 데이터에 기반하여 가상 캐릭터에 적용될 제 1 애니메이션을 결정하는 단계;
    가상 캐릭터와 연관되는 실시간 몰입 환경에서 사용자 입력을 결정하는 단계;
    제 1 애니메이션과 동시에 가상 캐릭터에 적용될 비언어적 의사소통 애니메이션을 결정하는 단계;
    정점 오프셋 데이터의 세트를 그래픽 처리 유닛으로 비동기식으로 스트리밍될 복수의 프레임의 청크로 슬라이스하는 단계; 및
    제 1 애니메이션, 비언어적 의사소통 애니메이션 및 청크에 기초하여 가상 캐릭터를 실시간으로 애니메이션하는 단계를 포함하는 방법을 수행하게 하는 명령어를 저장하는 메모리를 포함하고,
    캐릭터 애니메이션 데이터는 단순화된 리그의 변형에 기반하여 실시간으로 복합 캐릭터 리그 변형을 시뮬레이션하기 위해 정점 오프셋 데이터의 세트를 포함하고,
    비언어적 의사소통 애니메이션은 사용자 입력에 기반하여 결정되고,
    복수의 프레임의 청크 중 각 청크는 그래픽 처리 유닛에 의한 소비를 위해 스케쥴링되는 시스템.
  12. 제 11 항에 있어서,
    사용자 입력은 머리 입력 또는 손 입력을 포함하는 시스템.
  13. 제 11 항에 있어서,
    사용자 입력은 실시간 몰입 환경에서 추적되는 사용자 상의 특징 위치의 세트와 관련된 위치 및 방향 정보를 포함하는 시스템.
  14. 제 13 항에 있어서,
    상기 비언어적 의사소통 애니메이션은 가상 캐릭터가 위치 및 방향 정보에 기초하여 사용자 상의 특징 위치 세트의 하나 이상의 특징 위치를 보도록 하는 룩킹 애니메이션을 포함하는 시스템.
  15. 제 13 항에 있어서,
    비언어적 의사소통 애니메이션은 가상 캐릭터가 실시간 몰입 환경에서 2 이상의 객체를 교대로 바라 보도록 하는 룩킹 애니메이션을 포함하고, 2 이상의 객체는 사용자의 머리, 사용자의 손, 사용자의 신체 또는 얼굴의 특징 위치, 실시간 몰입 환경의 다른 사용자, 실시간 몰입 환경의 제 2 가상 캐릭터, 또는 실시간 몰입 환경의 시뮬레이션된 객체 중 2 이상을 포함하는 시스템.
  16. 컴퓨팅 시스템의 적어도 하나의 프로세서에 의한 실행시, 상기 컴퓨팅 시스템으로 하여금:
    가상 캐릭터와 연관되는 캐릭터 리그 데이터 및 캐릭터 애니메이션 데이터를 임포트하는 단계;
    캐릭터 리그 데이터 및 캐릭터 애니메이션 데이터에 기반하여 가상 캐릭터에 적용될 제 1 애니메이션을 결정하는 단계;
    가상 캐릭터와 연관되는 실시간 몰입 환경에서 사용자 입력을 결정하는 단계;
    제 1 애니메이션과 동시에 가상 캐릭터에 적용될 비언어적 의사소통 애니메이션을 결정하는 단계;
    정점 오프셋 데이터의 세트를 그래픽 처리 유닛으로 비동기식으로 스트리밍될 복수의 프레임의 청크로 슬라이스하는 단계; 및
    제 1 애니메이션, 비언어적 의사소통 애니메이션 및 청크에 기초하여 가상 캐릭터를 실시간으로 애니메이션하는 단계를 포함하는 방법을 수행하게 하는 명령어를 포함하고,
    캐릭터 애니메이션 데이터는 단순화된 리그의 변형에 기반하여 실시간으로 복합 캐릭터 리그 변형을 시뮬레이션하기 위해 정점 오프셋 데이터의 세트를 포함하고,
    비언어적 의사소통 애니메이션은 사용자 입력에 기반하여 결정되고,
    복수의 프레임의 청크 중 각 청크는 그래픽 처리 유닛에 의한 소비를 위해 스케쥴링되는 비일시적 컴퓨터 판독 가능 저장 매체.
  17. 제 16 항에 있어서,
    사용자 입력은 머리 입력 또는 손 입력을 포함하는 비일시적 컴퓨터 판독 가능 저장 매체.
  18. 제 16 항에 있어서,
    사용자 입력은 실시간 몰입 환경에서 추적되는 사용자 상의 특징 위치의 세트와 관련된 위치 및 방향 정보를 포함하는 비일시적 컴퓨터 판독 가능 저장 매체.
  19. 제 18 항에 있어서,
    상기 비언어적 의사소통 애니메이션은 상기 가상 캐릭터가 상기 위치 및 방향 정보에 기초하여 상기 사용자에 대한 특징 위치 세트의 하나 이상의 특징 위치를 보도록 하는 룩킹 애니메이션을 포함하는 비일시적 컴퓨터 판독 가능 저장 매체.
  20. 제 18 항에 있어서,
    비언어적 의사소통 애니메이션은 가상 캐릭터가 실시간 몰입 환경에서 2 이상의 객체를 교대로 바라 보도록 하는 룩킹 애니메이션을 포함하고, 2 이상의 객체는 사용자의 머리, 사용자의 손, 사용자의 신체 또는 얼굴의 특징 위치, 실시간 몰입 환경의 다른 사용자, 실시간 몰입 환경의 제 2 가상 캐릭터, 또는 실시간 몰입 환경의 시뮬레이션된 객체 중 2 이상을 포함하는 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020207005339A 2017-07-28 2018-07-25 실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법 KR102574247B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762538590P 2017-07-28 2017-07-28
US62/538,590 2017-07-28
PCT/US2018/043785 WO2019023400A1 (en) 2017-07-28 2018-07-25 SYSTEMS AND METHODS FOR ANIMATIONS AND INTERACTIVITY OF REAL-TIME COMPLEX CHARACTERS

Publications (2)

Publication Number Publication Date
KR20200085263A KR20200085263A (ko) 2020-07-14
KR102574247B1 true KR102574247B1 (ko) 2023-09-04

Family

ID=65038837

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020207005339A KR102574247B1 (ko) 2017-07-28 2018-07-25 실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법
KR1020207005335A KR20200084316A (ko) 2017-07-28 2018-07-25 실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법
KR1020207005333A KR20200084314A (ko) 2017-07-28 2018-07-25 실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법
KR1020207005334A KR102574246B1 (ko) 2017-07-28 2018-07-25 실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020207005335A KR20200084316A (ko) 2017-07-28 2018-07-25 실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법
KR1020207005333A KR20200084314A (ko) 2017-07-28 2018-07-25 실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법
KR1020207005334A KR102574246B1 (ko) 2017-07-28 2018-07-25 실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법

Country Status (6)

Country Link
US (7) US10810780B2 (ko)
EP (4) EP3659117A4 (ko)
JP (4) JP2020529692A (ko)
KR (4) KR102574247B1 (ko)
CN (4) CN111465965B (ko)
WO (4) WO2019023398A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8817092B2 (en) * 2008-11-25 2014-08-26 Stuart Leslie Wilkinson Method and apparatus for generating and viewing combined images
US9899038B2 (en) * 2016-06-30 2018-02-20 Karen Elaine Khaleghi Electronic notebook system
EP3659117A4 (en) * 2017-07-28 2022-08-03 Baobab Studios, Inc. SYSTEMS AND METHODS FOR REAL-TIME COMPLEX CHARACTER ANIMATIONS AND INTERACTIVITY
US10565792B2 (en) * 2017-09-07 2020-02-18 Dreamworks Animation Llc Approximating mesh deformations for character rigs
US11508107B2 (en) 2018-02-26 2022-11-22 Didimo, Inc. Additional developments to the automatic rig creation process
US10235998B1 (en) 2018-02-28 2019-03-19 Karen Elaine Khaleghi Health monitoring system and appliance
WO2019173108A1 (en) 2018-03-06 2019-09-12 Didimo, Inc. Electronic messaging utilizing animatable 3d models
US11741650B2 (en) 2018-03-06 2023-08-29 Didimo, Inc. Advanced electronic messaging utilizing animatable 3D models
US11676003B2 (en) * 2018-12-18 2023-06-13 Microsoft Technology Licensing, Llc Training neural network accelerators using mixed precision data formats
US10559307B1 (en) 2019-02-13 2020-02-11 Karen Elaine Khaleghi Impaired operator detection and interlock apparatus
CN109961496B (zh) * 2019-02-22 2022-10-28 厦门美图宜肤科技有限公司 表情驱动方法及表情驱动装置
CN112053277B (zh) * 2019-06-05 2023-10-20 杭州萤石软件有限公司 一种图像换肤的方法、装置、设备及存储介质
US11501480B2 (en) * 2019-06-06 2022-11-15 Artie, Inc. Multi-modal model for dynamically responsive virtual characters
US11087514B2 (en) * 2019-06-11 2021-08-10 Adobe Inc. Image object pose synchronization
US10902618B2 (en) * 2019-06-14 2021-01-26 Electronic Arts Inc. Universal body movement translation and character rendering system
CN110288681B (zh) * 2019-06-25 2023-06-27 网易(杭州)网络有限公司 角色模型的蒙皮方法、装置、介质及电子设备
CN110570357A (zh) * 2019-07-09 2019-12-13 深圳市瑞立视多媒体科技有限公司 基于ue4引擎的镜像实现方法、装置、设备及存储介质
US10735191B1 (en) 2019-07-25 2020-08-04 The Notebook, Llc Apparatus and methods for secure distributed communications and data access
US11182945B2 (en) * 2019-08-29 2021-11-23 Didimo, Inc. Automatically generating an animatable object from various types of user input
US11645800B2 (en) 2019-08-29 2023-05-09 Didimo, Inc. Advanced systems and methods for automatically generating an animatable object from various types of user input
US11645797B1 (en) * 2019-09-26 2023-05-09 Apple Inc. Motion control for an object
CN110782815B (zh) * 2019-11-13 2021-04-13 吉林大学 一种全息立体探测系统及其方法
US11217014B2 (en) * 2020-02-06 2022-01-04 The Boeing Company Topological surface detector
US11504625B2 (en) 2020-02-14 2022-11-22 Electronic Arts Inc. Color blindness diagnostic system
US11232621B2 (en) 2020-04-06 2022-01-25 Electronic Arts Inc. Enhanced animation generation based on conditional modeling
US11648480B2 (en) 2020-04-06 2023-05-16 Electronic Arts Inc. Enhanced pose generation based on generative modeling
CN111797643B (zh) * 2020-07-08 2022-04-26 北京京东振世信息技术有限公司 用于识别条形码的方法和终端
KR102456069B1 (ko) * 2020-07-17 2022-10-18 주식회사 아이팝 현실 가상 모델 간 비율 보정 방법
EP4186032A4 (en) 2020-07-24 2024-02-07 O3 Story Tech Inc SYSTEMS AND METHODS FOR COMPUTER ANIMATION USING A MACHINE TO DEFORM A SEQUENCE OF OPERATIONS
CN111986311A (zh) * 2020-08-06 2020-11-24 山东金东数字创意股份有限公司 一种模板数据转化系统和方法
CN111951360B (zh) * 2020-08-14 2023-06-23 腾讯科技(深圳)有限公司 动画模型处理方法、装置、电子设备及可读存储介质
CN112182194A (zh) * 2020-10-21 2021-01-05 南京创维信息技术研究院有限公司 电视虚拟形象情绪动作表达方法、系统和可读存储介质
CN112862936B (zh) * 2021-03-16 2023-08-08 网易(杭州)网络有限公司 表情模型处理方法及装置、电子设备、存储介质
CN112991502B (zh) * 2021-04-22 2021-07-16 腾讯科技(深圳)有限公司 一种模型训练方法、装置、设备及存储介质
US11887232B2 (en) 2021-06-10 2024-01-30 Electronic Arts Inc. Enhanced system for generation of facial models and animation
CN113546415B (zh) * 2021-08-11 2024-03-29 北京字跳网络技术有限公司 剧情动画播放方法、生成方法、终端、装置及设备
US20230082420A1 (en) * 2021-09-13 2023-03-16 Qualcomm Incorporated Display of digital media content on physical surface
JPWO2023084789A1 (ko) * 2021-11-15 2023-05-19
CN114267374B (zh) * 2021-11-24 2022-10-18 北京百度网讯科技有限公司 音素检测方法及装置、训练方法及装置、设备和介质
US11783529B2 (en) * 2021-12-27 2023-10-10 Advanced Micro Devices, Inc. Bounding volume hierarchy box node compression
CN115239860B (zh) * 2022-09-01 2023-08-01 北京达佳互联信息技术有限公司 表情数据生成方法、装置、电子设备及存储介质
CN116012499B (zh) * 2022-10-20 2023-11-03 武汉两点十分文化传播有限公司 一种快速生成maya三维角色动画的方法及系统
CN115984447B (zh) * 2023-03-16 2023-06-23 腾讯科技(深圳)有限公司 图像渲染方法、装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090213138A1 (en) * 2008-02-22 2009-08-27 Pixar Mesh transfer for shape blending
US20170080331A1 (en) * 2013-03-12 2017-03-23 Disney Enterprises, Inc. Adaptive Rendered Environments Using User Context

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970172B2 (en) 1997-03-27 2005-11-29 At&T Corp. Method for defining MPEG 4 animation parameters for an animation definition interface
AU4424899A (en) * 1998-06-08 1999-12-30 Microsoft Corporation Compression of time-dependent geometry
JP3954244B2 (ja) * 1999-07-16 2007-08-08 富士フイルム株式会社 色再現空間の圧縮・伸張方法
FR2810770B1 (fr) 2000-06-23 2003-01-03 France Telecom Raffinement d'un maillage triangulaire representatif d'un objet en trois dimensions
US6950104B1 (en) * 2000-08-30 2005-09-27 Microsoft Corporation Methods and systems for animating facial features, and methods and systems for expression transformation
US6940505B1 (en) 2002-05-20 2005-09-06 Matrox Electronic Systems Ltd. Dynamic tessellation of a base mesh
AU2003292728A1 (en) * 2003-12-26 2005-08-12 Lattice Technology, Inc. Method for approximating and displaying three-dimensional cad data, and system for executing that method
US7342580B1 (en) * 2004-04-02 2008-03-11 Pacific Data Images Llc Surface compression based on reference geometry in animation models
US7493243B2 (en) 2004-12-27 2009-02-17 Seoul National University Industry Foundation Method and system of real-time graphical simulation of large rotational deformation and manipulation using modal warping
CN100530244C (zh) * 2005-06-21 2009-08-19 中国科学院计算技术研究所 一种基于骨骼的任意拓扑结构虚拟角色的驱动方法
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
US20070247458A1 (en) 2006-04-11 2007-10-25 Samsung Electronics Co., Ltd. Adaptive computation of subdivision surfaces
US7859538B2 (en) * 2006-07-31 2010-12-28 Autodesk, Inc Converting deformation data for a mesh to animation data for a skeleton, skinning and shading in a runtime computer graphics animation engine
US8941664B2 (en) 2006-11-22 2015-01-27 Take Two Interactive Software, Inc. System and method for real-time pose-based deformation of character models
US7872653B2 (en) * 2007-06-18 2011-01-18 Microsoft Corporation Mesh puppetry
US8144155B2 (en) 2008-08-11 2012-03-27 Microsoft Corp. Example-based motion detail enrichment in real-time
US8749556B2 (en) 2008-10-14 2014-06-10 Mixamo, Inc. Data compression for real-time streaming of deformable 3D models for 3D animation
US8355020B1 (en) * 2009-01-23 2013-01-15 Autodesk, Inc. Refining quilts of patches representing three dimensional structures
US9240067B2 (en) * 2009-10-15 2016-01-19 Yeda Research & Development Co. Ltd. Animation of photo-images via fitting of combined models
TWI434227B (zh) * 2009-12-29 2014-04-11 Ind Tech Res Inst 動畫產生系統及方法
CN101847267B (zh) * 2010-06-01 2012-04-25 中国科学院自动化研究所 基于深度检索的树木建模方法
US8797328B2 (en) 2010-07-23 2014-08-05 Mixamo, Inc. Automatic generation of 3D character animation from 3D meshes
EP2622579A4 (en) 2010-09-30 2016-12-07 Thomson Licensing METHOD AND APPARATUS FOR ENCODING GEOMETRIC PATTERNS, AND METHOD AND APPARATUS FOR DECODING GEOMETRIC PATTERNS
CN102157008B (zh) * 2011-04-12 2014-08-06 电子科技大学 一种大规模虚拟人群实时绘制方法
US9082229B1 (en) * 2011-05-10 2015-07-14 Lucasfilm Entertainment Company Ltd. Transforming animations
US9724600B2 (en) * 2011-06-06 2017-08-08 Microsoft Technology Licensing, Llc Controlling objects in a virtual environment
CN102289836B (zh) * 2011-07-25 2013-10-16 北京农业信息技术研究中心 植物动画合成方法
US8754831B2 (en) * 2011-08-02 2014-06-17 Microsoft Corporation Changing between display device viewing modes
US9786083B2 (en) * 2011-10-07 2017-10-10 Dreamworks Animation L.L.C. Multipoint offset sampling deformation
JP5490080B2 (ja) * 2011-12-06 2014-05-14 株式会社セルシス スケルトンモデルの姿勢制御方法,及びプログラム
US9223138B2 (en) 2011-12-23 2015-12-29 Microsoft Technology Licensing, Llc Pixel opacity for augmented reality
US20130215113A1 (en) * 2012-02-21 2013-08-22 Mixamo, Inc. Systems and methods for animating the faces of 3d characters using images of human faces
WO2013152453A1 (en) * 2012-04-09 2013-10-17 Intel Corporation Communication using interactive avatars
US9639981B1 (en) * 2012-06-26 2017-05-02 Pixar Tetrahedral Shell Generation
US9536338B2 (en) 2012-07-31 2017-01-03 Microsoft Technology Licensing, Llc Animating objects using the human body
CN102930753B (zh) * 2012-10-17 2014-11-12 中国石油化工股份有限公司 加油站虚拟培训系统及应用
CN103136778B (zh) * 2013-01-28 2015-09-30 吉林纪元时空动漫游戏科技股份有限公司 基于自主缓存系统的电影级别群组动画制作方法
US10937195B2 (en) 2013-02-11 2021-03-02 Google Llc Label based approach for video encoding
US10134167B2 (en) * 2013-03-15 2018-11-20 Dreamworks Animation Llc Using curves to emulate soft body deformation
US9230368B2 (en) * 2013-05-23 2016-01-05 Microsoft Technology Licensing, Llc Hologram anchoring and dynamic positioning
US9947124B2 (en) * 2013-07-29 2018-04-17 Disney Enterprises, Inc. Motion control of active deformable objects
CN103679783B (zh) * 2013-10-18 2017-04-19 中国科学院自动化研究所 基于几何变形的三维动画角色模型皮肤变形方法
CN103942822B (zh) * 2014-04-11 2017-02-01 浙江大学 一种基于单视频摄像机的面部特征点跟踪和人脸动画方法
US9779538B2 (en) * 2014-05-28 2017-10-03 Lucasfilm Entertainment Company Ltd. Real-time content immersion system
US20150350641A1 (en) * 2014-05-29 2015-12-03 Apple Inc. Dynamic range adaptive video coding system
US9727296B2 (en) 2014-06-27 2017-08-08 Lenovo (Beijing) Co., Ltd. Display switching method, information processing method and electronic device
US10664628B2 (en) * 2014-12-08 2020-05-26 Dassault Systemes Solidworks Corporation Interactive surface alignment
US10282883B2 (en) 2014-12-12 2019-05-07 Pizar Hierarchy-based character rigging
WO2016144279A1 (en) 2015-03-06 2016-09-15 Ors Filiz Mujdehan Virtual reality based remote learning system and method
US20170039750A1 (en) * 2015-03-27 2017-02-09 Intel Corporation Avatar facial expression and/or speech driven animations
US20170003738A1 (en) 2015-06-15 2017-01-05 Survios, Inc. Systems and methods for immersive physical interaction with a virtual environment
WO2017007179A1 (ko) 2015-07-03 2017-01-12 상명대학교서울산학협력단 심장박동에 따른 얼굴 온도 변화를 이용한 가상-아바타의 사회적 실재감 표현 방법 및 이를 적용하는 시스템
US20170148214A1 (en) * 2015-07-17 2017-05-25 Ivd Mining Virtual reality training
US9353965B1 (en) * 2015-08-26 2016-05-31 Google Inc. Automated display adjustment for smart-home device based on viewer location or other sensed viewer-related parameters
US9858701B2 (en) 2015-10-05 2018-01-02 Adobe Systems Incorporated Computer animation of artwork using adaptive meshing
CN105447904A (zh) * 2016-01-04 2016-03-30 中山大学 一种基于Loop细分的三维云纹曲面显示方法及其装置
US10303341B2 (en) 2016-05-25 2019-05-28 International Business Machines Corporation Modifying screen content based on gaze tracking and user distance from the screen
CN106157339B (zh) * 2016-07-05 2019-06-18 华南理工大学 基于低秩顶点轨迹子空间提取的动画网格序列压缩方法
US10304244B2 (en) * 2016-07-08 2019-05-28 Microsoft Technology Licensing, Llc Motion capture and character synthesis
WO2018081732A1 (en) 2016-10-31 2018-05-03 Dg Holdings, Inc. Portable and persistent virtual identity systems and methods
US10930086B2 (en) * 2016-11-01 2021-02-23 Dg Holdings, Inc. Comparative virtual asset adjustment systems and methods
CN106780766B (zh) * 2016-11-24 2019-02-05 腾讯科技(深圳)有限公司 匹配实现方法及相关装置
CN106846499B (zh) * 2017-02-09 2020-04-03 腾讯科技(深圳)有限公司 一种虚拟模型的生成方法及装置
EP3659117A4 (en) * 2017-07-28 2022-08-03 Baobab Studios, Inc. SYSTEMS AND METHODS FOR REAL-TIME COMPLEX CHARACTER ANIMATIONS AND INTERACTIVITY
US10565792B2 (en) * 2017-09-07 2020-02-18 Dreamworks Animation Llc Approximating mesh deformations for character rigs
US11158121B1 (en) * 2018-05-11 2021-10-26 Facebook Technologies, Llc Systems and methods for generating accurate and realistic clothing models with wrinkles
EP3813023A1 (en) * 2019-10-21 2021-04-28 Dassault Systèmes Computer-implemented method for making a skeleton of a modeled body take a posture
US11348314B2 (en) * 2020-05-08 2022-05-31 Dreamworks Animation Llc Fast and deep facial deformations
WO2021226445A1 (en) * 2020-05-08 2021-11-11 Mvi Health Inc. Avatar tracking and rendering in virtual reality
WO2022051460A1 (en) * 2020-09-02 2022-03-10 Roblox Corporation 3d asset generation from 2d images

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090213138A1 (en) * 2008-02-22 2009-08-27 Pixar Mesh transfer for shape blending
US20170080331A1 (en) * 2013-03-12 2017-03-23 Disney Enterprises, Inc. Adaptive Rendered Environments Using User Context

Also Published As

Publication number Publication date
CN111433757B (zh) 2023-10-20
US10818061B2 (en) 2020-10-27
WO2019023398A1 (en) 2019-01-31
WO2019023384A1 (en) 2019-01-31
US10796469B2 (en) 2020-10-06
CN111433757A (zh) 2020-07-17
EP3659117A4 (en) 2022-08-03
US20240087200A1 (en) 2024-03-14
US20190035130A1 (en) 2019-01-31
CN111417987A (zh) 2020-07-14
US20190035132A1 (en) 2019-01-31
CN111417988A (zh) 2020-07-14
US20210201552A1 (en) 2021-07-01
KR102574246B1 (ko) 2023-09-04
WO2019023397A1 (en) 2019-01-31
EP3659038A4 (en) 2021-07-07
EP3659038A1 (en) 2020-06-03
EP3659117A1 (en) 2020-06-03
US20190035129A1 (en) 2019-01-31
KR20200084315A (ko) 2020-07-10
KR20200085263A (ko) 2020-07-14
WO2019023400A1 (en) 2019-01-31
KR20200084316A (ko) 2020-07-10
JP2020529693A (ja) 2020-10-08
EP3659118A1 (en) 2020-06-03
JP2020529694A (ja) 2020-10-08
KR20200084314A (ko) 2020-07-10
US10810780B2 (en) 2020-10-20
CN111465965B (zh) 2024-04-19
JP2020529692A (ja) 2020-10-08
US10937219B2 (en) 2021-03-02
JP2020529691A (ja) 2020-10-08
EP3659119A1 (en) 2020-06-03
CN111465965A (zh) 2020-07-28
EP3659118A4 (en) 2021-05-05
US20210142546A1 (en) 2021-05-13
US20190035131A1 (en) 2019-01-31
EP3659119A4 (en) 2021-04-28

Similar Documents

Publication Publication Date Title
KR102574247B1 (ko) 실시간의 복합 캐릭터 애니메이션 및 상호작용성을 위한 시스템 및 방법
Gonzalez-Franco et al. The rocketbox library and the utility of freely available rigged avatars
US11087521B1 (en) Systems and methods for rendering avatars with deep appearance models
CN113272870A (zh) 用于逼真的实时人像动画的系统和方法
US20220398797A1 (en) Enhanced system for generation of facial models and animation
US20220398795A1 (en) Enhanced system for generation of facial models and animation
US11887232B2 (en) Enhanced system for generation of facial models and animation
US10825225B1 (en) Simulation stream pipeline
US20240135616A1 (en) Automated system for generation of facial animation rigs
Di Fiore et al. Mimicing 3d transformations of emotional stylised animation with minimal 2d input
King Animating speech in games
Di Giacomo Dynamically adaptive animation of virtual humans

Legal Events

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