KR20230042470A - 동작 순서 변형 엔진을 이용한 컴퓨터 애니메이션을 위한 시스템들 및 방법들 - Google Patents

동작 순서 변형 엔진을 이용한 컴퓨터 애니메이션을 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20230042470A
KR20230042470A KR1020237003757A KR20237003757A KR20230042470A KR 20230042470 A KR20230042470 A KR 20230042470A KR 1020237003757 A KR1020237003757 A KR 1020237003757A KR 20237003757 A KR20237003757 A KR 20237003757A KR 20230042470 A KR20230042470 A KR 20230042470A
Authority
KR
South Korea
Prior art keywords
asset
deformer
channel
mesh structure
engine system
Prior art date
Application number
KR1020237003757A
Other languages
English (en)
Inventor
에릭 에이. 소울비에
리차드 알. 허리
알. 제이슨 비커스태프
클리포드 에스. 챔피언
피터 이. 맥고완
로버트 어니스트 슈너스타인
Original Assignee
카이트스트링, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 카이트스트링, 인크. filed Critical 카이트스트링, 인크.
Publication of KR20230042470A publication Critical patent/KR20230042470A/ko

Links

Images

Classifications

    • 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
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • 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
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2213/00Indexing scheme for animation
    • G06T2213/12Rule based animation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

컴퓨터 애니메이션을 위한 방법은 제3 자 게임 엔진 시스템과 연관하여 멀티-플랫폼 변형 엔진 시스템을 실행하는 프로세서에 의해, 자산 지오메트리를 포함하는 입력 파일을 수신하는 단계를 포함하며, 자산 지오메트리는 자산 메시 구조를 정의하며, 자산 지오메트리는 내부 지지 프레임을 제외할 수도 있으며, 커스텀 변형 단계들에 대한 로직은 모두 포터블 방식으로 포함될 수도 있으며 다중 상이한 소프트웨어 및/또는 하드웨어 플랫폼 환경들에 걸쳐 및/또는 실시간 및/또는 오프라인 시나리오들에 걸쳐 일관된 결과들을 발생하도록 만들어질 수도 있다. 또한, 본 방법은 적어도 하나의 디포머를 자산 메시 구조에 적용하는 단계를 포함하며, 적어도 하나의 디포머는 복수의 사용자-선택가능한 디포머 채널들을 포함하며, 각각의 디포머 채널은 자산 메시 구조의 적어도 일부분과 연관되고 자산 메시 구조의 연관된 부분의 시각적 외관을 조정하도록 구성된다. 또한, 본 방법은 적어도 복수의 디포머 채널들의 서브세트의 평가를 위한 커스터마이즈 가능한 동작 순서를 수신하는 단계를 포함하며, 동작 순서는 서브세트의 각각의 디포머 채널이 자산 지오메트리의 애니메이션 동안 실시간으로 평가되어야 하는 순서를 규정한다.

Description

동작 순서 변형 엔진을 이용한 컴퓨터 애니메이션을 위한 시스템들 및 방법들
관련 출원에 대한 상호-참조
본 출원은 ORDER OF OPERATIONS DEFORMATION ENGINE이라는 발명의 명칭으로, 2020년 7월 24일자에 출원된 미국 가특허 출원 번호 제62/706,006호에 대한 우선권 및 이의 이익을 주장하며, 이는 이로써 본원에 전체적으로 참고로 포함된다.
본 개시내용의 분야는 일반적으로 3차원("3D") 애니메이션, 보다 구체적으로는, 다양한 기존 플랫폼들에 배포할 수 있는 장편 영화 품질 자산들을 생성하기 위해 동작 순서-기반 변형들을 이용하는 3D 애니메이션에 관한 것이다.
3D 애니메이션은 비디오 게임 및 영화 제작과 같은 매우 다양한 산업들에서 사용된다. 다양한 애니메이션 툴들 및 컴퓨터 기능이 이들 산업들에서의 사용을 위해 캐릭터들과 같은, 오브젝트들을 생성 및 애니메이션하는데 사용된다. 예를 들어, 비디오 게임 산업에서, "게임 엔진들" 또는 "게임 엔진 시스템들"로서 또한 종종 지칭되는, 게임 시스템들이 사용자 인터페이스 상에서의 게임 플레이 동안 이후 디스플레이되는 오브젝트들 및 캐릭터들을 개발 및 애니메이션하는데 사용된다.
현대의 비디오 게임들의 개발 및 생산에 사용되는 것들과 같은, 다수의 종래의 게임 시스템들은 골격 애니메이션 기법들, 또는 비디오 게임 개발자들의 일반 용어로, "피부 및 뼈들" 기법들을 이용한다. 이들 골격 애니메이션 기법들은 (적어도 휴머노이드 캐릭터들의 경우) 일부의 경우, 느슨하게 인간 골격과 유사할 수도 있는 상호 연결된 멤버들(또는, "뼈들") 및 관절들의 세트를 이용하여 애니메이션화된 휴머노이드 캐릭터들과 같은, 유관절체들의 모션 및 변형을 시뮬레이션하도록 배열된다. 표면 메시(또는, "피부")는 유관절체의 외부 표면을 나타내기 위해 골격 구조에 결합되거나 또는 연관될 수도 있다.
다수의 종래의 피부 및 뼈들 구현예들에서, 피부 및 뼈들 오브젝트들의 모션 및 표면 변형은, "게임 엔진" 또는 "디지털 콘텐츠 생성(DCC) 툴"로서 지칭되는 소프트웨어에서 백그라운드에서 구현될 수도 있고 그리고 모션 및 다른 물리적 변형들(예를 들어, 달리기, 점프, 안면 표정들, 의류의 모션, 등)을 시뮬레이션하기 위해 오브젝트들 상에서 실행할 수 있는, 복잡한 물리-기반 (및 다른) 알고리즘들에 의해 제어된다. 인기 있는 게임 엔진들(또는, DCC 소프트웨어 제품들)의 몇 가지 예들은 MODO, UNREAL 엔진, UNITY, 및 MAYA를 포함하지만, 이에 제한되지 않는다.
직관적인 개발을 용이하게 하기 위해, 이들 복합 알고리즘들은 전형적으로 캐릭터 생성을 담당하는 게임 개발자들 및 그래픽 아티스트들에게는 노출되지 않는다. 대신, 단순화된 그래픽 사용자 인터페이스가 게임 엔진 시스템에 의해 제시되며, 오브젝트들 및 캐릭터들은 그래픽 및 다른 애니메이션 툴들을 이용하여 시스템 인터페이스에서 생성된다. 그 결과, 프론트 엔드 상에서, 개발 프로세스는 특정의 오브젝트의 피부 및 뼈들 엘리먼트들이 원하는 대로 기능하도록 조작 및 제작되는 디지털 조각과 유사한 것으로 축소된다.
그러나, 게임 엔진 오브젝트들의 모션 및 변형을 제어하는 것을 담당하는 물리 및 다른 알고리즘들이 전형적으로 백그라운드 프로세스들로서 실행되고 게임 개발자들에 의해 직접 관리될 필요가 없지만, 이들 시스템들에 의해 이용되는 피부 및 뼈들 기법들의 결과로 다양한 문제들이 발생한다. 예를 들어, 종래의 피부 및 뼈들 게임 엔진 시스템들은 설계에 의해, 관절 캐릭터 아키텍처에서의 각각의 뼈를 피부의 일부 측면과 연관하는 방법으로 기능하도록 배열된다. 달리 말하면, 캐릭터의 피부 상에서 일어나는 변형 또는 모션 파라미터를 제어하기 위해, (심지어 단순화된 사용자 인터페이스에서도) 그것과 연관된 뼈를 조정하는 것이 종종 필요하다. 본 기술분야의 통상의 기술자들이 주지하는 바와 같이, 복잡한 변형들을 달성하기 위해서는, 다수의 뼈들은 조정되어야 하며, 심지어 가장 노동 집약적이고 가장 잘 개발된 게임들에서도, 이 프로세스는 캐릭터 뻣뻣함, 더 일반적으로는, 단순히 매우 사실적이지 않은 캐릭터 표현들을 초래한다.
더욱이, 사실적인 캐릭터 개발은 다중 뼈들 근처의 피부의 모션 및/또는 변형이 각각의 뼈에 의해 영향을 받을 수도 있다는 사실에 의해 방해를 받는다. 이들 교차점들에서의 모션을 조절하기 위해서는, 뼈 관계들의 매트릭스 또는 레이어구조를 형성하는 것이 일반적으로 필요하며, 여기서 뼈들의 상호 연결된 매트릭스에서 각각의 뼈는 다른 모든 뼈의 모션에 영향을 미칠 수도 있다. 그 결과, 캐릭터 또는 오브젝트 골격에서 임의의 주어진 뼈와 연관된 모션 및 변형 특성들이 다른, 링크된, 뼈들의 모션 및 변형에 영향을 미칠 가능성이 있다. 알고리즘 용어들에서, 이는 계단식 일련의 변형들을 초래할 수 있으며, 이의 각각은 개발자가 주어진 뼈 근처의 오브젝트 외관을 변경할 때 게임 개발자에 의해 각각 고려되어야 한다. 복잡한 캐릭터 개발에서, 이는 극도로 시간 소모적이고 노동-집약적인 설계 프로세스들을 빈번하게 초래한다.
이들 단점들에 추가하여, 다수의 종래의 피부 및 뼈들 게임 엔진 시스템들은 매우 다양한 개별적으로 설계된 게임 캐릭터들의 각각의 원하는 모션 및 애니메이션 특성들을 용이하게 하기 위해 기하학적 및 다른 변형 데이터의 상당한 라이브러리를 유지해야 한다. 런-타임에서 (예를 들어, 게임-플레이 동안), 컴퓨터 메모리 요구사항들은 주지하는 바와 같이, 매우 클 수 있다. 이와 유사하게, 게임 캐릭터들에 의해 수행되는 모션 및 액션들을 디스플레이하기 위한 컴퓨터 요구사항들은 극단적일 수 있으며, 최신 그래픽 프로세싱 유닛들("GPU들"), 일부 경우들에서, 중앙 처리 유닛들("CPU들")을 필요로 한다.
또, 3D 설계 및 애니메이션용 툴들은 영화, 텔레비전, 및 3D 프린팅과 같은, 산업들 전반에서 점차 통합되고 있다. 3D 프린트된 정적 모델들 뿐만 아니라 구동 동적 모델들, 예컨대 물리적 모델들 또는 애니메트로닉스를 생성하는 것은 일부 테마 파크 및/또는 다른 관련된 엔터테인먼트와 관련이 있으며, 3D 애니메이션화된 캐릭터들을 설계 및 변형하기 위한 툴들로부터 이점을 얻을 수도 있다. 게다가, 3D 애니메이션화된 캐릭터들용 툴들은 이들의 데스크들에서 배우들 또는 아티스트들에 의해, 또는 사운드 스테이지 또는 가상 프로덕션 세트에서 배우들 또는 연기자들에 의해 실시간으로 점차 구동되고 있다. 이러한 툴들은 전형적으로 모션 트래킹, 안면 트래킹, 또는 수동(예를 들어, 소위 waldo) 시스템들로부터 입력들을 수신하고, 이 데이터를 프로세싱하여 3D 애니메이션화된 캐릭터들을 실시간으로 업데이트한다. 더욱이, 스토리-중심 프랜차이즈들은 게임들 및 장편 영화들 둘 모두에 걸쳐서와 같이, 상이한 매체들에 걸쳐서 동일한 캐릭터들 및 스토리들을 게시하기를 점차 원하고 있다. 종래, 이는 캐릭터 자산들이 장편 영화 팀들과 게임 팀들 사이에 용이하게 재사용될 수 없어, 캐릭터 자산들이 각각의 플랫폼 마다 2번 생성되기 때문에, 비싼 프로세스이다. 더욱이, 포터블 저에너지 디바이스들에서 고성능 게이밍 콘솔들, 데스크탑들, 및 클라우드 렌더링 시스템들에 이르기까지 매우 다양한 기능을 갖춘 하드웨어 시스템들 전반에 디지털 경험들이 배포되도록 점차 요구되고 있으며, 또한 종종 다중 버전들의 자산들이 시간 및 돈에 대한 추가적인 비용들로 개발되는 것이 요구된다.
따라서, 보다 실물과 똑같은 오브젝트들 및 캐릭터들을 생성하기 위한 시스템들이 바람직하다. 좀더 자세하게 설명하면, 캐릭터 개발을 위한 업계-종래의 피부 및 뼈들 기법들에 의해 제한되지 않는 시스템들, 예를 들어, 근육 및 지방의 변형 효과들을 복제할 수 있는 시스템들, 또는 예를 들어, 일반 비선형 공간 변형들을 가능하게 하는 시스템들이 바람직하다. 게다가, 컴퓨터 그래픽스 및 다른 3D 애니메이션 기법들에 내재된 메모리 및 계산 요구사항들을 용이하게 하고 단순화하는 시스템들이 바람직하다. 3D 프린팅 및 애니메트로닉스 기법들뿐만 아니라 아티스트들로부터 실시간 모션 캡쳐 데이터를 수용할 수 있는 툴들과 같은, 3D 설계 및 애니메이션 툴들을 용이하게 하고 상호작용할 수 있는 시스템들이 또한 바람직하다. 더욱이, 설명된 바와 같이, 본원에서 설명되는 시스템들은 예를 들어, 모바일 디바이스들, 게임 콘솔들, 클라우드-기반 렌더링, 및 TV/영화 렌더링 매체들 및 디바이스들을 포함한, 다중 매체들 및 디바이스들 전반에서 주어진 자산의 동작을 용이하게 한다. 이들, 및 다른 이점들은 본 개시내용을 참조하여 본원에서 설명된다.
일 양태에서, 컴퓨터 애니메이션을 위한 방법이 설명된다. 본 방법은 제3 자 게임 엔진 시스템과 연관하여 멀티-플랫폼 변형 엔진 시스템을 실행하는 프로세서에 의해, 자산 지오메트리를 포함하는 입력 파일을 수신하는 단계를 포함하며, 여기서, 자산 지오메트리는 자산 메시 구조를 정의하며, 자산 지오메트리는 본원에서 설명하는 바와 같이, 내부 골격과 같은 내부 지지 프레임을 제외할 수도 있다. 또한, 본 방법은 프로세서에 의해, 적어도 하나의 디포머를 자산 메시 구조에 적용하는 단계를 포함하며, 여기서, 적어도 하나의 디포머는 복수의 사용자-선택가능한 디포머 채널들을 포함하며, 각각의 디포머 채널은 자산 메시 구조의 적어도 일부분과 연관되고 자산 메시 구조의 연관된 부분의 시각적 외관을 조정하도록 구성된다. 또한, 본 방법은 프로세서에 의해 그리고 사용자 입력에 기초하여, 적어도 복수의 디포머 채널들의 서브세트의 실행을 위한 커스터마이즈 가능한 동작 순서를 수신하는 단계를 포함하며, 동작 순서는 서브세트의 각각의 디포머 채널이 자산 지오메트리의 애니메이션 동안 실시간으로 실행되어야 하는 순서를 규정한다. 게다가, 본 방법은 프로세서에 의해, 자산 지오메트리, 적어도 하나의 디포머 인스턴스, 및 동작 순서를 포함하는 출력 파일을 발생시키는 단계를 포함한다.
다른 양태에서, 유형의, 비일시성 컴퓨터-판독가능 저장 매체가 설명된다. 저장 매체는 게임 엔진 시스템과 관련하여 멀티-플랫폼 변형 엔진 시스템을 실행하는 프로세서에 의해 실행될 때, 프로세서로 하여금, 적어도 자산 지오메트리를 포함하는 입력 파일을 수신하게 하도록 구성되는 명령들을 저장하며, 여기서, 자산 지오메트리는 자산 메시 구조를 정의하며, 자산 지오메트리는, 적어도 일부 실시형태들에서, 피부 및 뼈들 시스템과 종래 연관되는 내부 골격 프레임워크와 같은, 내부 프레임워크를 제외한다. 명령들은 또한 프로세서로 하여금, 적어도 하나의 디포머 인스턴스를 자산 메시 구조와 연관시키게 하며, 여기서, 적어도 하나의 디포머 인스턴스는 복수의 사용자-선택가능한 디포머 채널들을 포함하며, 각각의 디포머 채널은 자산 메시 구조의 적어도 일부분과 연관되며 자산 메시 구조의 연관된 부분의 시각적 외관을 조정하도록 구성된다. 명령들은 또한 프로세서로 하여금, 사용자 입력에 기초하여, 적어도 복수의 디포머 채널들의 서브세트의 평가를 위한 커스터마이즈 가능한 동작 순서를 수신하게 하며 - 여기서, 동작 순서는 서브세트의 각각의 디포머 채널이 자산 지오메트리의 애니메이션 동안 실시간으로 평가되어야 하는 순서를 규정함-; 그리고, 자산 지오메트리, 적어도 하나의 디포머 인스턴스, 및 동작 순서를 포함하는 출력 파일을 발생시키게 한다.
여전히, 다른 양태에서, 컴퓨터 애니메이션을 위한 시스템이 설명된다. 시스템은 메모리 디바이스, 및 프로세서를 포함하며, 프로세서는 실행될 때, 프로세서로 하여금, 적어도 자산 지오메트리를 포함하는 입력 파일을 수신하게 하는, 메모리 디바이스 상에 저장된 명령들을 실행하도록 구성되며, 여기서, 자산 지오메트리는 자산 메시 구조를 정의하며, 자산 지오메트리는, 적어도 일부 실시형태들에서, 내부 프레임워크를 제외한다. 명령들은 또한 프로세서로 하여금, 적어도 하나의 디포머 인스턴스를 자산 메시 구조와 연관시키게 하며, 여기서, 적어도 하나의 디포머 인스턴스는 복수의 사용자-선택가능한 디포머 채널들을 포함하며, 각각의 디포머 채널은 자산 메시 구조의 적어도 일부분과 연관되며 자산 메시 구조의 연관된 부분의 시각적 외관을 조정하도록 구성된다. 명령들은 또한 프로세서로 하여금, 사용자 입력에 기초하여, 적어도 복수의 디포머 채널들의 서브세트의 평가를 위한 커스터마이즈 가능한 동작 순서를 수신하게 하며 - 여기서, 동작 순서는 서브세트의 각각의 디포머 채널이 자산 지오메트리의 애니메이션 동안 실시간으로 평가되어야 하는 순서를 규정함-; 그리고, 자산 지오메트리, 적어도 하나의 디포머 인스턴스, 및 동작 순서를 포함하는 출력 파일을 발생시키게 한다.
도 1은 본원에서 설명하는 바와 같은, 게임 엔진 시스템 및 동작 순서("OOO") 변형 엔진 시스템을 포함하는 컴퓨팅 시스템의 예시적인 실시형태의 블록도이다.
도 2는 도 1에 나타낸 컴퓨팅 시스템의 예시적인 실시형태의 블록도이다.
도 3은 도 1 및 도 2에 나타낸 시스템들을 이용하여 변형을 수행하는 단계를 포함하는, 컴퓨터 애니메이션을 위한 프로세스의 예시적인 실시형태의 플로우차트이다.
도 4는 도 1 및 도 2에 나타낸 시스템들을 이용하여 애니메이션 단계 렌더 루프를 수행하는 단계를 포함하는, 컴퓨터 애니메이션을 위한 프로세스의 예시적인 실시형태의 플로우차트이다.
도 5는 도 1 및 도 2에 나타낸 시스템들을 이용하여 변형 가능한 모델을 생성하는 단계를 포함하는, 컴퓨터 애니메이션을 위한 프로세스의 예시적인 실시형태의 플로우차트이다.
도 6은 도 1 및 도 2에 나타낸 변형 엔진 시스템을 이용하여 개발되는 자산의 예시이다.
도 7은 개발자에 의해 규정된 동작 순서가 자산의 애니메이션을 제어하는 도 6에 나타낸 자산의 예시이다.
도 8은 도 1 및 도 2에 나타낸 변형 엔진 시스템을 이용하여 개발되는 부분 캐릭터의 예시이다.
도 9는 도 8에 나타낸 부분 캐릭터의 예시로서, 제1 변형 채널과 연관된 제1 가중치 맵이 도시된다.
도 10은 도 9에 나타낸 부분 캐릭터의 예시로서, 제2 변형 채널과 연관된 제2 가중치 맵이 도시된다.
도 11은 도 1 및 도 2에 나타낸 변형 엔진 시스템을 이용하여 생성 및 편집된 자산의 예시로서, 자산에 인접하게 도시된 복수의 순서 정렬 가능한 변형 채널들을 포함한다.
도 12는 도 11에 나타낸 자산의 예시로서, 하나의 변형 채널이 자산의 대응하는 그래픽 조정에 영향을 미치도록 조정된다.
도 13은 도 11 및 도 12에 나타낸 자산의 예시로서, 2개의 변형 채널들이 자산의 여러 대응하는 그래픽 조정들에 영향을 미치도록 조정된다.
도 14는 도 11 내지 도 13에 나타낸 자산의 예시로서, 디포머 채널 에디터가 도시되며 개별 디포머 채널의 애니메이션화된 가중치를 조정하는데 사용될 수도 있다.
도 15는 도 11 내지 도 14에 나타낸 자산의 예시로서, 조정된 변형 채널과 연관된 형상 보정이 변형 채널의 조정에 응답하여 자동으로 조정된다.
도 16은 도 11 내지 도 14에 나타낸 자산의 다른 예시로서, 조정된 변형 채널과 연관된 형상 보정이 변형 채널의 조정에 응답하여 자동으로 조정된다.
도 17은 도 1 및 도 2에 나타낸 변형 엔진 시스템을 이용하여 생성 및 편집되는 캐릭터의 예시로서, 변형 경로가 변형 채널 곡선을 이용하여 시각적으로 조정된다.
도 18a 내지 도 18d는 변형 가능한 자산 및 대응하는 변형 값들의 추가 예시적인 실시형태를 예시한다.
도 19a 내지 도 19d는 비변형된 상태의 변형 가능한 자산, 및 대응하는 변형 값들의 추가 예시적인 실시형태를 예시한다.
도 20a 내지 도 20d는 변형된 상태의 변형 가능한 자산, 및 대응하는 변형 값들의 추가 예시적인 실시형태를 예시한다.
도 21은 가중치 맵의 추가 예시적인 실시형태를 예시한다.
본원에서 설명하는 시스템들 및 방법들의 실시형태들은 고유한, 실물과 똑같은, 고속의, 강건한 자산 변형들을 실시간으로 생성하기 위해 게임 개발자들, 아티스트들, 및 다른 사용자들에 의해 사용될 수도 있는 변형 엔진 시스템을 포함한다. 종래의 피부 및 뼈들 게임 엔진 시스템과는 대조적으로, 본원에서 설명되는 변형 엔진 시스템은 "뼈들" 또는 "관절들"의 관절형 내부 프레임워크와 같은, 내부 프레임워크가 반드시 필요한 것은 아니지만 외부 메시를 갖는 캐릭터 또는 다른 오브젝트와 같은, 자산을 수신할(또는, 이의 생성을 용이하게 할) 수도 있다.
대신, 변형 엔진 시스템은 메시에의 하나 이상의 디포머들의 추가에 의하는 것과 같이, 메시 상에 동작할 수도 있다. 본원에서 설명되는 바와 같이, 각각의 디포머는 복수의 디포머 채널들을 포함할 수도 있으며, 이의 각각은 결국, 자산 지오메트리의 고유한 양태의 변형을 제어하는 것을 담당할 수도 있다. 적어도 일부 실시형태들에서, 변형 엔진 시스템은 예컨대, 자산 변형들의 원하는 조합을 달성하기 위해 사용자에 의해 용이하게 제어될 수도 있는 채널 가중치를 이용하여, 각각의 디포머 및/또는 디포머 채널의 독립적인 조정을 용이하게 한다.
다수의 실시형태들에서 그리고 종래의 피부 및 뼈들 시스템들과는 대조적으로, 개개의 변형들 및/또는 변형 채널들은 서로의 변환들이 아니다. 달리 말하면, 하나의 변형 채널을 조정하면, 사용자가 보정 조정들을 행하기 위해 관련된 변형 채널로 돌아갈 필요가 없다. 대신, 자산에 적용되는 각각의 변형은 자산에 또한 적용되는 하나 이상의 다른 변형들과는 독립적으로 자산의 외관을 변경할 수도 있다.
더욱이, 동작 순서 또는 평가 순서는 자산용으로 선택되어 적용되는 변형들 및/또는 변형 채널들의 각각에 대한 개발 동안 사용자에 의해 규정될 수도 있다. 동작 순서를 조정함으로써, 자산에 적용되는 결합된 또는 전체 변형은 실물과 똑같은, 일부 경우들에서는, 영화-품질 결과들을 달성하도록 거의 무한대로 변경될 수도 있다. 예를 들어, 슬라이드 변형을 수행하기 전에 회전 변형을 수행하면, 회전 변형을 수행하기 전에 동일한 슬라이드 변형을 수행하는 것과는 상이한 결과를 달성할 수도 있다.
이들 특징들에 추가하여, 다수의 실시형태들에서, 디포머들은 실생활에서 주어진 변형에 의해 영향을 받을 수도 있는 자산 메시의 부분과 같은, 자산 메시의 부분에 대한 변형을 제어하거나 또는 혼합하기 위해 가중치 맵들과 연관될 수도 있다. 예시하기 위하여, 캐릭터의 입을 크게 벌리는 캐릭터 변형은 실생활에서, 캐릭터의 뺨에 적용되는 변형에 영향을 미칠 것으로 예상될 수도 있다. 따라서, 자산 메시의 부분들에 걸쳐 혼합되는 더 실물과 똑같은, 분산된, 변형들을 생성하기 위해 입, 뺨, 및/또는 얼굴의 다른 부분들의 도메인, 또는 영역에서 변형을 혼합하는 가중치 맵이 적용될 수도 있다.
가중치 맵들은 또한, 다수의 실시형태들에서, 변형 엔진 시스템에 의해 평가될 때, 이들의 개개의 변형 컴포넌트들보다 많은 및/또는 상이한 변형 그래픽을 발생하는 변형들과 같은, 휠씬 더 복잡한 변형들을 달성하기 위해 레이어링되고/되거나 애니메이션화될 수도 있다. 이들 및 다양한 다른 이점들 및 변형 기법들은 본원에서 설명하는 바와 같이, 변형 엔진 시스템에 의해 용이하게 되고 가능해진다.
따라서, 본원에서 설명되는 변형 엔진 시스템의 실시형태들은 예를 들어, 다음과 같은, 그러나 이에 제한되지 않는 다양한 기술적인 이점들 및 특정의 기술적인 향상들을 제공한다: (a) 표면 변형들을 달성하기 위해 관절형 뼈들 또는 관절들의 매트릭스를 이용하는 내부 자산 프레임워크와 같은, 종래의 피부 및 뼈들 자산 지오메트리들의 사용 없이, 자산 개발을 용이하게 하는 변형 엔진 시스템을 제공하는 것; (b) 복수의 디포머 채널들(및/또는 디포머들) 각각에 대한 동작 순서를 수신하는 것을 용이하게 하는 변형 엔진 시스템을 제공하는 것 - 이에 의해 사용자는 각각의 디포머 채널이 시뮬레이션 및/또는 게임 실행 동안 평가될 순서를 규정할 수도 있음-; (c) 복수의 디포머 채널들 중 임의의 채널과 연관하여 채널 가중치 및 가중치 맵핑을 용이하게 하는 변형 엔진 시스템을 제공하는 것; (d) 실물과 똑같은, 아름다운, 애니메이션 결과들을 달성하기 위해 하나 이상의 가중치 맵들을 레이어링하는 것을 용이하게 하는 변형 엔진 시스템을 제공하는 것; (e) 복잡한 이동을 단순화하기 위해 애니메이팅 가중치 맵들을 용이하게 하는 변형 엔진을 제공하는 것, (f) 엔진들, DCC들, 및 상이한 하드웨어 디바이스들에 걸쳐 용이하게 그리고 일관하여 전송 가능한 방식으로 커스텀(사용자-정의된) 디포머 오퍼레이터들을 용이하게 하는 변형 엔진을 제공하는 것, (g) 예컨대 예를 들어, 적어도 플레이어 자산 또는 플레이어 캐릭터로부터의 임계치 거리인 변형 자산들에 대해 소요되는 계산 시간을 줄이기 위해, 플레이어 및/또는 다른 참가자들로부터의 거리들에 기초하여, 예컨대, 시뮬레이션 및/또는 게임플레이 동안, 자산들의 실시간 변형을 용이하게 하는 변형 엔진 시스템을 제공하는 것; (h) (예를 들어, 자산의 오프-스크린 부분들이 렌더링되거나 또는 변형될 필요가 없기 때문에) 프로세싱 속도를 향상시키고 메모리 할당 요구사항들을 감소시키기 위해 게임플레이의 프레임 동안 스크린 밖에 나타나는 자산의 부분이 주어진 프레임에 대해 렌더링되지 않을 수 있도록, 프로세서에 의한 게임의 실행 이전에 이미지 렌더링 동작들의 사전-최적화; (i) 예컨대, 변경되거나 또는 이동되지 않은(또는, 임계치 양 미만으로 변경된) 자산들 및/또는 임의의 시각적 리프레시를 달리 필요로 하지 않는 자산들 또는 자산의 부분들에 대해 프레임에서 후속 프레임으로의 변형 정보의 재활용에 의해, 프로세싱 속도 및/또는 메모리 할당 요구사항들을 향상시키기 위해 자산들의 부분들을 선택적으로 캐싱하는 것; (j) 시뮬레이션 및/또는 게임플레이 이전에 출력 파일 사이즈를 감소시키기 위한, 여분의 또는 미사용된 변형 채널들 및/또는 변형 인스턴스들, 최소한으로 사용되거나 또는 최소의-효과 변형 채널들, 불필요한 가중치 맵들, 및/또는 다른 페어링 프로세스들의 검출; 및 (k) 새로운 처음부터 자산에 대한 리깅의 모두를 재생성할 필요없이, 새로운 자산 지오메트리에의 빠르고 용이한 적용을 위한 포즈들의 저장 - 이에 의해, 예를 들어, 자산 리깅 시간이 주어진 자산에 대해, 예컨대, 며칠에서 몇 시간 크게 감소될 수도 있음-.
본원에서 사용될 때, 그리고 아래에서 추가로 자세히 설명하는 바와 같이, "모델", "캐릭터", "오브젝트", "자산", 및 "자산 지오메트리"와 같은, 용어들은 비디오 게임 및/또는 장편 영화 애니메이션과 같은, 애니메이션에서 묘사될 수도 있는 임의의 실세계 및/또는 가상 오브젝트와 같은, 오브젝트의 표현으로서, 본원에서 설명된 바와 같이, 생성되는 임의의 지오메트리를 지칭할 수도 있다.
본원에서 사용될 때, 그리고 아래에서 추가로 자세히 설명하는 바와 같이, "메시", "메시 구조", 및 "토폴로지"와 같은 용어들은 모델 또는 자산의 외부 표면을 정의하는 기하학적 격자 또는 프레임워크를 지칭할 수도 있다. 메시 구조는 복수의 "스팬들(spans)"을 포함할 수도 있으며, 이의 각각은 모델 또는 자산의 표면의 최소 부분을 정의하도록 확장될 수도 있다.
본원에서 사용될 때, 그리고 아래에서 추가로 자세히 설명하는 바와 같이, "디포머 채널", "변형 채널", "채널" 등과 같은, 용어들은 모델 또는 자산과 연관될 수도 있는, 임의의 기하학적 파라미터, 임의의 애니메이션 파라미터, 임의의 모션 파라미터 등과 같은, 속성 또는 파라미터를 지칭할 수도 있다. 예시하기 위하여, 그리고 본원에서 설명된 바와 같이, 디포머 채널은 좌우측 모션, 앞뒤 모션, 턱(jaw) 모션, 뺨 모션, 및 주지하는 바와 같은, 다수의 다른 이러한 속성들과 같은, 그러나 이에 제한되지 않는 자산의 머리 및/또는 안면 부분과 연관하여 머리 모션 파라미터를 정의할 수도 있다.
본원에서 사용될 때, 그리고 아래에서 추가로 자세히 설명하는 바와 같이, "디포머 채널 가중치", "디포머 채널 가중치", "채널 가중치", "가중치", "디포머 가중치" 등과 같은, 용어들은 특정의 디포머 채널과 연관된 하나 이상의 숫자 변환 또는 변형 값들을 지칭할 수도 있다. 적어도 일부 실시형태들에서, 가중치는 예컨대 예를 들어, 모션, 형상, 및/또는 채널의 다른 양태들을 제어하기 위해, 개별 채널의 외관을 제어 및/또는 수정하는데 이용될 수도 있다. 본원에서 설명된 바와 같이, 채널 가중치들은 예컨대, 자산 머리를 앞뒤 및/또는 좌우로 기울이거나, 자산 턱을 이동시키거나, 자산 뺨을 밀거나 빨아들이는 등을 위해서, 시각적 및 예술적 변화들을 자산의 지오메트리에 적용하도록 조정될 수도 있다. 게다가, 본원에서 설명된 바와 같이, 디포머 채널들은 본원에서 사용할 때, 특정의 채널이 그 채널이 제어하는 메시 구조의 영역을 둘러싸는 메시 구조의 영역들에 영향을 미치는 정도를 지칭할 수도 있는, 하나 이상의 "가중치 맵들"과 연관될 수도 있다. 예를 들어, "턱 모션" 채널에 대한 가중치 맵은 (자산의) 턱의 모션이 뺨 및 이마와 같은, 자산의 지오메트리의 다른 영역들로 확장되거나 영향을 미치는 정도를 규정할 수도 있다. 가중치 맵에 의해 영향을 받는 영역 또는 구역은 "영역", "도메인", "영향을 받은 도메인" 등으로서 지칭될 수도 있다.
본원에서 사용될 때, 그리고 아래에서 추가로 자세히 설명하는 바와 같이, "디포머" 및/또는 "디포머 인스턴스"와 같은, 용어들은 가능하면, 자산의 예술적 개발 동안 실시간으로 함께 보정되거나 또는 조정될 수도 있는 개별 가중치들을 포함하여, 수학 또는 수치 오퍼레이터들의 특정의 조합, 디포머 채널들의 그룹화 또는 세트를 지칭할 수도 있다. 또, 본원에서 설명된 바와 같이, 일부 실시형태들에서, 단일 디포머는 단일 디포머가 자산 생성을 실질적으로 단순화할 수 있도록, 자산의 지오메트리 및 모션의 다수의 양태들(일부 경우, 이의 모든 양태들을 포함함)을 제어하기 위해 주어진 자산에 적용될 수도 있다. 본원에서 설명된 바와 같이, 하나 이상의 디포머들을 메시 구조에 적용하는 프로세스는 "리깅"으로 지칭되는 프로세서를 적어도 부분적으로 기술할 수도 있으며, 자산 또는 이와 연관된 메시 구조는 (예를 들어, 메모리 디바이스에서) 자산 또는 메시 구조를 하나 이상의 디포머들, 디포머 채널들, 가중치들, 가중치 맵들 등과 연관시킴으로써 "리깅될" 수도 있다.
더욱이, 적어도 일부 실시형태들에서, 복수의 변형 채널들이 하나 이상의 "레이어들"에서 자산에 일괄하여 적용될 수도 있다. 그 결과, 본원에서 사용되는 바와 같이, 그리고 아래에서 추가로 자세히 설명하는 바와 같이, "레이어" 및 "레이어들"과 같은, 용어들은 자산에 적용되는 하나 이상의 변형 채널들을 지칭할 수도 있다. 일부의 경우, 채널들은 자산 메시에 "부착되는" 것으로 설명될 수도 있다. 본원에서 사용될 때, 메시에의 변형 레이어의 "부착"은 채널 파라미터들을 메시와 연관시키는 파일 및/또는 파일 포맷에의, 가중치 및 다른 채널 파라미터들을 포함한, 변형 채널의 포함을 지칭할 수도 있다. 또, 일부 실시형태들에서, 하나 또는 디포머들(또는, 변형 인스턴스들)이 또한 하나 이상의 레이어들에서 자산에 일괄하여 적용될 수도 있으며, 이는 본원에서 설명된 바와 같이, 런-타임 뿐만 아니라 동작들의 미리 정의된(사용자-설정된) 순서로 서로 독립적으로 평가될 수도 있다.
따라서, 본원에서 사용되는 바와 같이, 그리고 아래에서 자세하게 설명되는 바와 같이, 본원에서 설명되는 변형 엔진 시스템은 "동작 순서" 또는 "OOO" 변형 엔진으로서 지칭될 수도 있다. 따라서, 어구 "동작 순서"는 적어도 일부 실시형태들에서, 변형 채널이, 예를 들어, 임의의 다른 변형 채널의 그래픽 변환으로서 평가되지 않도록, 복수의 변형 채널들 및/또는 변형 인스턴스들에 대한 동작 순서를 수신 뿐만 아니라 평가하는 변형 엔진의 능력을 지칭하는데 사용될 수도 있다. 대신, 적어도 일부 실시형태들에서, 각각의 변형 채널은 다른 모든 변형 채널에 독립적으로 평가된다. 일부 실시형태들에서, 본원에서 설명된 바와 같이, 하나 이상의 다른 변형 채널들 또는 변형 레이어들에 대한 입력으로서 사용되는 하나의 변형 채널 또는 변형 레이어의 출력. 적어도 일부 실시형태들에서, 다른 변형 채널들 및/또는 레이어들에 대한 변형 채널들 및/또는 레이어들의 독립 및/또는 의존은 원하는 경우, 개발자 또는 아티스트가 채널 및/또는 레이어 의존성들을 선택할 수 있도록, 아티스트 또는 개발자에게 제공되고/되거나 아티스트 또는 개발자에 의해 선택 가능한 능력일 수도 있다. 본원에서 설명된 바와 같이, 이 동작 순서 기능은 장편 영화 품질 캐릭터들의 개발에 초점을 맞추고 이들을 UNREAL 엔진, MODO, UNITY, MAYA 등과 같은, 제3 자 게임 엔진들을 포함하지만 이에 제한되지 않는, 임의의 제3 자 게임 엔진 제품과 같은, 임의의 플랫폼에 배포하는 완전한 기술적인 해결책을 용이하게 한다.
본원에서 사용되는 바와 같이, 그리고 아래에서 추가로 자세히 설명하는 바와 같이, "변형 스택" 또는 "스택"과 같은, 용어들은 동작 순서 변형 엔진과 연관하여 제공되는 디포머들 및/또는 변형 채널들의 순서를 지칭할 수도 있다. 예를 들어, 제1 디포머 채널은 변형 스택의 최상부에 나타날 수도 있으며, 제2 디포머 채널은 스택에서 다음에 나타날 수도 있으며, 제3 디포머 채널은 제2 디포머 이후에 나타날 수도 있는, 기타 등등으로 나타날 수도 있다. 이러한 스택은 또한 더 일반적으로 하나의 디포머의 입력들이 다른 디포머(들)의 출력들을 캡쳐하는 지향성 비순환 그래프("DAG")일 수도 있다. 적어도 일부 실시형태들에서, 변형 채널들은 스택에 의해 규정된 순서에 따라, 예컨대, 최상부에서 최하부로 또는 최하부에서 최상부로, 변형 엔진 시스템에 의해 평가될 수도 있다. 게다가, 적어도 일부 실시형태들에서, 본원에서 설명된 바와 같이, 변형 스택은 예를 들어, 의존성 트리를 형성하기 위해, 하나 이상의 채널들 또는 레이어들의 출력이 하나 이상의 다른 채널들 또는 레이어들에 공급되거나 또는 하나 이상의 다른 채널들 또는 레이어들에 대한 입력으로 제공되는 순서를 규정할 수도 있다. 본원에서 설명되는 바와 같이, 일부 실시형태들에서, 채널들 및/또는 레이어들의 의존성은 일부 경우들에서는, 채널들 및/또는 레이어들이 의존성들을 포함하고 다른 경우들에서는, 의존성들이 존재하지 않도록, 개발자에 의해 선택 가능할 수도 있다.
본원에서 사용되는 바와 같이, 그리고 아래에서 추가로 자세히 설명하는 바와 같이, "리그(rig)"와 같은, 용어들은 게임 개발자 또는 아티스트에 의해 원하는 대로 레이어링되고 자산 개발 동안 아티스트에 의해 확립된 동작 순서 세팅들에 의해 제어되는, 디포머들 및/또는 디포머 채널들의 컬렉션을 지칭할 수도 있다. 예시하기 위하여, 리그는 "행복한" 자산 표현을 생성하기 위해 보정된 복수의 디포머 채널들을 포함할 수도 있다. 리그는 "행복한" 표현을 메시에 부여하기 위해, 남성 자산 메시, 여성 자산 메시, 비-인간 자산 메시 등과 같은, 복수의 자산들 또는 자산 메시들 중 임의의 것에 다양하게 적용될 수도 있다. 이와 유사하게, 이러한 동일 리그의 채널들은 "슬픈" 자산 표현을 발생하기 위해 보정될 수도 있다. 즉, 리그는, 일단 메시 또는 토폴로지적으로-동등한 메시들의 클래스에 대해 제작되면, 해당 메시에 대한 다양한 표현들을 용이하게 생성할 수 있으며, 예를 들어, 리그가 어떤 의미에서 메시에 대한 개성(표현의 범위)을 캡쳐한다.
본원에서 사용되는 바와 같이, 그리고 아래에서 추가로 자세히 설명하는 바와 같이, "리깅된(rigged) 자산"과 같은, 용어들은 본원에서 설명하는 바와 같이, 디포머들, 디포머 채널들, 동작 순서 정보, 레이어들 및 가중치들, 가중치 맵들, 및 다른 파라미터들과 같은, 그러나 이에 제한되지 않는, 변형 엔진 시스템에 의해 추가되는 하나 이상의 파라미터들을 포함하는 자산을 지칭할 수도 있다. 반대로, 본원에서 사용할 때, "네이키드(naked) 자산"과 같은 용어는 변형 엔진 시스템에 의해 추가되는 파라미터들을 제외하는 자산들을 지칭할 수도 있다.
본원에서 사용되는 바와 같이, 그리고 아래에서 추가로 자세히 설명하는 바와 같이, "포즈"와 같은 용어들은 후속 재사용 또는 재활용을 위해(예를 들어, 게임 개발자들 및 아티스트들에 의해 사용하기 위해 및/또는 아티스트들 자신이 사용하기 위해) 미리 정의된 채널 가중치들 또는 채널 값들 및 디포머 채널들의 컬렉션을 지칭할 수도 있다. 예시하기 위하여, 예시적인 포즈들은 "행복한", "으르렁거리는", 등을 포함하지만, 이에 제한되지 않으며, 여기서, "행복한" 포즈는 행복한 자산 표현(예를 들어, 행복한 얼굴)을 생성하기 위해 사전 설정된 채널 값들을 포함할 수도 있으며, "으르렁거리는" 포즈는 으르렁거리거나 또는 행복하지 않은 자산 표현을 생성하기 위해 사전 설정된 채널을 포함할 수도 있는, 등등을 포함할 수도 있다. 그 결과, 포즈들은 다양한 표현들 및/또는 다른 지오메트리들을 블랭크 또는 아니면 블랭크 자산들에 부여하기 위해 빠르게 재활용될 수 있는, 사전 설정되거나 또는 미리 정의된 "리그들"을 구현할 수도 있다.
따라서, 본원에서 설명된 바와 같이, 자산들 및/또는 메시들은 "블랭크일" 뿐만 아니라 "부착될" 수도 있다. 본원에서 사용될 때, "블랭크" 자산 또는 메시는 임의의 리그들, 포즈들, 디포머들, 채널들, 등과 연관되거나 포함하지 않을 수도 있다. 이와 유사하게, 부착된 메시는 하나 이상의 리그들, 포즈들, 디포머들, 채널들, 등과 연관되거나 또는 포함하지 않을 수도 있다.
도 1은 게임 엔진 시스템(102) 및 동작 순서("OOO") 변형 엔진 시스템(104)을 포함하는 컴퓨팅 시스템(100)의 예시적인 실시형태의 블록도이다. 예시적인 실시형태에서, 시스템(100)은 메모리 디바이스(106), 디스플레이 디바이스(108), 및 적어도 하나의 프로세서(110)를 포함한다. 나타낸 바와 같이, 변형 엔진 시스템(104)은 메모리 디바이스(106)에 저장되고 프로세서(110)에 의해 실행될 수도 있다. 이와 유사하게, 게임 엔진 시스템(102)은 메모리 디바이스(106)에 저장되고 프로세서(110)에 의해 실행될 수도 있다.
적어도 일부 실시형태들에서, 변형 엔진 시스템(104)은 게임 엔진 시스템(102)과 동시에 및/또는 아니면, 함께 실행하도록 구성될 수도 있으며, 예를 들어, 본원에서 설명된 바와 같이, 게임 엔진 시스템(102)은 MODO, MAYA, UNITY, UNREAL 등과 같은, 그러나 이에 제한되지 않는, 다양한 제3 자 피부 및 뼈들 게임 엔진 시스템들 또는 "디지털 콘텐츠 생성(DCC)" 툴들 중 임의의 것을 포함할 수도 있다. 이와 유사하게, 예시적인 실시형태에서, 변형 엔진 시스템(104)은 OZONE 변형 엔진 시스템이다. 본원에서 설명된 바와 같이, OZONE 변형 엔진 시스템을 포함한, 변형 엔진 시스템(104)은 적어도 일부 실시형태들에서, 본원에서 설명되는 종래의 게임 엔진 시스템들(102) 중 임의의 것과 같은, 다양한 게임 엔진 시스템들(102)과의 통합 및 상호 운용이 가능한 동작 순서 변형 엔진 시스템일 수도 있다.
따라서, 일부 실시형태들에서, 변형 엔진 시스템(104)은 플러그-인으로서 또는 아니면 기존 제3 자 게임 엔진 시스템에 대한 소프트웨어 추가 또는 확장으로서 실행할 수도 있다. 더욱이, 일부 실시형태들에서, 게임 엔진 시스템(102)은 변형 엔진 시스템(104)의 내장 버전을 포함하는 독점 게임 엔진 시스템일 수도 있다.
그 결과, 일부 실시형태들에서, 변형 엔진 시스템(104)은 기존 시스템 동작 순서 및 본원에서 설명되는 다른 기능에 추가하기 위해 임의의 적합한 기존 게임 엔진 시스템(102)과 함께 구현될 수도 있다. 이들 실시형태들에서, 변형 엔진 시스템(104)은 이들 종래의 제3 자 시스템들에 의해 제공되는 종래의 피부 및 뼈들 변형 프로그래밍 동작들 중 적어도 일부에 대한 교체로서 기능할 수도 있다. 변형 엔진 시스템(104)이 OZONE 게임 엔진 시스템과 같은, 독점 게임 엔진 시스템(102)에 포함되는 경우, 피부 및 뼈들 기능은 전혀 포함되지 않을 수도 있다.
이들 특징들에 추가하여, 시스템(100)은 다양한 물리적 제어기들(112) 또는 "waldos"로 종종 알려져 있는 입력 리그들, 및/또는 게임 제어기들과 같은, 그러나 이에 제한되지 않는 하나 이상의 다른 상품 디바이스들로부터 입력을 수신하도록 구성될 수도 있다. 이들 실시형태들에서, waldos가 아티스트 또는 개발자로부터 모션 제어 입력을 수신하기 위해 제공될 수도 있으며, 이는 변형 엔진 시스템(104)에 의해 본원에서 설명하는 바와 같이, 대응하는 변형 채널 및 다른 캐릭터 애니메이션 특성들로 번역될 수도 있다.
시스템은 게다가, 다양한 카메라들 및/또는 인간 행위자에 의해 착용될 수도 있는 모션 캡쳐 센서들과 같은, 그러나 이에 제한되지 않는, 다른 모션 캡쳐 및/또는 모션 트래킹 디바이스들(114)로부터 사용자 입력을 수신하도록 구성될 수도 있다. 모션 트래킹 디바이스들(114)에 의해 출력된 데이터는 또한 변형 엔진 시스템(104)에 의해 대응하는 변형 채널 및 다른 캐릭터 애니메이션 특성들로 번역될 수도 있다.
도 2는 (도 1에 나타낸 바와 같은) 게임 엔진 시스템(102) 및 변형 엔진 시스템(104)을 포함하는 컴퓨팅 시스템(100)의 예시적인 실시형태의 블록도이다. 본원에서 설명된 바와 같이, 게임 엔진 시스템(102)은 비디오 게임들을 생성하는데 사용될 수도 있는 하나 이상의 그래픽 사용자 인터페이스들("GUI들")을 포함하는 소프트웨어-개발 환경을 포함할 수도 있다. 따라서, 일반적으로, 게임 엔진 시스템(102)은 게임 개발자들로 하여금 비디오 게임들을 생성 가능하게 하는 다양한 툴들을 포함할 수도 있다. 적어도 일부 실시형태들에서, 본원에서 설명된 바와 같이, 게임 엔진 시스템(102)은 기본적인 시뮬레이션 툴셋 및/또는 프레임워크를 포함할 수도 있으며, 기본적인 사용자 입력 및 오디오/시각적 출력 프로세스들을 담당할 수도 있는 반면, 변형 엔진 시스템(104)은 플러그-인 또는 다른 소프트웨어 확장으로서, 모션 및 다른 상세한 오브젝트 및 캐릭터 변형 및/또는 변환 양태들을 용이하게 할 수도 있다.
적어도 일부 실시형태들에서, 게임 엔진 시스템(102)은 위에서 설명한 바와 같이 피부 및 뼈들 기능과 같은 종래의 변형 기능을 포함할 수도 있다. 일부의 경우, 게임 엔진 시스템(102)은 제한된 개수의 변형 옵션들(예를 들어, 전형적으로 산업 표준)을 포함할 수도 있다. 그 결과, 게임 엔진 시스템(102)에 의해 생성되는 오브젝트 변형들은 예를 들어, 캐릭터 또는 오브젝트 뻣뻣함, 부자연스럽거나 또는 비현실적인 표면 변형들 및/또는 캐릭터 모션 등을 초래하는 품질과 같은, 변형 엔진 시스템(104)과 조합하여 달성될 수도 있는 것들보다 실질적으로 충실도가 더 낮을 수도 있다.
예를 들어, 변형 엔진 시스템(104)의 추가 없이, 게임 엔진 시스템(102)은 캐릭터 상에 미소를 형성하는 개발자 입력에 응답하여, 단지 캐릭터의 입술들의 특정의 부분들을 생성하거나 또는 조정하는 것에 제한될 수도 있지만, 캐릭터의 얼굴의 다른 부분들은 변형되지 않거나 또는 약하게만 변형된다.
추가로 예시하기 위해, 본원에서 설명된 바와 같이, 게임 엔진 시스템(102)과 같은, 종래의 피부 및 뼈들 시스템에서, 단독으로 있을 때, 사실적인 캐릭터 개발은 캐릭터 아키텍처에서 다중 뼈들의 교차점 근처에서 피부의 모션 및/또는 변형이 각각의 뼈에 의해 영향을 받는다는 사실에 의해 영향을 받을 수 있다. 이들 뼈 교차점들에서의 모션을 조절하기 위해, 뼈 관계들의 매트릭스 또는 레이어구조를 형성하는 것이 일반적으로 필요하며, 뼈들의 상호 연결된 매트릭스에서 각각의 뼈는 다른 모든 뼈의 모션에 영향을 미칠 수도 있다. 그 결과, 캐릭터 또는 오브젝트 골격에서 임의의 주어진 뼈와 연관된 모션 및 변형 특성들이 다른, 링크된 뼈들의 모션 및 변형에 영향을 미칠 가능성이 있다.
알고리즘 용어들에서, 이는 계단식 일련의 변형들을 초래할 수 있으며, 이의 각각은 개발자가 주어진 뼈 근처의 오브젝트 외관을 변경할 때 게임 개발자에 의해 고려되어야 한다. 복잡한 캐릭터 개발에서, 이는 캐릭터 설계에 신중한 주의를 기울인 후에도, 충실도가 약간 낮고, 외관이 뻣뻣한 등 매우 시간 소모적이고 노동-집약적인, 설계 프로세스들을 빈번하게 초래한다. 적어도 일 실시형태에서, 게임 엔진 시스템(102)에 의해 독립형 소프트웨어 및 개발 툴로서 제공되는 제한된 옵션들은 모프 변형, 피부 가중치 변형 및 관절 변형을 포함할 수도 있는 기본적인 선형 변환들을 나타낼 수도 있다. 그러나, 본원에서 추가로 상세히 설명되는 바와 같이, 이들 및 다른 단점들이 변형 엔진 시스템(104)의 추가에 의해 해결된다.
게임 엔진 시스템(102)에 추가하여, 예시적인 실시형태에서, 시스템(100)은 또한 3D 모델링 및 애니메이션 툴(202)(또는, "애니메이션 툴")을 포함할 수도 있다. 애니메이션 툴(202)은 3D 애플리케이션들(예를 들어, 비디오 게임들, 애니메이션화된 영화들, 시각 효과들, 등)에 대한 자산들을 생성하는데 사용되는 디지털 콘텐츠 생성(DCC) 소프트웨어 툴과 같은, 다양한 적합한 3D 컴퓨터 그래픽스 애플리케이션 툴들 중 임의의 것을 포함할 수도 있다. 일부 실시형태들에서, 사용자는 매체를 구현 및 편집하기 위해 가상 작업공간(예를 들어, 장면)을 정의한다. 애니메이션 툴(202)은, 다양한 실시형태들에서, MAYA, MODO, CAD/CAM 툴, 본원에서 설명되는 다른 종래의 게임 엔진 시스템들 중 임의의 것, 및/또는 기타 등등일 수도 있다. 일부 실시형태들에서, 자산의 특정의 지오메트리 및/또는 텍스쳐들이 초기에 애니메이션 툴(202)에서 준비된다. 이는 애니메이션 툴(202)로부터 게임 엔진(102) 및/또는 변형 엔진(104)으로, 예컨대 입력 파일의 형태로, 내보내질 기본 모델 또는 기본 자산을 발생한다.
일부 실시형태들에서, 애니메이션 툴(202)은 따라서 적어도 일부 종래의, 또는 피부 및 뼈들, 변형 기능을 포함한다. 예를 들어, 애니메이션 툴(202)은 제한된 개수의 변형 옵션들을 포함할 수도 있다. 그 결과, 애니메이션 툴(202)에 의해 생성된 변형은 낮은-충실도 변형일 수도 있다. 낮은-충실도 변형은 캐릭터의 부자연스러운(또는, 비현실적인) 이동들을 초래할 수도 있다. 일부 실시형태들에서, 애니메이션 툴(202)의 변형의 제한된 옵션들은 모프 변형, 피부 가중치 변형 및 관절 변형을 포함할 수도 있는 선형 변환들이다.
이와 유사하게, 본원에서 설명된 바와 같이, 일부 실시형태들에서, 애니메이션 툴(202)의 변형의 제한된 옵션들은 제한될 수도 있다. 예를 들어, 제1 변형 옵션(예를 들어, 모프 변형)을 이용하는 것에 기초한 제1 시각 효과(예를 들어, 향상된 사실적인 미소)의 충실도의 증가는 제2 변형 옵션을 이용하는 것에 기초한 제2 시각 효과(예를 들어, 감소된 사실적인 눈의 곁눈질)의 충실도를 감소시킬 수도 있다.
일부 실시형태들에서, 애니메이션 툴(202)은 3D 프린팅, 로봇공학, 또는 애니메트로닉스 설계 툴을 포함할 수도 있으며, 주요 초점은 정적 및 동적 물리적 (프린트된 또는 조립된) 캐릭터들의 형상 및 모션을 설계 및 분석하는 것이다.
일부 실시형태들에서, 물리적 제어기들(112) 또는 입력 리그들, (종종 "waldos"라 함) 및/또는 다른 상품 디바이스들, 예컨대 게임 제어기들은, 입력 데이터를 변형 엔진 시스템(104), 애니메이션 툴(202), 생성 툴(204) 및/또는 이들의 임의의 조합 중 임의의 것에 제공할 수도 있는 입력들 또는 입력 디바이스들로서 기능할 수도 있다. 이들 입력 디바이스들은 자산 또는 자산 변형을 실시간으로 포즈 및 관절화하고/하거나, 추후 사용을 위해 자산 변형(및 대응하는 채널 값들)의 상태들의 스냅샷들 또는 기록들을 저장하는데 사용될 수도 있다.
일부 실시형태들에서, 모션 트래킹 디바이스(114) 또는 다른 안면 트래킹 시스템들은 변형 엔진 시스템(104), 애니메이션 툴(202), 생성 툴(204) 및/또는 이들의 조합들에 대한 입력들로서 기능할 수도 있다. 이들 입력들은 새로운 변형 결과들을 실시간으로, 및/또는 추후 사용을 위해 채널 스냅샷들 또는 기록들을 발생하기 위해, 예를 들어, 변형 엔진 시스템(104)에 의해 제공되는 관절-형 채널들 또는 관절 어댑터들에 직접 맵핑할 수도 있고/있거나, (예를 들어, 도 4를 참조하여 나타낸 바와 같이) 포즈 믹싱 로직으로 맵핑할 수도 있고/있거나, 변형 리그 채널들 상으로 직접 맵핑될 수도 있다.
시스템(100)은 애니메이션 툴(202)에서 자산들의 모델링 및 애니메이션을 용이하게 하는 다양한 소프트웨어 애플리케이션들(예를 들어, 생성 툴(204)용 소프트웨어)을 포함할 수도 있다. 일부 실시형태들에서, 시스템(100)은 애니메이션 툴(202)과 함께 사용되는 생성 툴(204)을 포함한다. 예를 들어, 생성 툴(204)은 생성 툴 및/또는 익스포터(exporter)일 수도 있다. 다양한 실시형태들에서, 생성 툴(204)은 디지털 콘텐츠 생성("DCC") 플러그-인 및/또는 독립형 애플리케이션일 수도 있다. 적어도 일 실시형태에서, 생성 툴(204)은 자산의 변형 및 애니메이션 데이터의 생성을 위한 하나 이상의 특수 툴들을 포함한다.
따라서, 본원에서 설명된 바와 같이, 변형 엔진 시스템(104)은 게임 엔진 시스템(102) 및/또는 애니메이션 툴(202)에 통신 가능하게 커플링될 수도 있다. 적어도 일 실시형태에서, 게임 엔진 시스템(102)은 변형 엔진 시스템(104)에 통신 가능하게 커플링되고 데이터가 게임 엔진 시스템(102)과 변형 엔진 시스템(104) 사이에 송신되게 하는 플러그-인(미도시)을 포함한다. 이와 유사하게, 그리고 적어도 일부 실시형태들에서, 변형 엔진 시스템(104)은 더 높은-충실도 변형들 및 애니메이션들을 생성하는 기능과 같은, 다양한 기능을, 설명된 바와 같이, 종래의 제3 자 피부 및 뼈들 게임 엔진 시스템을 포함할 수도 있는 게임 엔진 시스템(102)에 추가하기 위해, 게임 엔진 시스템(102)에 대한 플러그-인 또는 소프트웨어 확장판으로서 기능할 수도 있다. 이와 유사하게, 애니메이션 툴(202)은 변형 엔진 시스템(104)에 통신 가능하게 커플링되고 데이터가 변형 엔진 시스템(104)과 애니메이션 툴(202) 사이에 송신되게 하는 플러그-인(예를 들어, 생성 툴(204))으로 기능하거나 또는 포함할 수도 있다. 변형 엔진 시스템(104)은 또한 미들웨어 애플리케이션이고/이거나 또는 이를 포함할 수도 있다. 일부 실시형태들에서, 변형 엔진 시스템(104)은 또한 예컨대, 커스터마이즈된 변형들, 변형 채널들 등을 생성하기 위해, 하나 이상의 애플리케이션 프로그래밍 인터페이스들("API들")을 포함할 수도 있다.
다양한 실시형태들에서, 변형 엔진 시스템(104)은 (더 낮은-충실도 변형을 제공하는 게임 엔진 시스템(102) 및/또는 애니메이션 툴(202)에서의 종래의 피부 및 뼈들 변형 툴들과는 대조적으로) 자산의 높은-충실도 변형들을 제공하는 기능을 포함할 수도 있다. 본원에서 설명된 바와 같이, 높은-충실도 변형들은 캐릭터의 향상된 자연스러운(또는, 사실적인) 이동들을 초래할 수도 있다. 예를 들어, 변형 엔진 시스템(104)을 이용하여, 캐릭터 상에 미소를 형성하라는 입력에 응답하여, 캐릭터의 입술들의 다수의 부분들이 미소를 묘사하기 위해 변형될 수도 있다. 추가적으로, 얼굴의 다른 부분들이 뺨에 생성된 보조개들, 입술의 끝쪽으로 발생되는 컬들(curls), 눈들의 끝쪽으로의 눈꺼풀들의 수축 등과 같은, 더욱 사실적인 미소를 묘사하기 위해 변형될 수도 있다. 본원에서 추가로 상세히 설명되는 바와 같이, 이들 더 높은-충실도 변형들은 동작 순서 변형 프로세스, 변형들의 레이어들, 독립적으로 조정 가능한 변형 채널들, 가중치 맵핑, 애니메이션화된 가중치 맵핑, 및/또는 다양한 다른 고유한 툴들, 시스템들, 및 변형 엔진 시스템(104)을 사용하여 이용할 수 있는 프로세스들을 이용하여 달성될 수도 있다.
다양한 실시형태들에서, 변형 엔진 시스템(104)은 애니메이션 툴(202) 및/또는 게임 엔진 시스템(102)으로부터 자산 지오메트리를 포함하는 입력 파일과 같은, 입력 파일을 수신할 수도 있으며, 이는 예를 들어, 자산 지오메트리 또는 메시를 포함한, 자산에 관한 정보를 포함할 수도 있다. 적어도 일부 실시형태들에서, 입력 파일에 의해 정의되는 자산 지오메트리는 변형 정보를 제외할 수도 있다. 그 결과, 변형 엔진 시스템(104)에 의해 수신되는 자산 지오메트리는 자산 지오메트리가 변형 엔진 시스템(104)에 의해 수신될 때 변형 정보를 제외하므로, "네이키드 지오메트리"로서 본원에서 지칭될 수도 있다. 일부 실시형태들에서, 자산 지오메트리는 또한 예를 들어, 변형 엔진 시스템(104)을 이용하여 및/또는 종래의 게임 엔진 시스템(102)을 이용하여 이전에 사전-적용되었을 수도 있는 하나 이상의 미리 정의된 또는 기존 변형들을 포함할 수도 있다. 변형 엔진 시스템(104)은 입력 파일을 수신하는 것에 응답하여, (오히려, 예를 들어, 자산이 단지 애니메이션 툴(202) 또는 게임 엔진 시스템(102)의 제한된 변형 툴들만을 이용하여 수행되는 변형들에만 제한되기 보다는) 하나 이상의 높은-충실도 변형들을 생성하기 위해 하나 이상의 변형들을 자산에, 예컨대, 변형 엔진 시스템(104)의 변형 툴들을 이용하여 적용하는데 구현되거나 또는 사용될 수도 있다.
게다가, 적어도 일부 실시형태들에서, 입력 파일은 자산 지오메트리를 정의하기 위해 삼각형들 및/또는 n-면 다각형들의 컬렉션을 포함할 수도 있다. 일부 실시형태들에서, 입력 파일은 자산 지오메트리 상의 하나 이상의 텍스쳐 좌표들 및/또는 개발자-선택 디포머들의 방향 그래프 또는 리스트("DAG"), 예컨대 본원에서 설명된 바와 같은, 변형 스택, 디포머 유형들의 리스트 또는 그래프, 고객 디포머들을 위한 포터블 코드, 및/또는 어떻게 스택, 리스트, 또는 DAG에서 디포머들이 자산 지오메트리의 섹션들에 바인딩되는지 또는 연관되는지를 기술하는 가중치 맵들을 포함할 수도 있다. 일부 실시형태들에서, 입력 파일은 (예를 들어, DAG에서 각각의 디포머에 대해) 자산 지오메트리의 서브세트들 또는 부분들을 0개 이상의 디포머들에 바인딩하는 하나 이상의 가중치 맵들 또는 가중치들을 포함할 수도 있다. 일부 실시형태들에서, 입력 파일은 본원에서 설명된 바와 같이, 포즈들(예를 들어, 채널 값들의 복원 가능한 상태들), 및/또는 클립들(예를 들어, 애니메이션화된 포즈들)을 포함할 수도 있다. 일부 실시형태들에서, 입력 파일은 상태 머신 및/또는 0개 이상의 커스텀 디포머 기능들을 기술하는 추상 신택스 트리("AST")의 형태인 명령들을 포함할 수도 있다. 일부 실시형태들에서, 입력 파일은 세분 및/또는 표면 솔루션들의 캐시된 값들, 및/또는 메타데이터, 예컨대 측정 단위들, 세계 방위, 및/또는 XYZ 손잡이 파라미터들 또는 값들을 포함할 수도 있다. 게다가, 일부 실시형태들에서, 입력 파일은 본원에서 다른 어딘가에서 설명된 바와 같이, 전술한 및/또는 다른 파라미터들, 변수들, 값들, 정의들 등 중 임의의 것을 포함할 수도 있다. 다양한 실시형태들에서, 입력 파일 포맷은 본원에서 추가로 상세히 설명되는 바와 같이, 본원에서 설명되는 DCC들 중 임의의 것에 및/또는 임의의 적합한 컴퓨팅 플랫폼(예를 들어, 모바일, 콘솔, 데스크탑, 클라우드 등) 상에 로드하고/하거나 로드 가능한 포터블 포맷으로 인코딩될 수도 있다. 다른 실시형태들에서, 변형 엔진 시스템(104)은 사용자가 플러그-인 아키텍처를 통해 변형 엔진 시스템(104)의 기본 기능을 확장하게 할 수도 있다. 이러한 플러그-인들은 새로운 변형 오퍼레이터 유형들을 제공할 수도 있다. 임의의 플러그-인들이 동작 동안 변형 엔진 시스템(104)에 의해 검출될 때, 변형 엔진 시스템(104)은 결국, (사용중인 경우) 애니메이션 툴(202) 및/또는 생성 툴(204)에 가용 플러그인(들)을 통지하여, 이들의 사용 및 구성을 위해 이들을 애니메이션 툴(202) 및/또는 생성 툴(204)의 사용자들에게 제시할 수도 있다. 더욱이, 이들 플러그-인들은 리그 파일 포맷(170)에 포함될 수도 있다.
일부 실시형태들에서, 변형 엔진 시스템(104)은 실시간 변형 및 애니메이션 엔진이다. 즉, 변형 엔진 시스템(104)은 자산의 변형을 실시간으로 발생시킬 수도 있다. 일부 실시형태들에서, 변형 엔진 시스템(104)은 자산의 높은-충실도 변형을 발생시키는 다양한 비선형 변환 툴들을 포함한다. 다양한 실시형태들에서, 변형 엔진 시스템(104)에 의해 제공되는 변형 옵션들은 제한이 없다. 즉, 다수의 변형 동작들이 본원에서 다른 어딘가에서 설명된 바와 같이 개개의 변형 동작들이 서로 영향을 미치지 않는 캐릭터의 변형을 수행하도록 이용될 수도 있다. 더욱이, 본원에서 설명된 바와 같이, 다양한 실시형태들에서, 변형 엔진 시스템(104)은 동작 순서 변형 엔진이다. 일반적으로, 본원 내 다른 어딘가에서 설명된 바와 같이, 동작 순서 변형은 자산의 이동 및/또는 변형에 관한 개개의 변형 동작들의 변형 패턴을 포함할 수도 있다. 예를 들어, 변형 엔진 시스템(104)에 의해 구현되는 동작 순서 변형은 높은-충실도 변형을 생성하기 위해 상이한 변형 동작들을 순차적으로 구현할 수도 있다.
다양한 실시형태들에서, 변형 엔진 시스템(104)은 게이밍 엔진(110) 및/또는 애니메이션 툴(202) 내에서 기본적으로(natively) 구현될 수도 있다. 즉, 자산의 변형은 게이밍 엔진(110) 및 애니메이션 툴(202)의 종래의 피부 및 뼈들 변형 툴들보다는 변형 엔진 시스템(104)에 의해 실시간으로 실행될 수도 있다. 이와 같이, 변형 엔진 시스템(104)의 디포머들은 기본적으로 게임 엔진 시스템(102) 및/또는 애니메이션 툴(202)로 전환될 수도 있다.
시스템(100)은 최종 사용자 애플리케이션(206)(또한, 본원에서 "애플리케이션(206)"로서 지칭됨)을 포함할 수도 있다. 다양한 실시형태들에서, 최종 사용자 애플리케이션(206)은 게임 엔진 시스템(102)에 의해 발생된 빌드 패키지를 수신한다. 빌드 패키지(예를 들어, 최종 사용자 애플리케이션 번들)는 해제를 위한 특정의 애플리케이션 또는 경험에 대한 최종 콘텐츠를 포함할 수도 있다. 일 실시형태에서, 빌드 패키지는 변형 엔진 시스템(104)에 의해 발생되는 변형된 자산들을 포함한다. 다른 실시형태에서, 빌드 패키지는 경험의 콘텐츠가 대화식으로 (사용자 입력, 인공 지능, 등에 따라) 변형된 모델들을 실시간으로 포함할 수 있도록, 변형-준비된 유형의 자산과 함께 변형 엔진 런타임의 버전을 포함한다. 적어도 일부 실시형태들에서, 변형 엔진 시스템(104), 및 연관된 빌드 패키지 및/또는 파일 포맷은, 둘 모두 예를 들어, 모바일 디바이스들, 게임 콘솔들, 데스크탑 PC들, 클라우드-기반 컴퓨팅 디바이스들 등을 포함하는, 광범위한 디바이스들에 걸쳐 실행되도록 설계된다. 본원에서 설명된 바와 같이, 이들 능력들과 연관된 적어도 하나의 기술적인 향상은 디지털 경험들이 포터블 저에너지 디바이스들에서 높은 성능 게이밍 콘솔들, 데스크탑들, 및 클라우드 렌더링 시스템들에 이르기까지, 매우 다양한 기능을 갖춘 하드웨어 시스템들에 걸쳐 배포될 수도 있다는 것이다.
다양한 실시형태들에서, 애니메이션 프로젝트(예를 들어, 비디오 게임)가 사용자들에게 배포되기 전에, 애니메이션 프로젝트는 최종 사용자 애플리케이션 번들에 패키징된다. 번들은 필수 코드 및 콘텐츠가 원하는 목표 플랫폼 상에서 실행하기에 적합한 최신 포맷임을 보장한다.
시스템(100)은 뷰어(208)와 같은, 하나 이상의 뷰어들을 포함할 수도 있다. 뷰어(208)는, 다양한 실시형태들에서, 변형 엔진 시스템(104)에 의해 발생되는 파일들을 열거나, 수정하고/하거나, 재생하도록 구성될 수도 있다. 뷰어(208)는 웹 브라우저, 모바일 운영 시스템들, 데스크탑 운영 시스템들 및 기타 등등 내에서 실행될 수도 있다. 뷰어(208)는 사용자 검사 및/또는 수정을 위해 변형 가능한 모델의 변형 채널 입력들 및 출력들의 일부 또는 모두를 노출하고/하거나, 변형 엔진에 특정한 다른 값들을 수정할 수도 있다.
도 3은 적어도 일 실시형태에 따른, 레이어링된 동작 순서 변형의 프로세스(300)를 예시한다. 따라서, 단계 301에서, 3D 캐릭터와 같은, 3D 애니메이션화된 자산의 정적 지오메트리가 생성된다. 예를 들어, 사용자는 애니메이션 툴(202)을 통해 자산을 생성한다. 자산은 지오메트리, 텍스쳐 등을 포함할 수도 있다. 적어도 일 실시형태에서, 애니메이션 툴(202)을 통해 생성된 자산은 리깅, 변형 및 애니메이션 중 하나 이상을 포함하지 않는다. 대신, 위에서 설명한 바와 같이, 자산은, 자산이 메시를 포함하지만 임의의 변형들이 적용되지 않았기 때문에, "네이키드"일 수도 있다.
적어도 일 실시형태에서, 단계 302에서, 변형 엔진 시스템(104)(예를 들어, 일부 경우들에서, 애니메이션 툴(202) 및/또는 생성 툴(204)과 관련하여)은 미리 빌드된 리그 템플릿을 임포트된 자산 지오메트리에 적용할 수도 있다. 일반적으로, 미리 빌드된 리그는 다양한 자산들과 연관될 수 있는, 하나 이상의 변형들을 포함하는, 리깅이다. 예를 들어, 리깅은 제1 자산(예를 들어, 바다 생물)에 대해 생성될 수도 있다. 리깅은 후속하여 제2 자산(예를 들어, 휴머노이드)에 대해 사용될 수도 있다. 그 결과, 적어도 일부 실시형태들에서, 네이키드 자산은 네이키드 자산과 동일하거나 상이할 수도 있는 다른 자산에 대해 이전에 생성된 미리 정의된 변형들을 포함하도록 빠르게 피팅되거나 또는 리깅될 수도 있다. 본원에서 추가로 상세히 설명되는 바와 같이, 이는 구성 중인 게임에의 다중 자산들의 빠른 추가를 용이하게 할 수도 있으며, 예를 들어, 기존 리깅은 다중 네이키드 자산들에 적용될 수도 있다.
본원에서 설명된 바와 같이, 적어도 일부 실시형태들에서, 커스텀(예를 들어, 사용자-정의된) 디포머들은 사용자에 의해 구성되고 변형 엔진 시스템(104)과 연관된 파일 포맷(예를 들어, 파일 포맷(316))으로 저장될 수도 있다. 파일 포맷(316) 내에서, 디포머들은 디포머 거동을 정의하기 위해 기본 오퍼레이터들을 결합한 AST(abstract syntax tree) 및/또는 데이터 흐름 그래프들을 이용하여 정의될 수도 있다. 대안적으로 또는 추가적으로, 적어도 일부 실시형태들에서, 개발자는 더 복잡한 커스텀 디포머들(205)을 변형 엔진 시스템(104)에 직접 동적 연결을 통해 공급할 수도 있다. 일단 커스텀 디포머(205)가 정의되면, 이는 본원에서 설명하는 바와 같이, 시스템(104)에 내장된 표준 디포머들에 제공되는 모든 능력들과 함께 이용될 수도 있다.
다른 한편, 적어도 일부 실시형태들에서, 단계 303에서, 변형 엔진 시스템(104)(예를 들어, 일부 경우들에서, 애니메이션 툴(202) 및/또는 생성 툴(204)과 관련하여)은 비-미리 빌드된 리그 템플릿을 임포트된 지오메트리에 적용하는데 사용될 수도 있다. 예를 들어, 게이밍 개발자, 애니메이터, 또는 모델러는 하나 이상의 디포머들을 자산에 추가함으로써 특정의 자산에 대한, 하나 이상의 디포머들을 포함하는, 리그를 생성할 수도 있다.
단계 304에서, 본원에서 추가로 상세히 설명되는 바와 같이, 변형 엔진 시스템(104)(예를 들어, 일부 경우들에서, 애니메이션 툴(202) 및/또는 생성 툴(204)과 관련하여)은 동작 순서 변형 스택의 변형 스택 내 변형 오퍼레이터를 하나 이상의 가중치들 또는 가중치 맵들에 연결하는데 사용될 수도 있다. 다양한 실시형태들에서, 가중치 맵들은 하나 보다 많은 변형 오퍼레이터에 연결될 수도 있다.
단계 305에서, 변형 엔진 시스템(104)(예를 들어, 일부 경우들에서, 애니메이션 툴(202) 및/또는 생성 툴(204)과 관련하여)은 다양한 디포머들(예컨대, 사용자에 의해 선택 및/또는 보정된 디포머들)을 포함하는 자산 파라미터들을 출력 파일(예를 들어, 출력 파일(316))로 번들링할 수도 있다. 예를 들어, 변형 엔진 시스템(104)은 지오메트리, 변형 레이어들(예를 들어, 지오메트리, UV 및/또는 시간-도메인에 영향을 미치는 레이어들), 가중치 맵들, 애니메이션들, 리그들, 노출된 또는 사용자-선택된 입력 채널들, 노출된 또는 사용자-선택된 출력 채널들 등을 번들링할 수도 있다. 다양한 실시형태들에서, 출력 파일(316)은 개인용 컴퓨터 또는 게임 콘솔 상에서 실행하고 플레이어에 의한 게임플레이용으로 구성되는 게임 엔진 시스템(102)의 인스턴스와 같은, 게임 엔진 시스템(102)에 의해 실행되도록, 게임 엔진 시스템(102)(및/또는 시뮬레이션 엔진)으로 송신될 수도 있다.
적어도 일 실시형태에서, 출력 파일(316)은 비디오 게임 또는 다른 시각적 매체들에서 사용 준비된 변형 가능한 캐릭터에 대응한다. 다양한 실시형태들에서, 프로세스(300)는 비디오 게임에서의 개별 변형 가능한 캐릭터들에 대응하는 다중 출력 파일들(316)의 생성을 포함한다. 예를 들어, 제1 파일(316)은 제1 변형 가능한 캐릭터에 대응하고, 제2 파일(316)은 제2 변형 가능한 캐릭터에 대응하는, 등등으로 대응한다.
단계 306에서, 변형 엔진 시스템(104)(예를 들어, 일부 경우들에서, 애니메이션 툴(202) 및/또는 생성 툴(204)과 관련하여)은 "트림된" 출력 파일(307)을 생성한다. 즉, 트림된 출력 파일(307)은 단지 파일(316)에 포함된 데이터의 부분을 포함하도록 생성될 수도 있다. 일 실시형태에서, 트림된 출력 파일(307)은 변형 리그 및 가중치 맵 세트 중 적어도 하나를 포함한다.
트림된 출력 파일(307)은 복수의 변형 리그 템플릿들을 포함하는 라이브러리(308)에 저장될 수도 있다. 라이브러리(308)는 미래 변형 가능한 모델들에 액세스 가능한 리그들의 컬렉션을 포함할 수도 있다. 적어도 일 실시형태에서, 리그들이 사용자에 의해 생성/작성된다. 리그들의 컬렉션은 오퍼레이터들/레이어들의 개수, 계산 복잡성, 캐릭터 유형(예를 들어, 바이페드, 얼굴, 등), 세부사항 레벨(LOD) 지원 등과 같은, 리그 특성들로 탐색 가능할 수도 있다. 다양한 실시형태들에서, 단계 303에서 생성되는 변형 리그들은 라이브러리(308)에 저장될 수도 있다.
단계 309에서, 출력 파일(316)은 변형 엔진 시스템(104)을 포함하는 게임 엔진 시스템(102)에 의해 로드될 수도 있다. 적어도 일 실시형태에서, 파일(316) 내 지오메트리는 최적의 포맷으로 변환된다. 다양한 실시형태들에서, 단계 309는 변형 엔진 시스템(104)을 포함하는 게임 엔진 시스템(102)에 의해 비디오 게임을 개시하는 것에 대응한다. 즉, 비디오 게임의 플레이 세션이 단계 309에서 개시된다.
단계 310에서, 파일(316) 내 정보는 하나 이상의 게임 로직 변수들에 바운딩되거나 또는 연관될 수도 있다. 그 결과, 다른 게임 로직이 변형 파라미터들을 구성할 수도 있다. 다양한 실시형태들에서, 캐릭터 및 리깅은 호스트 애플리케이션들(예를 들어, 게임 엔진 시스템(102) 및/또는 애니메이션 툴(202))의 컨트롤들에 연결된다.
단계들 311-315는 게임 엔진 시스템(102) 및/또는 변형 엔진 시스템(104)에 의해 실행되는 렌더 루프에 관한 것이다. 예를 들어, 비디오 게임의 실행 동안, 사용자는 미소를 포함하도록, 예컨대, 핸드-헬드 제어기를 이용하여 비디오 게임의 캐릭터를 변경하기 위한 입력을 제공한다. 미소를 포함시키기 위한 캐릭터의 얼굴의 변형이 렌더 루프를 통해 실행된다. 특히, 미소를 구현하기 위한 캐릭터의 얼굴의 변형이 렌더 루프에서 발생한다. 그 결과, 렌더 루프 내에서 발생되는 변형은 비디오 게임의 실행 동안 실시간 높은-충실도 변형이다. 달리 말하면, 게임플레이 시스템(예를 들어, 콘솔 컴퓨팅 디바이스)에의 변형 엔진 시스템(104)의 포함은 본원에서 설명하는 바와 같이, 자산 생성 동안 제공되는 변형들의 애플리케이션을 용이하게 한다.
따라서, 단계 311에서, 게임 엔진 시스템(102)은 입력 값 스크립팅을 수행한다. 예를 들어, 게임 엔진 시스템(102)에 의한 각각의 프레임의 프로세싱 동안, 게임 로직 변수들 또는 애니메이션 클립 값들에 대한 새로운 값들이 변형 엔진 시스템(104)으로 공급될 수도 있다.
단계 312에서, 변형 엔진 시스템(104)은 세부사항 레벨(또는, "LOD")을 결정할 수도 있다. 추가적으로, 변형 엔진 시스템(104)은 하나 이상의 서브-그래프들을 실행할 수도 있다. 일 실시형태에서, 하나 이상의 서브-그래프들의 실행은 게임 엔진 시스템(102)(또는, 시뮬레이션 엔진)에 의해 정의된 스크린 상의 모델의 예측 사이즈 및 품질 목표들과 같은, 휴리스틱스에 기초한다.
일 예에서, 멀티-참가자 게임 중 게임 보기에 있는 동안, 제1 참가자는 플레이어 및/또는 제2 참가자로부터 제1 거리(예를 들어, 2 피트)에 떨어져 있고, 제1 참가자는 플레이어 및/또는 제3 참가자로부터 제2 거리(예를 들어, 50 ft)에 떨어져 있으며, 여기서, 제2 거리는 제1 거리보다 더 크다.
그 결과, 변형 엔진 시스템(104)은 제1 거리 및 제2 거리를 결정할 수도 있다. 제2 참가자 및 제3 참가자 둘 모두를 높은-충실도로 변형하기 보다는, 변형 엔진 시스템(104)은 제2 참가자를 높은-충실도로 변형하고 (더 멀리 있는) 제3 참가자를 제2 참가자와 연관된 높은-충실도보다 낮은 충실도로 변형할 수도 있다. 그 결과, 플레이어 및/또는 다른 참가자들로부터의 거리들에 기초한 자산들의 이러한 실시간 변형과 연관된 적어도 하나의 기술적인 향상은 (제2 참가자와 비교하여) 더 작은 양의 계산 시간이 적어도 제3 참가자의 변형에 소요된다는 것이다. 달리 말하면, 세부사항들이 어쨌든 표시되지 않기 때문에, 동일한 레벨의 변형 또는 세부사항을 주어진 플레이어 또는 캐릭터로부터 더 멀리 떨어져 있는 캐릭터들에 적용할 필요가 없을 수도 있다. 일 실시형태에서, 변형 엔진 시스템(104)은 더 높은 LOD를 갖는 제2 참가자에 대해 변형 레이어들의 제1 세트를 변형하고, 더 낮은 LOD를 갖는 제3 참가자에 대해 (변형 레이어들의 제1 세트보다 작은) 변형 레이어들의 제2 세트를 변형한다.
단계 313에서, 변형 엔진 시스템(104)은 캐릭터의 변형을 평가/계산한다. 일 실시형태에서, 변형 엔진 시스템(104)은 정점 로케이션들, UV 또는 맵핑 좌표들, 등과 같은, 지오메트리 변형의 내부 상태를 업데이트한다. 예를 들어, 캐릭터의 얼굴이 입의 무표정한 표정에서 미소로 변형된다. 자산 생성 및/또는 변형 동안, 사용자 또는 아티스트가 하나 이상의 커스텀 변형 오퍼레이터들을 제공하면, 또한 이들 오퍼레이터들이 필요한 경우 및 이용 가능한 경우 실행될 수도 있는 것도 313 동안이다.
다양한 실시형태들에서, 변형 엔진 시스템(104)에 의해 수행되는 변형들은 다음 수학적 또는 수치적 연산들을 포함할 수도 있지만, 이에 제한되지 않는다: 병진이동, 회전, 크기 조정, 곡선: 슬라이드, 곡선: 회전, 곡선: 크기 조정, 곡선: 뒤틀기, 모프, 단일-축 구부리기, 표면 상의 슬라이드, 이완, 둘러싸기, 격자, 구형화, 아이템 영향 디포머(item influence deformer), 다축 구부리기, 다축 다중-구부리기, 제약 조건: 위치, 제약 조건: 회전, 제약 조건: 크기 조정, 제약 조건: 조준, 제약 조건: 표면에 투영 및 기타 등등. 다양한 실시형태들에서, 사용자는 하나 이상의 변형들의 조합인 캐릭터의 포즈(예를 들어, 미소)를 정의할 수도 있다.
단계 314에서, 변형 엔진 시스템(104)은 이미지 렌더링을 사전-최적화할 수도 있다. 일 실시형태에서, 변형 엔진 시스템(104)은 GPU 및/또는 CPU로의 업로드를 위해 변형된 지오메트리를 준비한다. GPU를 위한 것이든 또는 CPU를 위한 것이든, 변형 엔진 시스템(104)은 지오메트리 버퍼들 및 캐시들(또는, 이들의 부분들)이 업데이트되어야 하는지를 식별할 수도 있다. 적어도 일 실시형태에서, 변형 엔진 시스템(104)은 지오메트리 세분의 결과들을 포함하기에 충분한 사전-할당된 정점 버퍼를 관리한다. 일 실시형태에서, 변형 엔진 시스템(104)은 온-GPU 지오메트리 발생 또는 온-GPU 디포머들을 위한 GPU 프로그램들로 게임 엔진(102) 또는 DCC를 관리하거나 또는 공급한다. 일 실시형태에서, 비디오 게임에서 오브젝트의 적어도 일부분이 스크린 밖에 있다고 결정된다. 특히, 다양한 휴리스틱스 및 알고리즘들이 예컨대, 오브젝트 또는 자산이 스크린 밖에 있을 때, 게임 엔진에 제공되는 지오메트리 메타데이터를 업데이트하는데 사용된다. 그 결과, GPU 및/또는 CPU는 스크린 상에서 디스플레이되지 않는 오브젝트 또는 자산의 부분들과 연관된 지오메트리를 실행하지 않는다. 따라서, 사전-최적화와 연관된 적어도 하나의 기술적인 향상은 더 빠른 프로세싱 시간들 뿐만 아니라 더 낮은 메모리 요구사항들을 포함할 수도 있다. 예를 들어, 게임플레이 동안 자산의 부분이 스크린 밖에 나타나도록 결정하면, 자산의 오프-스크린 부분들이 렌더링되거나 또는 변형될 필요가 없기 때문에, 프로세싱을 빠르게 하고 메모리 할당 요구사항들을 감소시킬 수도 있다.
단계 315에서, 게임 엔진 시스템(102)은 변형 엔진 시스템(104)에 의해 수행되는 변형에 기초하여 이미지 렌더링을 실행할 수도 있다. 일 실시형태에서, 자산의 지오메트리가 (예를 들어, GPU 상에서) 업데이트된 후, 게임 엔진 시스템(102)은 최종 이미지를 발생하기 위해 래스터화 프로세스로 프레임을 마무리할 수도 있다.
도 4는 적어도 일 실시형태에 따른, 예컨대, 게임플레이 동안 발생할 수도 있는 애니메이션 단계 동안, 애니메이션 단계 렌더 루프의 예시적인 프로세스(400)를 예시한다. 다양한 실시형태들에서, 단계들 401-407은 도 2의 단계 211과 같이, 입력 값 스크립팅과 연관될 수도 있다. 단계 401에서, 캐릭터들/오브젝트들이 게임 엔진 시스템(102)에서 업데이트된다. 캐릭터들/오브젝트들은 인공 지능(AI) 및/또는 사용자 제어를 통해 업데이트될 수도 있다. 예를 들어, 사용자 입력(예를 들어, 사용자가 게임 제어기 상의 버튼을 선택하는 것)에 응답하여, 캐릭터 또는 자산은 게이밍 환경 내에서 이동한다.
단계 402에서, 게임 엔진 시스템(102)은 스크립팅 출력 값 저장을 수행할 수도 있다. 예를 들어, 일 실시형태에서, 스크립팅/AI 및 사용자 입력의 예비 결과들이 제공된다. 예비 결과들의 서브세트는 자산의 변형 및 애니메이션에 관련될 수도 있다.
단계 404에서, 게임 엔진 시스템(102)은 통상의 기술자가 주지하는 바와 같이, 역운동역학(IK) 제약 값 저장을 수행할 수도 있다. 일 실시형태에서, 게임 환경 또는 게임 세계 및/또는 다른 공간 목표들(예를 들어, 도달 목표들)로부터의 물리 제약들이 계산된다. 적어도 일 실시형태에서, 단계 404는 단계 403과 조합하여 수행된다. 적어도 일 실시형태에서, 단계 404는 생성자의 또는 아티스트의 목표들에 기초하여 선택적일 수도 있다. 예를 들어, 게임 엔진 시스템(102)의 IK 기능들은 켜져 있고 실행중이거나, 또는 켜져 있지 않고 실행중이 아닐 수도 있다. 이와 같이, 게임 엔진 시스템(102)이 꺼지면, 변형 엔진 시스템(104)은 다른 입력들과 함께 계속 기능한다. 달리 말하면, 적어도 일부 실시형태들에서, 변형 엔진 시스템(104)은 게임 엔진 시스템(102)의 지원 없이 및/또는 게임 엔진 시스템(102)에 의해 전형적으로 제공되는, IK 기능들과 같은, 적어도 일부 기능의 지원 없이, 게임플레이를 용이하게 하기 위해, 게임 엔진 시스템(102) 대신, 기능할 수도 있다.
단계 405에서, 게임 엔진 시스템(102)은 물리 및 환경 업데이트들을 수행할 수도 있다. 적어도 일 실시형태에서, 장면 내 물리적 오브젝트들 또는 자산들이 업데이트된다. 이는 애니메이션화된 변형 가능한 오브젝트 또는 자산 주변의 게임 환경 또는 세계의 형상에 대한 새로운 데이터를 제공한다. 적어도 일 실시형태에서, 단계 405는 단계 401과 조합하여 수행된다.
단계 406에서, 게임 엔진 시스템(102)은 예컨대, 게임 환경 내 플레이어의 캐릭터의 모션에 기초하여, 그리고 게임 환경 내에서 이동하도록 플레이어에 의해 제어됨에 따라, 카메라 업데이트들을 수신할 수도 있다. 일 실시형태에서, 카메라 업데이트들은 카메라 위치, 절두체, 폐색, 광선 추적 세팅들, 등을 포함할 수도 있다.
단계 407에서, 변형 엔진 시스템(104)은 활성화 또는 비활성화할 변형 레이어들의 최적의 세트를 선택하기 위해 변형 가능한 모델 또는 자산과 연관된 영향의 양을 결정할 수도 있으므로, 시뮬레이션 개발자 및/또는 게임 엔진 시스템(102)에 의해 결정되는 대로, 시각적 품질 목표 및 가용 CPU/GPU 예산에 대해 최적화할 수도 있다. 예를 들어, 카메라 절두체의 사이즈가 결정되는 것에 응답하여, 디스플레이 디바이스(예를 들어, 디스플레이 디바이스(108)) 상의 주어진 변형 가능한 특징(예를 들어, 미소)의 사이즈가 결정될 수도 있다. 적어도 일 실시형태에서, 변형 엔진 시스템(104)은 디포머들 및 영향들(예를 들어, 반사, 색상 번짐, 등)이 변형 가능한 오브젝트 또는 자산의 변형에 필요한지를 결정한다. 예를 들어, 변형 엔진 시스템(104)은 게임플레이 동안 적용되어야 하는 다양한 디포머들에 대해 결정들을 행하기 위해 변형 가능한 오브젝트 또는 자산과 관련된 카메라 정보를 이용할 수도 있다.
단계 403에서 (예를 들어, 단계들 401-407 중 하나 이상의 완료 시), 게임 엔진 시스템(102)은 입력 값 동기화를 수행할 수도 있다. 일 실시형태에서, 변형 가능한 모델 또는 자산을 수정하는데 사용되는 값들이 변형 엔진 시스템(104)으로 송신된다. 값들은 캐릭터의 시선 방향, 캐릭터에 부착된 오브젝트들의 위치, 상대 로케이션, 캐릭터 아래 지면의 형상, 등을 포함할 수도 있다. 이 값들을 수신하는 것에 응답하여, 변형 엔진 시스템(104)은 자산의 시선 방향 등에 응답하여, 예컨대, 자산의 지오메트리의 부분들을 변형하기 위해, 하나 이상의 변형들을 자산에 적용할 수도 있다.
일부 실시형태들에서, 자산(예를 들어, 하나의 오브젝트, 캐릭터, 행위자, 등)은 다른 자산(예를 들어, 다른 오브젝트, 캐릭터, 행위자, 등)에 대한 의존성을 가질 수도 있다. 의존성을 고려하기 위해, 적어도 일부 실시형태들에서, 하나 또는 2개의 자산들의 좌표계 맵들은 예컨대, 일반적으로 독립적으로 이동하는 이러한 자산들이 변형 평가 전에 이들 사이에 업데이트된 적합한 의존성 값들을 갖도록 보장하기 위해, 재동기화될 수도 있다. 예를 들어, 제1 자산의 팔의 변형은 제2 행위자의 팔의 변형 결과들을 아는 것에 의존할 수도 있으며, 두 행위자들은 세계 공간에서 잠재적으로 서로 임의로 떨어져 위치된다.
일부 실시형태들에서, (제어 지점들 및/또는 관심 지점들로서 또한 지칭될 수도 있는) 0개 이상의 목표 지점들이 예를 들어, 몇 가지 예들을 들자면, 캐릭터 머리의 정수리, 또는 캐릭터의 우측 검지 손가락의 끝, 또는 캐릭터의 넥타이 하단의 로케이션과 같은, 변형 리그로부터 방출되거나 또는 제공될 수도 있다. 다른 실시형태들에서, 이들 목표 지점들은 또한 변형된 캐릭터의 표면에 따라 변형되는, 방위, 프레임, 법선, 접선, 및/또는 다른 방위 벡터들을 포함할 수도 있다. 이 정보는 게임 엔진 시스템(102) 및/또는 변형 엔진 시스템(104)에 포함된 렌더링 엔진에 의해 쿼리될 수도 있으며, 루프의 현재의 반복 및/또는 또는 더 많은 후속 반복(들)에서 다른 스크립팅 활동들 또는 물리 활동들에서 이용될 수도 있다.
단계들 408 및 409는 위에서 설명한 바와 같이, 적어도 일 실시형태에서, 단계 313과 같이, 변형 평가와 연관된다. 단계 408에서, 변형 엔진 시스템(104)은 (예컨대, 단계 407의 결과들에 따라) 선택적 캐시 무효화 및/또는 레이어 활성화/비활성화를 수행한다. 적어도 일 실시형태에서, (단계 403에서) 입력 값 동기화에 기초하여, 개개의 디포머들이 활성화/비활성화되며, 입력 값들이 변경되면 업데이트된다.
적어도 일 실시형태에서, 선택적 캐시 또는 선택적 캐싱이 구현된다. 즉, 변형 가능한 오브젝트 또는 자산에 관한 이전 작업이 변형 가능한 오브젝트 또는 자산의 현재 변형에 이용될 수도 있다. 예를 들어, 미소의 변형이 제1 프레임에서 제2 프레임으로 변경되지 않으면, 제1 프레임에 대해 이미 계산되었기 때문에, 제2 프레임에 대한 미소의 변형의 계산은 건너뛸 수도 있다. 선택적 캐시 또는 캐싱과 연관된 적어도 하나의 기술적인 향상은 변경되거나 또는 이동되지 않는 자산들 및/또는 임의의 시각적 리프레시를 달리 필요로 하지 않는 자산들 또는 자산의 부분들에 대해 프레임에서 후속 프레임까지 변형 정보의 재활용에 의해, 프로세서 속도가 향상될 수도 있고/있거나 메모리 할당 요구사항들이 감소될 수도 있다는 것이다.
단계 409에서, 데이터 그래프 평가가 시작될 수도 있다. 적어도 일 실시형태에서, 변형 엔진 시스템(104)은 시스템들(예를 들어, 데이터 의존성들)이 변형 엔진 시스템(104)에 의한 평가를 시작할 준비가 되어 있음을 결정할 수도 있다.
단계들 410-413은 (예를 들어, CPU/GPU 루프에서) 노드 태스크 큐잉(queuing) 및 프로세싱과 연관된다. 적어도 일 실시형태에서, 이들 단계들은 병렬화 가능한 변형 계산들을 다중 독립 쓰레드들, 및/또는 다중 독립 CPU들/GPU들에 할당할 수도 있다. 적어도 일 실시형태에서, 태스크 큐잉은 또한 CPU/GPU 아키텍처-최적화된 디포머 계산 루틴들로 교차-컴파일하거나 또는 재-컴파일하거나, 또는 이와 동적으로 링크할 수도 있으므로, 동일한 자산 성능이 디바이스 유형에 관계없이, 존재하는 디바이스 유형(들)에 대해 가장 시간-효율적인 방식으로 가능하다. 적어도 일 실시형태에서, 단계들 410-413은 위에서 설명한 바와 같이 단계 313에 대응할 수도 있다.
따라서, 단계 410에서, 변형 엔진 시스템(104)은 무효한/비캐싱된 의존 데이터를 식별할 수도 있다. 예를 들어, 변형 엔진 시스템(104)은 예컨대, 게임 엔진 시스템(102)에 의해 및/또는 게임플레이 동안 자산을 제어하는 플레이어 입력에 응답하여 어떤 출력 데이터가 요청되는지를 결정할 수도 있다.
단계 411에서, 변형 엔진 시스템(104)은 무효한/비캐싱된 의존 데이터 노드들의 평가를 큐잉할 수도 있다. 적어도 일 실시형태에서, 변형 엔진 시스템(104)은 평가할 변형 가능한 오브젝트들 또는 자산들의 순서 정렬된 태스크 리스트를 구축한다. 이는 원하는 결과를 달성하기 위해 이루어질 수 있는 작업의 최소량을 결정하기 위해 이전 단계들에서 수집 또는 설정된 정보를 고려할 수도 있다.
단계 412에서, 변형 엔진 시스템(104)은 무효한/비캐싱된 노드들(준비된 경우)에 대한 업스트림 데이터에 대해 변형 오퍼레이터 또는 변형 채널과 같은 오퍼레이터를 실행할 수도 있다. 일 실시형태에서, 오퍼레이터는 입력 데이터를 변경하는 작업을 완료할 수도 있다. 이는 (1) 새로운 출력 데이터를 생성하는 것, 또는 (2) 입력 데이터를 제자리에서(in place) 수정하는 것에 의해 이루어질 수도 있다.
단계 413에서, 변형 엔진 시스템(104)은 노드 동작 출력 데이터를 인-플레이스 또는 인-캐시로 저장할 수도 있다. 일 실시형태에서, 계산된 데이터는 (1) 원래 데이터 위에 저장되거나, 또는 (2) 새로운 출력 데이터로서 설정된다. 게임 엔진 시스템(102) 및/또는 변형 엔진 시스템(104)과 같은, 평가 시스템은 이후 작업이 완료되었음을 통지받을 수도 있다. 사용자 또는 아티스트가 하나 이상의 커스텀 변형 오퍼레이터들을 제공하였으면, 또한 이들 오퍼레이터들이 필요한 경우 및 이용 가능한 경우에 실행되는 것도 단계 412 동안일 수도 있다.
단계들 414 및 415는 위에서 설명한 바와 같이 단계 314와 같은, 이미지 렌더링 사전-최적화와 연관된다.
단계 414에서, 변형 엔진 시스템(104)은 선택적 지오메트리 세분 또는 재-세분을 수행할 수도 있다. 적어도 일 실시형태에서, 렌더링 가능한 서브-분할된 메시들의 서브세트 정점 위치들은, 애니메이션 또는 렌더링 루프의 현재의 반복에 대해 시각적 충실도가 가장 필요한 서브-분할 또는 서브-분할 업데이트들에 선택적으로 포커싱하기 위해, 계산 및 업데이트된다. 계산들은 프로세싱 단계에서 변경된 데이터(예를 들어, 메시 데이터)의 부분들에 기초할 수도 있다. 더욱이, 계산 비용은 이전 프레임으로부터의 작업을 재사용함으로써 감소될 수도 있다. 그 결과, 본원에서 설명된 바와 같이, 적어도 하나의 기술적인 향상은 프로세싱 속도가 향상되고/되거나 메모리 요구사항들이 감소되는 것일 수도 있다.
적어도 일부 종래의 시스템들에서, 모델 또는 자산을 변형하기 위해, 모델 또는 자산의 메시 상의 다수의 지점들이 이동되어야 할 수도 있으며, 이는 계산 비용이 많이 들 수도 있다. 이와 같이, 예시적인 실시형태에서, 최소량의 지점들을 이동하면서도 여전히 높은-충실도를 유지하는 것이 바람직할 수도 있다. 적어도 일 실시형태에서, 낮은-해상도 지오메트리가 삼각형 서브-분할 알고리즘을 이용하여 사후-변형 지오메트리 상태를 다시 고해상도 지오메트리 추정치까지 변환할 수도 있는 단계 414와 조합하여, 변형 평가에 대한 입력으로서 사용될 수도 있다. 그 결과, 더 적은 양의 지점들이 자산의 높은-충실도 변형을 생성하는데 여전히 사용될 수도 있다.
단계 415에서, 변형 엔진 시스템(104)은 선택적 광선 추적 구조 발생 또는 재발생을 수행할 수도 있다. 적어도 일 실시형태에서, 광선 추적 가속 구조의 서브세트가 업데이트된다. 서브세트는 프로세싱 단계에서 변경된 데이터(예를 들어, 메시 데이터)의 부분들 뿐만 아니라, 이들이 (변형 엔진에 의해 구성된) 광선 추적 가속 구조 바운딩(bounding) 체적 허용오차들에 대해 이동되는 정도 뿐만 아니라, 세분 결과들이 게임 엔진 시스템(102) 또는 DCC에 의해 요구되는 특정의 광선 추적 효과에 대해 필요한 정도에 기초하며, 예를 들어, 낮은-충실도 광선 추적 가속 구조들은 일부 광선 추적 효과들 요구사항들에 대해 충분할 (그리고 계산하기에 더 빠를) 수도 있다. 업데이팅은 광선 추적 가속 구조에 대한 데이터의 없음, 일부, 전체, 또는 대략적인 (빠른) 서브세트일 수도 있다.
단계 416은 일부 실시형태들에서, 본원에서 설명하는 바와 같이, 단계 315와 같은, 이미지 렌더링에 대응한다. 단계 416에서, 게임 엔진 시스템(102)은 래스터화 및/또는 광선 추적 변형된 지오메트리를 수행할 수도 있다. 적어도 일 실시형태에서, 변형 가능한 모델 또는 자산의 지오메트리가 GPU(및/또는 CPU) 상에서 업데이트되면, 게임 엔진 시스템(102)은 최종 이미지를 발생하기 위해 그의 래스터화 프로세스로 프레임을 마무리한다. 적어도 일 실시형태에서, 단계 416은 최종 사용자 애플리케이션(206)에서 디스플레이되는 출력에 대응한다.
단계 417은 물리 속성들을 업데이트하는 것에 대응한다. 다양한 실시형태들에서, 단계 417은 단계 405와 동일하거나 또는 유사할 수도 있다. 적어도 일 실시형태에서, 애니메이션화된 오브젝트 또는 자산은 (예를 들어, 물리 시뮬레이션의 목적들을 위한) 물리적 오브젝트 또는 자산에 대응한다. 이 단계는 결과적인 변형을 분석한다. 추가적으로, 최종 프레임과 비교한 변화의 성질 및 다른 인자들에 기초하여, 변형 엔진 시스템(104)은 변형 엔진 시스템(104)에 의해 요구되는 충돌 형상 및 다른 물리 속성들에 대한 최적화된 업데이트를 수행한다. 다른 인자들은 원하는 물리 충실도, 일관성, 및 중요성(예를 들어, 스크린 상의 사이즈)일 수도 있다.
도 5는 변형 가능한 자산 또는 모델을 생성하는 예시적인 프로세스(500)를 예시한다. 적어도 일부 실시형태들에서, 프로세스(500)는 예를 들어, 본원에서 설명하는 바와 같이, 프로세스(200)의 변형 가능한 모델의 생성 단계와 동일하고/하거나 유사할 수도 있다. 더욱이, 본원에서 설명된 바와 같이, 자산 또는 모델에의 하나 이상의 디포머들의 적용을 포함한, 변형 가능한 자산 또는 모델의 생성은 변형 엔진 시스템(104)을 이용하여 수행될 수도 있다.
단계 510에서, 변형 엔진 시스템(104)(예를 들어, 일부 경우들에서, 애니메이션 툴(202) 및/또는 생성 툴(204)과 관련하여)은 본원에서 설명하는 바와 같이, 네이키드 자산 지오메트리와 같은, 기본 모델 또는 기본 자산을 임포트할 수도 있다. 기본 모델은 지오메트리, 텍스쳐, 및 일부 경우들에서는, 다른 세부 사항을 포함할 수도 있다. 그러나, 본원에서 설명된 바와 같이, 디포머들은 임포트 시에 기본 모델 또는 기본 자산에 적용되지 않거나 또는 이에 포함되지 않을 수도 있다. 따라서, 기본 모델 또는 기본 자산이 본원에서 설명하는 바와 같이, 리깅, 변형, 애니메이션 등을 위해 변형 엔진 시스템(104)으로 임포트될 수도 있다.
따라서, 단계 501에서, 적어도 일부 실시형태들에서, 미리 빌드된 변형 리그가 임포트된 지오메트리에 적용된다. 일부 실시형태들에서, 단계 503에서, 본원에서 설명된 바와 같이, 변형들, 변형 채널들 등을 포함할 수도 있는, 새로운 변형 리그는 처음부터 새로 생성하고/하거나, 상이한 자산에 적용되는 기존 템플릿과 같은 기존 변형 템플릿으로부터 채우거나 또는 재활용될 수도 있다.
다양한 실시형태들에서, 단계들 501 및/또는 503의 하나 이상의 출력들이 변형 엔진 시스템(104)으로 임포트될 수도 있다. 본원에서 설명된 바와 같이, 다양한 실시형태들에서, 변형 엔진 시스템(104)은 변형 및 애니메이션 데이터의 생성을 위해 (예를 들어, 도 6 내지 도 21을 참조하여 설명된 바와 같이) 커스텀 변형들을 개발하는 특수 툴들과 같은, 특수 툴들을 포함할 수도 있다.
단계 508에서, 가중치 맵들이 본원에서 설명된 바와 같이, 지오메트리에 대해 정의된 가중치 값들로, 생성되어 자산, 또는 자산의 부분들에 할당될 수도 있다. 일 실시형태에서, 아티스트는 가중치들을 캐릭터의 입술들 위/근처 및/또는 임의의 다른 자산 로케이션과 같은, 캐릭터와 같은 자산의 다양한 부분들에 적용할 수도 있다. 가중치 맵들은 서로 중첩할 수도 있거나 또는 하나 이상의 레이어들에서와 같이, 서로 중첩하지 않을 수도 있다. 일 실시형태에서, 아티스트는 또한 추가적인 시맨틱들, 예를 들어, 해당 맵 또는 오퍼레이터가 "턱 상/하" 이동, 또는 "안구 좌측/우측" 이동을 위한 것인지 여부를 맵에 추가할 수도 있다. 이 정보는 모델의 물리적 버전들을 발생하는 모션 요구사항들의 설명을 내보내는 것을 돕기 위해 추후 사용될 수도 있다.
추가적으로, 그리고 추가로 예시하기 위해, 캐릭터가 미소를 짓거나 또는 다른 표현을 포함하는 것이 바람직할 수도 있다. 캐릭터는 (예를 들어, 비선형 변형 오퍼레이터들 또는 변형 채널들을 이용하는) 다양한 변형 레이어들을 가질 수도 있다. 모델 또는 자산 상에 미소를 생성하기 위한 사용자 입력에 응답하여, 어떤 모델의 서브-세트들이 비선형 변형 오퍼레이터들에 의해 영향을 받아야 하는지가 결정될 수도 있다. 다양한 변형 레이어들(또는, 비선형 변형 오퍼레이터들)은 우측으로 열리는 턱, 좌측으로 열리는 턱, 입술들의 우측 상의 미소의 부분, 입술들의 좌측 상의 미소의 부분, 입술들 중간에서의 미소의 부분 및 기타 등등을 포함할 수도 있다.
단계 509에서, 작성자-교정 형상들이 생성될 수도 있다. 일 실시형태에서, 교정 형상들(예를 들어, 사용자 조작 정점 형상)이 최종 변형된 형상을 증대 및 보충하기 위해 생성 또는 개발될 수도 있다. 교정 형상들은 변형된 형상이 최종 터치들 또는 뉘앙스를 갖게 하도록 생성된 선택적인 변형의 유형일 수도 있다. 교정 형상들 자체는 리그의 다른 채널 값들에 따라 구성 가능한 강도로, 리그 내에서 점진적으로 적용될 수도 있다. 예를 들어, 이마 주름 교정 형상은 눈썹들 채널 값들이 높을 때 강하게 나타나고, 그리고 눈썹들 채널 값들이 낮을 때 효과가 거의 보이지 않도록 구성될 수 있다.
단계 510에서, 리그 피팅이 수행될 수도 있다. 예를 들어, 사전-빌드된 리그 템플릿들 및/또는 커스텀 생성된 리그들은 자산 지오메트리에 피팅될 수도 있다. 추가적으로, 가중치 맵들이 생성되어 자산 지오메트리에 부착될 수도 있다. 제어 지점들 또는 제어 라인들을 이용하는 추가적인 특정의 유형들의 디포머들은 이때 조정된 이러한 지점들 또는 라인들을 또한 가질 수도 있다(예컨대, 도 17 참조).
단계 511에서, LOD들, 사용자 채널들 및/또는 다른 메타데이터에 대한 태깅이 수행될 수도 있다. 적어도 일 실시형태에서, 아티스트와 같은, 사용자는 변형 리그에서 레이어들을 식별하고 이들을 하나 이상의 LOD 그룹들 또는 LOD 중요성 레벨들과 연관시킨다. 다양한 실시형태들에서, 단계들 508, 509, 510 및/또는 511 중 하나 이상의 출력이 변형 엔진 시스템(104)에 제공되고/되거나 이에 의해 용이해 진다.
단계 512에서, 변형 모델 데이터 및 애니메이션들 데이터가 본원에서 설명하는 바와 같이, 예컨대 출력 파일(316)로 내보내질 수도 있다. 예를 들어, 변형 엔진 시스템(104)(예를 들어, 일부 경우들에서, 애니메이션 툴(202) 및/또는 생성 툴(204)과 관련하여)은 자산 지오메트리, 변형 레이어들(예를 들어, 지오메트리, UV 및/또는 시간-도메인, 및 다른 파라미터들에 영향을 미치는 레이어들), 가중치 맵들, 애니메이션들, 리그들, 노출된 또는 사용자-선택된 입력 채널들, 노출된 또는 사용자-선택된 출력 채널들 등을 번들링할 수도 있다. 다양한 실시형태들에서, 출력 파일(316)이 게임 엔진 시스템(102)(또는, 시뮬레이션 엔진)으로 송신되고, 본원에서 설명하는 바와 같이, 변형 엔진 시스템(104)의 도움으로, 게임 엔진 시스템(102)으로 로드되어 이에 의해 실행될 준비가 된다.
단계 513에서, 애니메이션 클립들이 사용자 또는 아티스트에 의해 생성될 수도 있다. 예를 들어, 애니메이션은 변형 엔진 시스템(104)(예를 들어, 일부 경우들에서, 애니메이션 툴(202) 및/또는 생성 툴(204)과 관련하여)을 이용하여 생성될 수도 있다. 다양한 실시형태들에서, 지오메트리는 리깅에 바인딩되고 후속하여 하나 이상의 파일들(예를 들어, 출력 파일(316), 포즈 파일, 등)로 번들링될 수도 있다.
일부 실시형태들에서, 선택적인 인간-판독가능 이름들을 가진, 정적 포즈들이 사용자 또는 아티스트에 의해 생성될 수도 있다. 이들 포즈들은 예컨대, 추후 포즈 블렌딩 및/또는 취출을 위해, 저장된 출력 파일(316)로 및/또는 다른 파일로 번들링될 수도 있다. 본원에서 설명된 바와 같이, 이들 포즈들은 디포머 채널들과 같은, 키 값 쌍들의 컬렉션들을 포함할 수도 있으며, 여기서, 변형 리그 상에서 이용 가능한 키 값 쌍들 또는 채널들 중 하나 이상은 사전-설정된 값들을 가질 수도 있다.
일부 실시형태들에서, 게임 개발자, 아티스트, 또는 사용자는 새로운 포즈들을 형성하기 위해 결합할 기존 포즈들의 서브세트들을 선택하기로 택할 수도 있다. 예를 들어, 그리고 예시하기 위해, 사용자는 "화난" 포즈의 채널들의 눈썹들 서브세트를 "쇼크받은(shocked)" 포즈의 채널들의 입술들 서브세트와 결합하도록 선택할 수도 있다. 이후 이들은 후속 저장을 위해 새로운 이름을 이 새로운 포즈, 예컨대 "화난-쇼크받은"에 할당할 수도 있다. 일부 실시형태들에서, 사용자는 혼합된 채널들의 쌍 당 독립적인 가중치들을 이용하여 가중치 혼합들을 통해 다중 포즈들을 결합하고, 후속 저장을 위해 새로운 이름을 이 결과적인 포즈에 할당하도록 선택할 수도 있다.
적어도 일부 실시형태들에서, 단계 512 이전 및/또는 이전에, 사용자는 포즈 구동 분석을 개시할 수도 있다. 이 포즈 구동 분석은 하나 이상의 입력들로서, 하나 이상의 물리적 재료 특성들(예컨대, 금속 또는 플라스틱의 유형 또는 두께)을 수신하여, 필요한 하나 이상의 액추에이터 교정 값들의 설명, 및 금속 또는 플라스틱 주름들, 힌지 로케이션들/유형들 등과 같은, 재료 특성들의 설명을 발생시킴으로써, 이 변형 가능한 리그의 물리적 또는 애니메트로닉 버전의 3D 프린팅 또는 어셈블리를 위한 준비를 가능하게 할 수도 있다. 예를 들어, 변형 엔진 시스템(104)에 통신 가능하게 커플링된 3D 프린터는 액추에이터 교정 값들 및/또는 하나 이상의 재료 특성들을 포함하는, 리깅된 자산을 수신하여, 리깅된 자산의 실세계 물리적 3D 모델을 발생할 수도 있다.
일부 실시형태들에서, 이 포즈 구동 분석은 또한 개발자에게 애니메트로닉 케이블링인 신호 또는 구동 케이블링에 대한 충분한 내부 통로 또는 안전을 남기지 않는 문제가 있는 포즈들 또는 변형 스택 구성들을 경고하거나, 또는 개발자에게 인공 안구들과 같은, 다른 컴포넌트들의 설치를 위한 충분한 공간을 남기지 않는 문제가 있는 포즈들 또는 변형 스택 구성들을 경고할 수도 있다. 일부 실시형태들에서, 변형 스택 및 가중치 맵들의 개발자의 설계가 사용자가 눈들, 귀들, 목, 등으로 태깅하도록 선택할 수도 있는 독립적인 세그먼트들과 같은, 자산 지오메트리에 대한 세분화들을 자동으로 발생하기 위해 모션의 가능한 범위 및 채널 값들의 범위의 효과들에 따라 분석된다. 게다가 이들 자동 세분화들은 또한 각각의 세그먼트에 대해 이용할 재료 유형에 대한 자동 권장사항들을 포함할 수도 있으며, 예를 들어, 변형 리그 시스템에서 주름들을 두드러지게 나타내는 세그먼트들은 물리적으로 변형될 때 동일한 정도의 주름을 나타내는 데 적합한 라텍스 커버링의 유형을 식별할 수도 있다. 이 자동 세분화는 이후 어셈블리-준비된 물리적 상태들 또는 애니메트로닉 모델들의 3D 프린팅을 돕기 위해 사용될 수도 있다. 자동 세분화들은 또한 0차 또는 1차, 등과 같은 평활도 또는 곡률에 대한 파라미터들, 세그멘테이션 경계들을 가로지르는 곡률의 연속성을 포함할 수도 있다.
일부 실시형태들에서, 예컨대 단계 512 동안 또는 이전에, 사용자는 피부 클러스터 또는 피부 및 뼈들 시스템 포맷과 같은, 레거시 포맷으로 변형 리그를 내보내도록 선택할 수도 있다. 이 레거시 포맷이 변형 엔진 시스템(104)에 의해 생성되는 동작 순서 포맷과 비교하여 제한된 능력들을 갖기 때문에, 모든 동작 순서 능력들이 이 레거시 포맷으로 완벽하게 표현될 수 있는 것은 아니다. 따라서, 적어도 일부 실시형태들에서, 그리고 선택적으로 사용자로부터 뼈들의 목표 최대 개수가 주어지면, 뼈 수들, 뼈 토폴로지, 및 피부 클러스터 가중치들의 자동 발생은 동작 순서-기반 변형 리그의 원래 거동에 가장 근접하도록 계산될 수도 있으며, 리그는 레거시 포맷으로 내보내질 수도 있다.
단계 512에서, 사용자는 또한 동작 순서 변형 리그의 런-타임 최적화 버전을 "컴파일"하도록 선택할 수도 있다. 이 최적화 프로세스는 여분의 또는 미사용된 리그 채널들 또는 오퍼레이터 인스턴스들, 최소한으로 사용되거나 또는 최소-효과 리그 채널들, 오퍼레이터 인스턴스들, 또는 불필요한 가중치 맵들의 검출을 포함할 수도 있으며, 파일 저장 동안 이러한 것을 단순화하거나 제거할 수도 있다. 이 최적화 프로세스는 또한 두드러진 또는 포즈-참조된 채널 값 세트들, 및 그 중심에 있는 편차의 영역들로 구성된 훈련 세트를 합성함으로써 머신-학습 프로세스를 수행하여, 변형 리그 인스턴스에 대한 추론 모델 근사를 훈련할 수도 있다. 이 추론은 GPU 또는 TPU(tensor processing units) 기반 기술과 같은, 하드웨어-가속된 추론 시스템들 상에서의 실행을 위해 최적화될 수도 있다. 일부 유형들의 3D 모델들의 경우, 적어도 하나의 기술적인 향상은 이 결과적인 추론-기반 변형 시스템이 보다 우수한 메모리 사용 및/또는 런타임 속도 성능을 볼 수 있다는 것이다.
단계 514에서, 변형 엔진 시스템(104)(예를 들어, 일부 경우들에서, 애니메이션 툴(202) 및/또는 생성 툴(204)과 관련하여)은 "트림된" 파일(515)을 생성할 수도 있다. 적어도 일 실시형태에서, 트림된 파일(515)은 변형 리그 및/또는 가중치 맵 세트 중 적어도 하나를 포함한다.
트림된 파일(515)은 본원에서 설명된 바와 같이, 복수의 변형 리그 템플릿들을 포함하는 라이브러리(506)에 저장될 수도 있다. 라이브러리(506)는 미래 변형 가능한 모델들에 액세스 가능한 리그들의 컬렉션을 포함할 수도 있다. 일 실시형태에서, 리그들이 사용자에 의해, 예컨대, 템플릿들(507)의 형태로 생성/작성된다. 리그들의 컬렉션은 오퍼레이터들/레이어들의 개수, 계산 복잡성, 캐릭터 유형(예를 들어, 바이페드, 얼굴, 등), 세부사항 레벨(LOD) 지원 등과 같은, 리그 특성들에 의해 탐색 가능할 수도 있다. 발생된 파일(516)은 일반적으로 변형 리그 구성들, 포즈들, 클립들, 지오메트리, 지오메트리 텍스쳐 데이터, 및 이들의 임의의 조합을 포함할 수도 있다.
변형 엔진 시스템을 이용한 예시적인 동작 순서 및 가중치
도 6은 (도 1 및 도 2에 나타낸) 변형 엔진 시스템(104)을 이용하여 생성 및 편집된 자산(600)의 예시이다. 도 7은 동작 순서가 규정된 도 6에 나타낸 자산(600)의 예시이다. 일부 실시형태들에서, 본원에서 설명된 바와 같이, 자산(600)과 같은, 자산은 애니메이션 툴(202) 및/또는 생성 툴(204)과 관련하여 변형 엔진 시스템(104)을 이용하여 생성될 수도 있으며, 여기서, 예를 들어, 변형 엔진 시스템(104)은 적어도 일부 경우들에서, 피부 및 뼈들 게임 엔진 시스템(102)에 의해 제공되는 애니메이션 툴(202) 및/또는 생성 툴(204)(또는, 이의 소프트웨어 확장판)에 대한 플러그인으로서 기능한다.
본원에서 사용될 때, 애니메이션 툴(202) 및/또는 생성 툴(204)은 단순성을 위해, "에디터" 또는 "GUI 에디터"(602)로서 지칭될 수도 있으며, 이러한 경우들에서, 변형 엔진 시스템(104)은 본원에서 설명된 바와 같이, 동작 순서 규정, 레이어링, 가중, 및 다수의 다른 옵션들과 같은, 기능을 피부 및 뼈들 GUI 에디터(602)에 추가할 수도 있다.
따라서, 나타낸 바와 같이, 자산(600)은 실린더(604)를 포함할 수도 있지만, 다수의 다른 자산 오브젝트들, 형상들, 및 캐릭터들이 본 개시내용의 범위에 의해 그리고 그 내에서 고려됨을 알 수 있을 것이다. 실린더(604)는 단지 예시적인 형상으로서 제공된다. 본원에서 설명된 바와 같이, 변형 엔진 시스템(104)을 이용하는 하나의 이점은 자산(600)에 "뼈들"의 내부 프레임워크 또는 "골격"을 포함할 필요가 없다는 것이며, 이는 게임 엔진 시스템(102)과 같은, 종래의 피부 및 뼈들 게임 엔진 시스템들의 경우일 것이다.
대신, 변형 엔진 시스템(104)은 (본원에서 설명된 바와 같이, 변형 엔진 시스템(104)으로 임포트될 수도 있는) 자산(600)을 외부 메시(606)를 포함하지만 관절형 뼈들의 내부 골격 또는 네트워크를 제외하는 포맷으로 포함할 수도 있다. 달리 말하면, 실린더(604)는 메시(606)를 포함하지만, 관절형 뼈들의 내부 네트워크와 같은, 임의의 내부 아키텍처를 포함하지 않는다.
예시적인 실시형태에서, GUI 에디터(602)는 예를 들어, 디포머들 에디터(미도시) 및/또는 동작 순서 또는 OOO 에디터(608)와 같은, 하나 이상의 페인들, 편집 윈도우들, 에디터들 등을 포함할 수도 있다. 적어도 일부 구현예들에서, 디포머들 페인은 복수의 디포머들을 포함할 수도 있으며, 이의 각각은 자산(600)과 선택적으로 연관되거나 또는 이에 적용될 수도 있다. 또, 위에서 설명한 바와 같이, 일부 실시형태들에서, 디포머들 페인에서 선택된 디포머들은 다른 자산들로부터 임포트된 것들과 같은, 사전-빌드된 디포머들 뿐만 아니라, 예를 들어, 변형 엔진 시스템(104)에 제공되는 커스텀 디포머들 API를 이용하여 생성되는 커스텀 디포머들을 포함할 수도 있다. 그 결과, 도시되지는 않지만, 사용자는 하나 이상의 디포머들을, 예컨대, 디포머들 페인에서, 드롭-다운 리스트로부터, 선택할 수도 있다. 도 6 및 도 7의 예에서, "TeaPot_CS"란 제목의 하나의 이러한 디포머(610)가 선택된다. 디포머(610)의 선택에 응답하여, OOO 에디터(608)는 자산(600)에 인접하게 나타난다.
도 6 및 도 7의 간단한 예에서, 제1, 제2, 및 제3 디포머 채널들(612-616)과 같은 복수의 디포머 채널들이 OOO 에디터(608)에 각각 디스플레이된다. 디포머(610)가 이 예에서 3개의 채널들(612-616)을 포함하지만, 디포머(610)와 같은, 디포머가 임의 개수의 채널들을 포함할 수도 있음을 알 수 있을 것이며, 이의 각각은 본원에서 설명된 바와 같이, 자산(600)과 같은, 자산의 시각적 외관에 적용되는 변형을 제어하는데 이용될 수도 있다.
OOO 에디터(608)에서, 사용자는 각각의 채널(612-616)이 디포머 스택(618)에 나타나는 순서를 배열하기 위해 (예를 들어, 마우스, 스타일러스, 터치스크린 인터페이스 등을 이용하여 드래그함으로써) 하나 이상의 디포머 채널들(612-616)을 선택할 수도 있다. 구체적으로 설명하면, 스택(618)에서 하나 이상의 채널들(612-616)의 순서를 배열 및 재배열함으로써, 사용자는 채널들(612-616)과 연관된 동작 순서를 그래픽으로 제어할 수도 있다. 구체적으로 설명하면, 적어도 일부 실시형태들에서, 스택(618)에서 채널들(612-616)의 순서는 각각의 디포머(612-618)가 자산(600)의 시뮬레이션 동안, 예컨대 에디터(602)의 개발 동안 평가될 순서를 규정할 수도 있다. 이와 유사하게, 스택(618)의 순서는 예컨대, 개인용 컴퓨터 또는 게임 콘솔 상에서, 게임 개발의 완료 시 게임의 실행 동안 동작 순서를 규정할 수도 있다.
동작 순서를 조정함으로써, 사용자는 매우 다양한 그래픽 효과들을 달성할 수도 있다. 예를 들어, 제1 채널(612)이 "구부리기(bend)" 채널이고, 제2 채널(614)이 "회전(rotate)" 채널이고, 그리고 제3 채널(616)이 "이동(move)" 채널인 경우, 사용자는 예를 들어, 자산을 회전하기 전에 구부리게 하기 위해 "구부리기" 채널(612)을 "회전" 채널(614) 아래로 드래그할 수도 있다. 다른 한편, 구부리기 채널(612)이 이동되지 않고, 나타낸 바와 같이, 스택(618)의 상부에 남아 있으면, 자산은 자산(600)이 구부리기 채널(612)에 의해 규정된 바와 같이 먼저 구부러진 다음, 회전 채널(614)에 의해 규정된 바와 같이 회전되도록, 시뮬레이션 또는 게임 실행 동안 변형될 것이다. 첫번째 구부리기 및 두번째 회전이 도 7에 예시되지만, 정지 화상에서 자산(600)의 회전을 볼 수 없다.
그 결과, 달성된 시각적 또는 그래픽 효과가 스택(618)에서의 각각의 디포머 채널의 동작들의 배열 또는 순서에 기초하여 단순히 변경될 수도 있다. 이는 게임 개발 작업 순서의 간단한 예이고 다수의 경우들에서, 디포머가 다수의 3개보다 많은 채널들로 선택될 수도 있음을 알 수 있을 것이다. 이와 유사하게, 본원에서 설명된 바와 같이, 다수의 디포머들이 높은-충실도, 아름다운, 영화-품질 그래픽을 달성하기 위해, 개별 동작 순서를 각각 규정하는 자산(600)과 같은 주어진 자산에 적용될 수도 있다.
이들 특징들에 추가하여, 나타낸 바와 같이, 각각의 채널(612-616)은 개별 채널(612-616)이 자산(600)의 외관에 영향을 미치는 정도를 조정하는데 사용될 수도 있는 채널 가중치와 연관될 수도 있다. 예를 들어, 제1 채널(612)은 제1 가중치(620)와 연관되고, 제2 채널은 제2 가중치(622)와 연관되고, 제3 채널은 제3 가중치(624)와 연관된다. 예시적인 실시형태에서, 각각의 채널 가중치(620-624)는 채널이 자산(600)에 영향을 미치는 정도를 조정하기 위해, 예컨대, 슬라이더를 이용하여, 좌우로 조정될 수도 있다. 예시하기 위하여, 구부리기 채널(612)에 대한 가중치(620)는 자산(600)을 다소 좌우로 구부리기 위해 증가되거나 감소될 수도 있다. 이와 유사하게, 회전 채널(614)에 대한 가중치(622)는 자산(600)의 회전 속도를 시계방향으로 및/또는 반시계방향으로 제어하기 위해 좌우로 조정될 수도 있다.
그 결과, 게임 변형 시스템(104)은 본원에서 설명된 바와 같이, 종래의 피부 및 뼈들 시스템에서 복수의 상호 연결된 뼈들 또는 관절들을 조작할 필요없이, 다양한 사실적인 변형들을 용이하게 달성하기 위해, 게임 개발 동안 동작 순서 특징들을 용이하게 할 뿐만 아니라, 각각의 디포머 채널에 대한 직관적인, 사용하기 쉬운 가중치들을 용이하게 할 수도 있다. 대신, 각각의 디포머 채널(612-616)은 임의의 주어진 디포머 채널(612-616)의 평가가 다른 디포머 채널(612-616)의 평가에 영향을 미치거나 캐스케이드하지 않도록, 다른 모든 디포머 채널(612-616)과 독립적으로 시뮬레이션 및/또는 평가될 수도 있다. 다음 레벨에서 디포머들에 대해서도 마찬가지이며, 또한, 디포머는 각각 복수의 디포머 채널들을 포함할 수도 있다.
예시적인 입력 파일 일관성 및 이식성
일부 실시형태들에서, 입력 파일 포맷의 이식성 및 일관성 능력들을 활용하여, 본원에서 설명된 바와 같이, 개발자는 하나의 DCC(예를 들어, MODO)에서 이들의 리그, 가중치 맵, 및 피팅 작성을 시작하고, 다른 DCC(예를 들어, MAYA)에서 이들의 리그, 가중치 맵, 및 피팅 작성을 속행하고, 다른 DCC(예를 들어, UNREAL 엔진)에서 실사 애니메이션들 또는 "클립들"을 캡쳐하여 저장하고, 다른 DCC(예를 들어, 다시 MAYA)에서 이들 클립들을 열어 다듬고, 그리고 마지막으로 다른 DCC(예컨대, UNITY 또는 UNREAL 엔진)에 구축된 최종-사용자 경험에서 이들 클립들 및 리그 데이터를 저장하고 로드할 수도 있다. 방법에 따른 모든 단계들에서, 변형 시스템 및 리그 파일 포맷은 DCC 차이들 또는 하드웨어 플랫폼 차이들에 관계없이, 동일한 온스크린 성능을 보장한다.
변형 엔진 시스템을 이용한 예시적인 가중치 맵들 및 레이어링
도 8은 (도 1 및 도 2에 나타낸) 변형 엔진 시스템(104)을 이용하여 생성 및 편집된 부분 캐릭터 자산(800)의 예시이다. 예시적인 실시형태에서, 자산(800)은 메시(802)를 포함하며, 본원에서 설명된 바와 같이, 내부 프레임워크 또는 내부 관절 골격 구조를 제외한다. 대신, 변형들이 자산(800)의 구성 동안 게임 개발자에 의해 규정된 동작 순서에 따라 평가되는 복수의 변형 채널들을 각각 포함하는 복수의 레이어링된 디포머들만을 이용하여 본원에서 설명된 바와 같이, 자산(800)에 적용된다.
따라서, 예시적인 실시형태에서, (위에서 설명한 바와 같이) OOO 에디터 페인(804)이 예컨대, 하나 이상의 디포머들의 선택에 응답하여, 자산(800)에 인접하게 제공된다. 일반적으로, 그리고 간단히 예시하기 위해, "Head_LR" 채널(806)은 자산의 머리를 좌우로 이동시키기 위해 (연관된 슬라이더에 대한 가중치들을 조정함으로써) 사용될 수도 있다. 이와 유사하게, "Head_FB" 채널(808)은 다시 연관된 슬라이더를 이용하여, 자산(600)의 머리를 앞뒤로 조정하는데 사용될 수도 있다. 게다가, "Jaw_Open" 채널(810)은 자산(600)의 턱을 개방하고 폐쇄하는 동일한 방식으로 사용될 수도 있다. 그 결과, 본원에서 설명된 바와 같이, 적어도 일부 실시형태들에서, 자산(800)과 같은, 자산을 변형하는 것은 예를 들어, 자산(800)의 뷰(view) 및/또는 지오메트리를 제1 위치 또는 지오메트리로부터 상이한 제2 위치 또는 지오메트리로 변경하는 것을 포함할 수도 있으며, 제1 위치 또는 지오메트리와 제2 위치 또는 지오메트리 사이의 자산의 변환 등을 나타낸다.
예시적인 실시형태에서, 그리고 도 9를 참조하여 나타낸 바와 같이, 자산(800)과 같은, 자산들은 또한 하나 이상의 가중치 맵들과 연관될 수도 있다. 더욱이, 본원에서 설명된 바와 같이, 가중치 맵들은 개별 디포머 채널들과 연관되고, 하나가 다른 것 위에 레이어링되고, 복수의 디포머 채널들과 연관하여 규정된 동작 순서에 따라 평가될 수도 있다. 나타낸 바와 같이, 적어도 일부 실시형태들에서, 더 높은 도트 또는 스티플링 밀도들은 일반적으로 더 높은 가중치 값들을 표시할 수도 있는 반면, 더 낮거나 또는 없는 도트 또는 스티플링 밀도들은 더 낮거나 또는 제로 가중치 값들을 표시할 수도 있다.
예시하기 위하여, 예시적인 실시형태에서, "Jaw_CS"란 제목의 디포머(902)는 선택되어 자산(800)에 인접하게 디스플레이될 수도 있다. 디포머(902)는 자산(800)의 턱을 개방하고 폐쇄하는 것을 담당하는 채널(906)과 같은, 채널들의 스택(904)을 포함할 수도 있다. 스택(904)은 본원에서 설명된 바와 같이, 사용자 선호사항들에 따라, 순서 정렬 및 재-순서 정렬될 수도 있다. 스택(904)에서 각각의 채널은 또한 연관된 가중치를 조정하는데 사용될 수도 있는 슬라이더를 포함한다.
스택(904) 내 각각의 채널과 관련하여 조정 가능한 가중치를 제공하는 것에 추가하여, 적어도 일부 실시형태들에서, 가중치 맵은 단순화된 그래픽 개발을 제공하기 위해 스택(904)의 각각의 가중된 채널에 대해 제공되고 자산(900)과 연관하여 디스플레이될 수도 있다. 예를 들어, 도 9에 나타낸 바와 같이, 가중치 맵(908)은 턱 개방 채널(906)과 연관된 가중치의 조정이 채널(906)에 대한 가중치 맵(908)에 의해 충격을 받거나 또는 영향을 받는 영역 또는 도메인(910)에 미칠 영향을 예시하기 위해 메시(802) 위에 도시될 수도 있다.
예를 들어, 예시된 예에서, 가중치 맵(908)의 도메인(910)은 자산(800)의 뺨 및 턱 영역 대부분에 걸쳐 연장되지만 이마 또는 이마를 포함하도록 연장되지는 않는다. 게다가, 가중치 맵(908)은 턱 개방 채널(906)에 대한 채널 가중치를 조정함으로써 더 많이 영향을 받거나, 또는 더 많이 변형되는 부분들을 표시하기 위해 도메인(910)의 부분들에서 더 진하다. 도 9의 예에서, 자산(800)의 입 아래의 턱 영역(912)은 도메인(910)에 포함되며, 도메인(910)에 또한 포함되는 뺨 영역들(914)보다 더 진하게 음영 처리된다. 그 결과, 턱 개방 채널(906)과 연관된 가중치를 조정하면, 입이 뺨 영역(914)에서 보다 턱 영역(912)에서 움직일 때 더 큰 변형을 초래할 것이다. 더욱이, 볼 수 있는 바와 같이, 가중치 맵(908)은 도메인(910)에 걸쳐 연속적으로 음영 처리되고 턱 영역(912)의 더 진한 음영으로부터 뺨 영역(914)으로 혼합된다. 그 결과, 자산(800)의 턱이 개방하고 폐쇄될 때 도메인(910)의 변형은 또한 메시(802)의 표면 상에 걸쳐 부드럽게 혼합되어, 이전 피부 및 뼈들 시스템들에서와 같이, 메시 표면 아래의 별개의 뼈-정점들의 단계적 변환보다는, 메시(802) 또는 메시 표면의 매끄러운 변형 또는 변환을 초래한다.
도 10은 (도 9에 나타낸) 부분 자산(800)의 예시로서, 변형 채널(1002)과 연관된 가중치 맵(1000)이 도시된다. 좀더 자세하게 설명하면, 변형 채널(1002)은 자산(800)의 "좌측 입 모서리 들어올리기" 변형과 연관되며, 예를 들어, 채널(1002)과 연관된 가중치가 조정됨에 따라, 좌측 입 모서리(1004)의 상방 변형, 또는 상방 들어올리기가 증가하거나 또는 감소된다.
예시적인 실시형태에서, 가중치 맵(1000)은 채널(1002)과 연관된 가중치의 조정이 채널(1002)에 대한 가중치 맵(1000)에 의해 충격을 받거나 영향을 받는 영역 또는 도메인(1006)에 미칠 영향을 예시한다. 예를 들어, 가중치 맵(1000)의 도메인(1006)은 자산(800)의 뺨 영역 대부분 위에 걸쳐 연장되지만 이마 또는 이마를 포함하도록 연장되지 않는다. 게다가, 가중치 맵(1000)은 "좌측 입 모서리 들어올리기" 채널(1002)에 대한 채널 가중치를 조정함으로써, 더 많이 영향을 받거나, 또는 더 많이 변형될 부분들을 표시하기 위해 도메인(1006)의 부분들에서 더 진하다.
가중치 맵(908 및 1000)와 같은, 가중치 맵들을 가능하게 하는 것에 추가하여, 변형 엔진 시스템(104)은 또한 예를 들어, 복잡하고 충실도가 높고 아름답게 렌더링된 안면 표정들 및 다른 자산 모션 및 변형들을 생성하기 위해 복수의 가중치 맵들을 레이어링하는 것을 용이하게 할 수도 있다. 예를 들어, 도 9 및 도 10을 함께 참조하면, 개발자는 가중치 맵(908) 및 가중치 맵(1000)이 결합된 "턱 개방" 및 "좌측 입 모서리 들어올리기" 변형을 달성하기 위해 자산(800) 상에 레이어링되거나 또는 결합되어야 한다고 규정할 수도 있다. 가중치 맵들(908 및 1000)은 달성된 전체 변형이 가중치 맵들(908 및 1000) 중 어느 하나가 단독으로 행동하여 달성할 변형과 상이하도록, 이들 안면 표정들 뿐만 아니라 연관된 변형들이 이들의 개별 도메인들(910 및 1006)에서 미치는 영향을 독립적으로 제어할 수도 있다.
더욱이, 단지 2개의 가중치 맵들(908 및 1000)만이 여기서 예시되지만, 임의의 적당한 수의 가중치 맵들이 자산(800)에 추가될 수도 있음을 알 수 있을 것이다. 그럼에도 불구하고, 그러나, 다수의 시나리오들에서, 개개의 변형들, 및 이들의 수반되는 가중치 맵들에 의해 제공되는 유연성 및 강건한 변형 특성들은 단지 약간의 변형들 및 가중치 맵들을 이용하여 원하는 전체 변형을 달성하는데 적합할 수도 있다. 달리 말하면, 임의 개수의 변형들 및/또는 가중치 맵들이 자산에 적용될 수도 있지만, 다수의 경우에, 이들 기법들은 매우 강건하여, 제한된 개수의 변형들 및/또는 가중치 맵들이 사용될 수도 있다는 점에서 추가적인 기술적인 향상이 달성될 수도 있다.
게다가, 적어도 일부 실시형태들에서, 변형 엔진 시스템(104)은 자산(800)의 리깅과 연관된 하나 이상의 변형들을 "음소거"하기 위해 게임 개발자와 같은 사용자가 하나 이상의 레이어들을 턴온하고/하거나 턴오프 가능하게 할 수도 있다. 이 음소거 특징은 예를 들어, 더 빠른 게임 실행을 용이하게 하기 위해 실행 예산을 프로세서(110)와 같은 프로세서에 되돌려줄 수도 있다. 다른 한편, 음소거가 턴오프되거나 또는 더 제한되는 경우, 좀더 상세한 변형들이 가능할 수도 있다. 그 결과, 변형 엔진 시스템(104)은 실행 시간, 그래픽 품질 등의 원하는 균형을 달성하기 위해, 변형들, 가중치들, 레이어들 등을 포함한, 자산 리그를 독립적으로 커스터마이징하고 조정하기 위한 일련의 옵션들을 제공한다. 더욱이, 이전에 설명된 LOD 시스템들은 원하는 충실도 및/또는 성능의 사용자-구성된 정책들에 따라 음소거 또는 음소거 해제 변형들을 자동으로 관리할 수도 있다.
변형 엔진 시스템을 이용한 예시적인 애니메이션화된 가중치들
도 11은 오브젝트에 인접하게 도시된 복수의 순서 정렬 가능한 변형 채널들을 포함하는 (도 1 및 도 2에 나타낸) 변형 엔진 시스템(104)을 이용하여 개발된 자산(1100)의 예시이다. 도 12는 도 11에 나타낸 자산의 예시로서, 하나의 변형 채널이 자산의 대응하는 그래픽 조정에 영향을 미치도록 조정된다. 도 13은 도 11 및 도 12에 나타낸 자산의 예시로서, 2개의 변형 채널들이 자산의 여러 대응하는 그래픽 조정들에 영향을 미치도록 조정된다. 도 14는 도 11 내지 도 13에 나타낸 자산의 예시로서, 디포머 채널 에디터가 도시되며 개별 디포머 채널의 애니메이션화된 가중치를 조정하는데 사용될 수도 있다.
따라서, 도 11 내지 도 14를 함께 참조하여, 자산(1100)은 본원에서 설명된 바와 같이, 메시(1102)를 포함하고 내부 골격 프레임워크를 제외한다. 또, 본원에서 설명된 바와 같이, 일부 실시형태들에서, 자산(1100)은 예컨대, 입력 파일을 이용하여 리깅(예를 들어, 변형들)을 제외하는 네이키드 포맷으로 게임 엔진 시스템(104)으로 임포트될 수도 있다. 일부 구현예들에서, 네이키드 자산(1100)은 또한 변형 엔진 시스템(104)을 이용하여 생성될 수도 있다.
예시적인 실시형태에서, 메시(1102)는 상부 입술(1106) 및 하부 입술(1108)을 갖는 입(1104)을 포함하는 일반적으로 구형 오브젝트를 정의한다. OOO 에디터(1110)는 자산(1100)에 인접하게 도시되고 복수의 채널들(1112)을 포함하며, 이의 각각은 본원에서 설명된 바와 같이, 자산(1100)의 변형 양태를 제어하기 위해 사용될 수도 있다. 예를 들어, "개방" 채널(1114)은 입(1104)이 개방되고 폐쇄되게 할 수도 있다. 이와 유사하게, "압축 채널"(1116)은 입이 압축하고 압축 해제하게 할 수도 있으며, "슬라이드" 채널(1118)은 입(1104)을 자산(1100) 상에서 좌우로 슬라이드시키는 등을 할 수도 있다. 따라서, 도 12를 참조하여 나타낸 바와 같이, 개방 채널(1114)의 조정은 입(1104)을 개방시킨다. 입(1104)이 개방되도록 변형되는 정도는 나타낸 바와 같이, 개방 채널(1114)과 연관된 슬라이더를 이용하여 조정될 수도 있다. 이와 유사하게, 도 13를 참조하여 나타낸 바와 같이, 입(1104)이 압축되도록 변형되는 정도는 압축 채널(1116)과 연관된 슬라이더를 이용하여 조정될 수도 있다.
도 14를 참조하면, 그리고 예시적인 실시형태에서, 디포머 채널 에디터(1402)는 채널에 의해 발생되는 변형의 형상과 같은, 디포머 채널 특성을 커스터마이즈하기 위해, 게임 개발자 또는 아티스트에 의해 디스플레이되고 사용될 수도 있다. 다양한 실시형태들에서, 이들 커스터마이즈된 채널 형상들 또는 채널 특성들은 "애니메이션화된 변형들"로서 지칭될 수도 있다.
도 14의 예시에서, 디포머 채널 에디터(1402)는 개방 채널(1114)의 형상과 연관된 곡선(1404)을 디스플레이한다. 더욱이, 나타낸 바와 같이, 곡선(1404)은 입(1104)의 형상의 대응하는 변화에 영향을 미치기 위해 에디터(1402)에서 편집되고/되거나 미세 조정될 수도 있다. 구체적으로 설명하면, 곡선(1404)의 형상은 예시적인 실시형태에서, 상부 입술(1106)의 형상 뿐만 아니라 하부 입술(1108)의 형상에 대응하며, 여기서, 상부 입술(1106)은 수평 대칭축(즉, 입(1104)의 중심선)을 중심으로 하부 입술(1108)과 대칭이다. 그 결과, 에디터(1402)에서 곡선의 형상을 변경하면, 도 14에서 볼 수 있는 바와 같이, 입(1104)의 형상이 변경된다.
따라서, 디포머 채널들은 본원에서 설명된 바와 같이, 개개의 가중치들 및/또는 가중치 맵들과 연관될 수도 있을 뿐만 아니라, 적어도 일부 실시형태들에서, 디포머 채널들은 각각의 디포머 채널에 의해 발생되거나 이에 의해 영향을 받는 변형의 형상을 조정하기 위해 예컨대, 채널 에디터(1402)를 이용하여 독립적으로 조정될 수도 있다. 거의 끝없는 다양한 커스터마이즈 가능한 애니메이션화된 변형들을 이용하여 달성될 수 있는 변형 형상들의 범위가, 본원에서 설명되는 컴퓨터 애니메이션 기법들 및 시스템들과 연관된 사실성 및 유연성에 추가로 기여할 수 있음을 알 수 있을 것이다.
변형 엔진 시스템을 이용한 예시적인 형상 보정
도 15는 조정된 변형 채널과 연관된 형상 보정이 변형 채널의 조정에 응답하여 자동으로 조정되는 (도 11 내지 도 14에 도시된) 자산(1100)의 예시이다. 도 16은 조정된 변형 채널과 연관된 형상 보정이 변형 채널의 조정에 응답하여 자동으로 조정되는 자산(1100)의 다른 예시이다.
따라서, 도 15를 참조하면, 자산(110)의 입(1104)이 도시된다. 좀더 자세하게 설명하면, 나타낸 바와 같이, 상부 입술(1106) 및 하부 입술(1108)이 예시된다. 나타낸 바와 같이, 하나 이상의 채널들(1112)은 볼 수 있는 바와 같이, 하부 입술(1108)을 향하여 오므리거나 돌출하는 상부 입술(1106)의 만곡 부분(1502)을 포함하는 예시된 입(1104)의 변형을 생성하도록 조정되었다. 예시적인 실시형태에서, 만곡 부분(1502) 근처의 도메인(1504)은 상부 입술(1106)이 만곡 부분(1502)을 포함할 때 메시(1102)가 팽팽하게 당겨지거나 또는 신장되는 것을 나타내는 실물과 똑같은 변형을 도메인(1504)에 생성하기 위해 신장되거나 또는 상대적으로 뭉치지 않는다.
이에 반해, 도 16을 참조하여 나타낸 바와 같이, 하나 이상의 채널들(1112)(예를 들어, 개방 채널(1114))이 입(1104)을 더 넓게 개방하기 위해 조정될 때, 만곡 부분(1502)은 뒤로 당겨지거나 또는 들어올려지고, 만곡 부분(1502) 근처의 도메인(1504)은 메시(1102)가 상부 입술(1106) 근처에서 뭉치거나 모이는 것을 나타내는 실물과 똑같은 변형을 도메인(1504)에 생성하기 위해 뭉치거나 또는 모아진다.
이들 변형들은 종래의 피부 및 뼈들 시스템에 의해 전형적으로 요구되는 바와 같이, 뼈들 또는 관절들의 도움 없이 변형 엔진 시스템(104)을 이용하여 달성된다. 이와 유사하게, 도 14 및 도 15에 나타낸 변형들은 하나의 형상이 다른 형상으로 변하거나 또는 모핑하는 착시를 생성하기 위해 종래의 피부 및 뼈들 시스템들에서 사용될 수도 있는 혼합 형상들의 사용없이 가능하다. 대신, 입(1104)이 변형됨에 따라, 변형 엔진 시스템(104)은 상부 입술(1106)의 변형을 고려하기 위해 도메인(1504)을 자동으로 그리고 동적으로 조정한다.
예시적인 포즈들, 리그 재사용, 및 메시 편집
다양한 실시형태들에서, 그리고 본원에서 설명된 바와 같이, 변형 엔진 시스템(104)은 다양한 포즈들의 생성을 용이하게 할 수도 있으며, 포즈는 후속 재사용 또는 재활용을 위해 디포머 채널들(및 연관된 채널 가중치들, 등)의 컬렉션을 포함할 수도 있다. 예시하기 위하여, 예시적인 포즈들은 "행복한", "으르렁거리는", 등을 포함하지만, 이에 제한되지 않으며, "행복한" 포즈는 행복한 자산 표현(예를 들어, 행복한 얼굴)을 생성하기 위해 사전 설정된 채널 가중치들을 포함할 수도 있으며, "으르렁거리는" 포즈는 으르렁거리거나 또는 행복하지 않은 자산 표현을 생성하기 위해 사전 설정된 채널 가중치들을 포함하는, 등등으로 포함할 수도 있다. 그 결과, 포즈들은 다양한 표현들 및/또는 다른 지오메트리들을 블랭크 또는 아니면 블랭크 자산들에 부여하기 위해 빠르게 재활용될 수 있는 사전 설정된 또는 미리 정의된 "리그들"을 구현할 수도 있다.
예시적인 실시형태에서, 더 빠르고 편리한 게임 개발을 용이하게 하기 위해, 변형 엔진 시스템(104)은 게임 개발자가 본원에서 설명된 바와 같이, 다양한 가중치들, 가중치 맵들, 레이어들, 애니메이션화된 변형들 및 기타 등등을 포함하는, 변형들의 컬렉션을, 포즈 파일 또는 리그 파일 또는 이들의 조합들로서 저장하고 재활용 가능하게 할 수도 있다. 리그 파일은 원래 캐릭터 자산 또는 상이한 캐릭터 자산들(일부 복수의 매칭 채널 이름들과 함께)로 복원 가능한 사전-설정된 채널 값들을 포함할 수도 있다. 리그 파일은 동일하거나, 파생되거나, 또는 재수축 가능한(re-shrinkwrappable) 토폴로지들을 가진 다른 자산들에 적용 가능한, 자산에 대해 이전에 생성된 변형 값들의 고유한 조합을 포함할 수도 있다.
포즈 또는 리그 파일을 재활용하기 위해, 게임 개발자는 저장된 포즈 파일을, 포즈가 원래 개발된 자산과 동일하거나 동일하지 않을 수도 있는 다른 자산에 선택적으로 적용할 수도 있다. 예시하기 위하여, 포즈 (예를 들어, "행복한") 포즈는 여성 캐릭터용으로 개발될 수도 있다. 후속하여, 게임 개발자는 포즈를 남성 캐릭터과 같은 상이한 캐릭터에 임포트하거나, 또는 아니면 적용하기를 원할 수도 있다.
포즈를 후속 캐릭터에 적용하기 위해, 변형 엔진 시스템은 게임 개발자가 후속 캐릭터에의 적용을 위해 여성 캐릭터용으로 원래 생성된 리그 파일을 선택 가능하게 할 수도 있다. 리그 파일의 선택에 응답하여, 변형 엔진 시스템(104)은 후속 캐릭터가 원래 (여성) 캐릭터의 지오메트리와는 상이한 지오메트리를 포함하더라도, 리그 파일에 저장된 다양한 변형 값들 및/또는 변형 세팅들을 후속 캐릭터에 적용할 수도 있다. 달리 말하면, 적어도 일부 실시형태들에서, 애니메이션들은 애니메이션들이 디포머 값들의 정규화된 범위를 이용하여 2개의 캐릭터들 사이에 효과적으로 공유될 수 있도록, 2개의 캐릭터들에 공통인 디포머들과 연관된 값들의 범위를 정규화함으로써 2개의 별개의 캐릭터들 사이에 공유될 수도 있다.
예시하기 위하여, 적어도 일 예에서, "좌측 눈 개방" 디포머 및 "우측 눈 개방" 디포머를 가진 강아지 캐릭터 자산은, 2개의 동물 캐릭터들이 상이한 토폴로지들을 가질 수도 있지만, 예컨대, 정규화된 채널 값 범위들을 이용하여, 새끼 고양이(또는, 다른 동물) 자산과 애니메이션들을 공유할 수도 있다. 예를 들어, 각각의 캐릭터의 메시 토폴로지가 상이하지만, 예를 들어, 동일한 2개의 채널들이 2개의 캐릭터 자산들(예를 들어, "좌측 눈 개방" 및 "우측 눈 개방")에 대해 사용될 수도 있다. 더욱이, 모든 채널들이 2개의 동물 자산 캐릭터들(예를 들어, 강아지 및 새끼 고양이) 사이에 공통일 필요는 없을 수도 있다. 대신, 예를 들어, 새끼 고양이는 하나 이상의 "휘스커들 구부리기" 채널들을 가질 수도 있는 반면, 개는 이러한 변형 채널들을 포함하지 않을 수도 있다. 변형 엔진 시스템(104)은 자산들 사이에 공유되지 않는 다른 채널들(예를 들어, "휘스커들 구부리기")을 또한 사용 가능하게 하면서, 강아지 및 새끼 고양이와 같은, 2개의 캐릭터 자산들에 공통인 채널들(예를 들어, "우측 눈 개방" 및 "좌측 눈 개방" 채널들)의 애니메이션을 가능하게 할 만큼 충분히 유연하고 강건하다.
이들 특징들에 추가하여, 그리고 예를 들어, 새로운 자산 또는 캐릭터에의 저장된 포즈 또는 리그의 적용 후, 변형 엔진 시스템(104)은 또한 예컨대, 포즈가 원래 개발된 자산 또는 캐릭터와 비교하여 저장된 포즈를 수신하는 자산 또는 캐릭터의 지오메트리에서의 변형들을 수정하기 위해, 주어진 자산과 연관된 변형 경로들의 조정 또는 미세-조정을 용이하게 할 수도 있다.
예시하기 위하여, 그리고 도 17을 참조하면, 자산(1700)이 도시된다. 예시적인 실시형태에서, 저장된 포즈는 자산(1700)과 연관되었다. 특히, 자산(1700)은 남성 얼굴이며, 자산(1700)과 연관되지 않은 포즈는 여성 얼굴용으로 원래 생성되었다. 그 결과, 자산(1700)의 이마(1704)와 연관된 변형 경로(1702)는 남성 캐릭터의 최적의 또는 원하는 변형 경로보다 더 높거나 또는 아니면 이와 상이할 수도 있다.
이마(1704)의 변형 경로(1702)(또한, 여성 캐릭터에 대해 이전에 개발됨)를 수정하기 위해, 변형 채널 곡선(1706)은 자산(1700)의 이마(1704)에 인접하게 도시되었을 수도 있다. 사용자 또는 게임 개발자는 변형 경로(1702)를, 예를 들어, 남성 캐릭터에 대해 원하는 변형에 더 적합하거나 또는 자연스러울 수도 있는 새로운 위치 또는 방위로 이끌기 위해, (예를 들어, 마우스, 터치스크린, 등을 이용하여) 변형 채널 곡선(1706)을 선택적으로 조정할 수도 있다. 이 미세-조정 프로세스는 처음부터 새로운 자산에 대한 리깅의 모두를 재생성할 필요없이, 저장된 포즈들이 또한 새로운 자산 지오메트리에 대응하도록 빠르고 용이하게 조정될 수도 있는 이점 및 기술적인 향상으로, 저장된 포즈들의 재활용을 용이하게 하기 위해, 새로운 자산에의 포즈의 적용 후 저장된 포즈와 연관된 변형들 또는 변형 채널들 중 임의의 것에 적용될 수도 있다. 이 포즈 재활용 프로세스는 예를 들어, 주어진 자산에 대한 리깅 시간을 며칠에서 몇 시간으로 감소시킬 수도 있다.
도 18a 내지 도 18d는 적어도 일 실시형태에 따른, 리본과 같은 변형 가능한 자산, 및 대응하는 변형 채널 값들의 추가 예시적인 실시형태들을 예시한다. 본원 내 다른 어딘가에서 설명된 바와 같이, 도 18a 내지 도 18d에 도시된 자산은 도 18d에 나타낸 바와 같이 복수의 변형 채널들을 이용하여 변형될 수도 있다.
도 19a 내지 도 19d는 비변형된 상태의, 인간 캐릭터와 같은, 네이키드 자산의 추가 예시적인 실시형태들을 예시한다. 본원에서 설명된 바와 같이, 자산은 도 19a 내지 도 19c에서 볼 수 있는 바와 같이 메시를 포함한다. 본원 내 다른 어딘가에서 설명된 바와 같이, 도 19a 내지 도 19d에 도시된 자산은 도 19d에 나타낸 바와 같이 복수의 변형 채널들을 이용하여 변형될 수도 있다. 다양한 실시형태들에서.
도 20a 내지 도 20d는 변형된 상태의, 인간 캐릭터와 같은, 변형 가능한 자산의 추가 예시적인 실시형태들을 예시한다. 본원에서 설명된 바와 같이, 자산은 도 20a 내지 도 20c에서 볼 수 있는 바와 같이 메시를 포함한다. 본원 내 다른 어딘가에서 설명된 바와 같이, 도 20a 내지 도 20d에 도시된 자산은 도 20d에 나타낸 바와 같이 복수의 변형 채널들을 이용하여 변형될 수도 있다. 다양한 실시형태들에서.
도 21은 본원에서 설명된 바와 같은, 자산과 연관된 가중치 맵(예를 들어, 자산 턱에 대한 가중치 맵)의 추가 예시적인 실시형태를 예시한다.
본원에서 설명되는 시스템들 및 방법들은 컴퓨터 소프트웨어, 펌웨어, 하드웨어 또는 임의의 조합 또는 이들의 서브세트를 포함하는, 컴퓨터 프로그래밍 또는 엔지니어링 기법들을 이용하여 구현될 수도 있다.
전술한 명세서 및 뒤따르는 청구범위에서, 다음 의미들을 갖는 다수의 용어들이 언급된다.
본원에서 사용될 때, 단수로 인용되고 단어 "한(a)" 또는 "하나의(an)"로 선행하는 엘리먼트 또는 단계는 그러한 제외가 명시적으로 인용되지 않는 한, 복수의 엘리먼트들 또는 단계들을 제외하지 않는 것으로 이해되어야 한다. 더욱이, 본 개시내용의 "예시적인 구현예" 또는 "일 구현예"에 대한 언급들은 인용된 특징들을 또한 포함하는 추가적인 구현예들의 존재를 제외하는 것으로 해석되도록 의도되지 않는다.
본 명세서 및 청구범위 전반에 걸쳐 사용되는 근사 언어는 관련된 기본 기능의 변화를 초래함이 없이 허용 가능하게 변할 수 있는 임의의 정량적 표현을 수정하기 위해 적용될 수도 있다. 따라서, "약", "대략", 및 "실질적으로"와 같은, 용어 또는 용어들에 의해 수식되는 값은 규정된 정확한 값에 제한되지 않는다. 적어도 일부 경우들에서, 근사 언어는 값을 측정하는 기기의 정밀도에 상응할 수도 있다. 여기서, 그리고 명세서 및 청구범위 전반에 걸쳐, 범위 한계들은 결합되거나 또는 상호 교환될 수도 있다. 이러한 범위들은 식별되며, 문맥 또는 언어가 달리 표시하지 않는 한, 그 안에 포함된 모든 하위-범위들을 포함한다.
어구 "X, Y, 또는 Z 중 적어도 하나"와 같은, 이접성 언어(disjunctive language)는, 달리 구체적으로 언급되지 않는 한, 아이템, 용어, 등이 X, Y, 또는 Z, 또는 이들의 임의의 조합(예를 들어, X, Y, 및/또는 Z)일 수도 있음을 나타내는데 사용되는 문맥 내에서 일반적으로 이해된다. 따라서, 이러한 이접성 언어는 일반적으로 특정의 실시형태들이 X 중 적어도 하나, Y 중 적어도 하나, 또는 Z 중 적어도 하나가 각각 존재하도록 요구하는 것으로 의도되지 않으며, 암시되어서도 안된다. 추가적으로, 어구 "X, Y, 및 Z 중 적어도 하나"와 같은, 접속어는, 달리 구체적으로 언급되지 않는 한, 또한 "X, Y, 및/또는 Z"를 포함하는, X, Y, Z, 또는 이들의 임의의 조합을 의미하도록 이해되어야 한다.
일부 실시형태들은 하나 이상의 전자 프로세싱 또는 컴퓨팅 디바이스들의 사용을 포함한다. 본원에서 사용될 때, 용어들 "프로세서" 및 "컴퓨터" 및 관련된 용어들, 예를 들어, "프로세싱 디바이스", "컴퓨팅 디바이스", 및 "제어기"는 컴퓨터 분야에서 지칭되는 이들 집적 회로들에만 제한되지 않고, 프로세서, 프로세싱 디바이스, 제어기, 범용 중앙 처리 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 텐서 프로세싱 유닛 또는 추론 유닛(TPU), 마이크로제어기, 마이크로컴퓨터, 프로그래밍가능 로직 제어기(PLC), 축소 명령 세트 컴퓨터(RISC) 프로세서, 필드 프로그래밍가능 게이트 어레이(FPGA), 디지털 신호 프로세싱(DSP) 디바이스, 주문형 집적회로(ASIC), 및 본원에서 설명되는 기능들을 실행하는 다른 프로그래밍가능 회로들 또는 프로세싱 디바이스들을 널리 지칭하며, 이들 용어들은 본원에서 상호교환 가능하게 사용된다. 상기 실시형태들은 단지 예들이며, 따라서 용어들 프로세서, 프로세싱 디바이스, 및 관련된 용어들의 정의 또는 의미를 어떤 방법으로든 제한하려는 것이 아니다.
본원에서 설명하는 실시형태들에서, 메모리는 비일시성 컴퓨터-판독가능 매체, 예컨대 플래시 메모리, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거가능한 프로그래밍가능 판독-전용 메모리(EPROM), 전기적으로 소거가능한 프로그래밍가능 판독-전용 메모리(EEPROM), 및 비-휘발성 RAM(NVRAM)을 포함할 수도 있지만 이에 제한되지 않는다. 본원에서 사용할 때, 용어 "비-일시성 컴퓨터-판독가능 매체들"은 휘발성 및 비휘발성 매체들, 및 착탈식 및 비-착탈식 매체들, 예컨대 펌웨어, 물리 및 가상 스토리지, CD-ROM들, DVD들, 및 네트워크 또는 인터넷과 같은 임의의 다른 디지털 소스 뿐만 아니라, 일시적인, 전파 신호를 유일하게 제외하고 앞으로 개발될 디지털 수단을 비제한적으로 포함한, 비일시성 컴퓨터 저장 디바이스들을 비제한적으로 포함하여, 임의의 유형의, 컴퓨터-판독가능 매체들을 나타내기 위한 것이다. 대안적으로, 플로피 디스크, 컴팩트 디스크 - 판독전용 메모리(CD-ROM), 광자기 디스크(MOD), 디지털 다기능 디스크(DVD), 또는 컴퓨터-판독가능 명령들, 데이터 구조들, 프로그램 모듈들 및 서브-모듈들, 또는 다른 데이터와 같은, 정보의 단기 및 장기 저장을 위한 임의의 방법 또는 기술로 구현된 임의의 다른 컴퓨터-기반 디바이스가 또한 사용될 수도 있다. 따라서, 본원에서 설명되는 방법들은 비일시성 컴퓨터-판독가능 매체로 구현된, 실행가능한 명령들, 예를 들어, "소프트웨어" 및 "펌웨어"로서 인코딩될 수도 있다. 또, 본원에서 사용할 때, 용어들 "소프트웨어" 및 "펌웨어"는 대체 가능하며, 개인용 컴퓨터들, 워크스테이션들, 클라이언트들 및 서버들에 의한 실행을 위해 메모리에 저장된 임의의 컴퓨터 프로그램을 포함한다. 이러한 명령들은, 프로세서에 의해 실행될 때, 프로세서로 하여금, 본원에서 설명하는 방법들 중 적어도 일부분을 수행하게 한다.
또한, 본원에서 설명하는 실시형태들에서, 추가적인 입력 디바이스들은 마우스 및 키보드와 같은, 오퍼레이터 인터페이스와 연관된 컴퓨터 주변장치들일 수도 있거나, 이에 제한되지 않는다. 대안적으로, 예를 들어 카메라, 스캐너 등을 포함할 수도 있지만, 이에 제한되지 않는 다른 컴퓨터 주변장치들이 또한 사용될 수도 있다.
본원에서 설명하는 시스템들 및 방법들은 본원에서 설명하는 특정의 실시형태들에 제한되지 않고, 오히려, 시스템들의 컴포넌트들 및/또는 방법들의 단계들은 본원에서 설명하는 다른 컴포넌트들 및/또는 단계들과 독립적으로 그리고 별도로 이용될 수도 있다.
본 개시내용의 다양한 실시형태들의 특정의 특징들이 일부 도면들에는 도시되고 다른 도면에는 도시되지 않을 수도 있지만, 이는 단지 편의성을 위한 것이다. 본 개시내용의 원리들에 따르면, 도면의 임의의 특징이 임의의 다른 도면의 임의의 특징과 조합하여 참조 및/또는 청구될 수도 있다.
이 서면 설명은 예들을 이용하여 최상의 모드를 포함한 본 개시내용에 관한 세부사항들을 제공하며, 또한 본 기술분야의 임의의 통상의 전문가로 하여금, 임의의 디바이스들 또는 시스템들을 제조하고 이용하는 것 및 임의의 포함된 방법들을 수행하는 것을 포함하여, 본 개시내용을 실시가능하게 한다. 본 개시내용의 특허의 범위는 청구범위에 의해 정의되며, 통상의 기술자들에게 떠오르는 다른 예들을 포함할 수도 있다. 이러한 다른 예들은, 청구범위의 문자적 전문용어(literal language)와는 상이하지 않은 구조적 엘리먼트들을 가지면, 또는 청구범위의 문자적 전문용어와는 크지 않은 차이들을 가진 동등한 구조적 엘리먼트들을 포함하면, 청구범위의 범위 내에 있는 것으로 의도된다.

Claims (20)

  1. 컴퓨터 애니메이션을 위한 방법으로서,
    제3 자 게임 엔진 시스템과 연관하여 멀티-플랫폼 변형 엔진 시스템을 실행하는 프로세서에 의해, 자산 지오메트리를 포함하는 입력 파일을 수신하는 단계 - 상기 자산 지오메트리는 자산 메시 구조를 정의함-;
    상기 프로세서에 의해, 적어도 하나의 디포머를 상기 자산 메시 구조에 적용하는 단계 - 상기 적어도 하나의 디포머는 복수의 사용자-선택가능한 디포머 채널들을 포함하며, 각각의 디포머 채널은 상기 자산 메시 구조의 적어도 일부분과 연관되고 상기 자산 메시 구조의 연관된 부분의 시각적 외관을 조정하도록 구성됨-;
    상기 프로세서에 의해 그리고 사용자 입력에 기초하여, 상기 복수의 디포머 채널들의 적어도 서브세트의 실행을 위한 커스터마이즈 가능한 동작 순서를 수신하는 단계 - 상기 동작 순서는 상기 서브세트의 각각의 디포머 채널이 상기 자산 지오메트리의 애니메이션 동안 실시간으로 실행되어야 하는 순서를 규정함-; 및
    상기 프로세서에 의해, 상기 자산 지오메트리, 상기 적어도 하나의 디포머 인스턴스, 및 상기 동작 순서를 포함하는 출력 파일을 발생시키는 단계를 포함하는, 컴퓨터 애니메이션을 위한 방법.
  2. 제1항에 있어서,
    상기 동작 순서는 상기 복수의 디포머 채널들의 서브세트의 각각의 디포머 채널이 상기 서브세트의 다른 모든 디포머 채널과 독립적으로 실행되어야 하는 순서를 규정하고, 그 결과, 어떤 상기 서브세트의 디포머 채널도 상기 서브세트의 임의의 다른 디포머 채널의 그래픽 변환으로서 실행되지 않는, 컴퓨터 애니메이션을 위한 방법.
  3. 제1항에 있어서,
    상기 변형 엔진 시스템이 복수의 제3 자 게임 엔진 시스템 제품들 중 임의의 것 및 모바일 디바이스들, 게임 콘솔들, 엔터테인먼트 콘솔들, 클라우드 환경들, 및 PC들 중 적어도 하나를 포함하는 다양한 하드웨어 플랫폼들 중 임의의 것과 연관하여 실행될 때, 상기 프로세서에 의해, 상기 변형 엔진 시스템에 의한 사용을 위해 상기 출력 파일을 포맷하는 단계를 더 포함하는, 컴퓨터 애니메이션을 위한 방법.
  4. 제1항에 있어서,
    상기 프로세서에 의해, 상기 자산 메시 구조를 디스플레이하도록, 디스플레이 디바이스를 제어하는 단계;
    상기 프로세서에 의해, 상기 자산 메시 구조에 인접한 상기 복수의 사용자-선택가능한 디포머 채널들을 디스플레이하도록 상기 디스플레이 디바이스를 제어하는 단계; 및
    상기 프로세서에 의해, 교정을 위해 상기 사용자-선택가능한 디포머 채널들의 적어도 하나의 디포머 채널의 사용자 선택을 수신하는 단계를 더 포함하는, 컴퓨터 애니메이션을 위한 방법.
  5. 제4항에 있어서,
    상기 프로세서에 의해, 적어도 한명의 사용자-선택된 디포머 채널에 대한 가중치 값의 사용자 선택을 수신하는 단계를 더 포함하며,
    상기 가중치 값은 가중치 값들의 범위에 걸쳐 조정 가능하며, 상기 가중치 값은 상기 디포머 채널과 연관된 상기 자산 메시 구조의 부분의 변형의 정도를 제어하기 위해 상기 범위에 걸쳐 조정 가능한, 컴퓨터 애니메이션을 위한 방법.
  6. 제5항에 있어서,
    상기 가중치의 상기 사용자 선택을 수신하는 것에 응답하여, 상기 프로세서에 의해, 상기 디포머 채널과 연관된 상기 자산 메시 구조의 부분을 변형하는 단계를 더 포함하는, 컴퓨터 애니메이션을 위한 방법.
  7. 제6항에 있어서,
    상기 프로세서에 의해 그리고 메모리 디바이스로부터, 상기 디포머 채널과 연관된 상기 자산 메시 구조의 부분에 근접하게 정의된 상기 자산 메시 구조의 영역에 대한 가중치 맵을 취출하는 단계; 및
    상기 프로세서에 의해, 그리고 상기 자산 메시 구조의 부분을 변형하는 것에 응답하여, 상기 가중치 맵에 기초하여 상기 자산 메시 구조의 영역을 변형하는 단계를 더 포함하며,
    상기 영역의 적어도 제1 부분은 제1 변형 정도로 변형되며, 상기 영역의 제2 부분은 제2 변형 정도로 변형되며, 상기 제1 부분은 상기 디포머 채널과 연관된 상기 자산 메시 구조의 부분에 더 가까우며, 상기 제2 부분은 상기 자산 메시 구조의 부분으로부터 더 멀리 있으며, 상기 제1 변형 정도는 상기 제2 변형 정도보다 더 큰, 컴퓨터 애니메이션을 위한 방법.
  8. 제1항에 있어서,
    상기 프로세서에 의해 그리고 사용자 입력에 응답하여, 복수의 디포머들을 상기 자산 메시 구조에 적용하는 단계를 더 포함하며,
    상기 복수의 디포머들은 사전-정의된 자산 리그를 정의하며, 상기 사전-정의된 자산 리그는 상기 자산 지오메트리의 이동을 제어하도록 구성되는, 컴퓨터 애니메이션을 위한 방법.
  9. 명령들을 저장한 유형의, 비일시성 컴퓨터-판독가능 저장 매체로서,
    상기 명령들은, 게임 엔진 시스템과 연관하여 멀티-플랫폼 변형 엔진 시스템을 실행하는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 적어도:
    자산 지오메트리를 포함하는 입력 파일을 수신하게 하고 - 상기 자산 지오메트리는 자산 메시 구조를 정의하고, 상기 자산 지오메트리는 내부 프레임워크를 제외함-;
    적어도 하나의 디포머 인스턴스를 상기 자산 메시 구조와 연관시키게 하고 - 상기 적어도 하나의 디포머 인스턴스는 복수의 사용자-선택가능한 디포머 채널들을 포함하며, 각각의 디포머 채널은 상기 자산 메시 구조의 적어도 일부분과 연관되고 상기 자산 메시 구조의 연관된 부분의 시각적 외관을 조정하도록 구성됨-;
    사용자 입력에 기초하여, 상기 복수의 디포머 채널들의 적어도 서브세트의 평가를 위한 커스터마이즈 가능한 동작 순서를 수신하게 하고 - 상기 동작 순서는 상기 서브세트의 각각의 디포머 채널이 상기 자산 지오메트리의 애니메이션 동안 실시간으로 평가되어야 하는 순서를 규정함-; 및
    상기 자산 지오메트리, 상기 적어도 하나의 디포머 인스턴스, 및 상기 동작 순서를 포함하는 출력 파일을 발생시키게 하도록 구성되는, 비일시성 컴퓨터-판독가능 저장 매체.
  10. 제9항에 있어서,
    상기 동작 순서는 상기 복수의 디포머 채널들의 상기 서브세트의 각각의 디포머 채널이 상기 서브세트의 다른 모든 디포머 채널과는 독립적으로 평가되어야 하는 순서를 규정하며, 그 결과, 어떤 상기 서브세트의 디포머 채널도 상기 서브세트의 임의의 다른 디포머 채널의 그래픽 변환으로서 평가되지 않는, 비일시성 컴퓨터-판독가능 저장 매체.
  11. 제9항에 있어서,
    상기 명령들은, 실행될 때, 추가로 상기 프로세서로 하여금, 적어도:
    상기 변형 엔진 시스템이 복수의 제3 자 게임 엔진 시스템 제품들 중 임의의 것 및 복수의 하드웨어 디바이스들 중 임의의 것과 연관하여 실행될 때 상기 변형 엔진 시스템에 의한 사용을 위해 상기 출력 파일을 포맷하게 하는, 비일시성 컴퓨터-판독가능 저장 매체.
  12. 제9항에 있어서,
    상기 명령들은, 실행될 때, 추가로, 상기 프로세서로 하여금, 적어도:
    상기 자산 메시 구조를 디스플레이하도록 디스플레이 디바이스를 제어하게 하고;
    상기 자산 메시 구조에 인접한 상기 복수의 사용자-선택가능한 디포머 채널들을 디스플레이하도록 상기 디스플레이 디바이스를 제어하게 하고; 그리고
    교정을 위해 상기 사용자-선택가능한 디포머 채널들의 적어도 하나의 디포머 채널의 사용자 선택을 수신하게 하는, 비일시성 컴퓨터-판독가능 저장 매체.
  13. 제12항에 있어서,
    상기 명령들은, 실행될 때, 추가로 상기 프로세서로 하여금, 적어도:
    적어도 한명의 사용자-선택된 디포머 채널에 대한 가중치 값의 사용자 선택을 수신하게 하며, 상기 가중치 값은 가중치 값들의 범위에 걸쳐 조정 가능하며,
    상기 가중치 값은 상기 디포머 채널과 연관된 상기 자산 메시 구조의 부분의 변형의 정도를 제어하기 위해 상기 범위에 걸쳐 조정 가능한, 비일시성 컴퓨터-판독가능 저장 매체.
  14. 제13항에 있어서,
    상기 명령들은, 실행될 때, 추가로 상기 프로세서로 하여금, 적어도:
    상기 가중치의 상기 사용자 선택을 수신하는 것에 응답하여 상기 디포머 채널과 연관된 상기 자산 메시 구조의 부분의 그래픽 변형을 용이하게 하는, 비일시성 컴퓨터-판독가능 저장 매체.
  15. 제14항에 있어서,
    상기 명령들은, 실행될 때, 추가로, 상기 프로세서로 하여금, 적어도:
    상기 디포머 채널과 연관된 상기 자산 메시 구조의 부분에 근접하게 정의된 상기 자산 메시 구조의 영역에 대한 가중치 맵을 획득하게 하고; 그리고
    상기 자산 메시 구조의 부분의 변형을 용이하게 하는 것에 응답하여, 상기 가중치 맵에 기초하여 상기 자산 메시 구조의 상기 영역의 그래픽 변형을 용이하게 하며,
    상기 영역의 적어도 제1 부분은 제1 변형 정도로 변형되고, 상기 영역의 제2 부분은 제2 변형 정도로 변형되고, 상기 제1 부분은 상기 디포머 채널과 연관된 상기 자산 메시 구조의 부분에 더 가까우며, 상기 제2 부분은 상기 자산 메시 구조의 부분으로부터 더 멀리 있고, 상기 제1 변형 정도는 상기 제2 변형 정도보다 더 큰, 비일시성 컴퓨터-판독가능 저장 매체.
  16. 제14항에 있어서,
    상기 명령들은, 실행될 때, 추가로, 상기 프로세서로 하여금, 적어도:
    사용자 입력에 응답하여, 복수의 디포머 인스턴스들을 상기 자산 메시 구조에 적용하게 하며,
    상기 복수의 디포머 인스턴스들은 사전-정의된 자산 리그를 정의하며, 상기 사전-정의된 자산 리그는 상기 자산 지오메트리의 이동을 제어하도록 구성되는, 비일시성 컴퓨터-판독가능 저장 매체.
  17. 컴퓨터 애니메이션을 위한 시스템으로서,
    메모리 디바이스; 및
    상기 메모리 디바이스 상에 저장된 명령들을 실행하도록 구성된 프로세서를 포함하며,
    상기 명령들은, 실행될 때, 상기 프로세서로 하여금, 적어도:
    자산 지오메트리를 포함하는 입력 파일을 수신하게 하고 - 상기 자산 지오메트리는 자산 메시 구조를 정의하고, 상기 자산 지오메트리는 내부 프레임워크를 제외함-;
    적어도 하나의 디포머 인스턴스를 상기 자산 메시 구조와 연관시키게 하고 - 상기 적어도 하나의 디포머 인스턴스는 복수의 사용자-선택가능한 디포머 채널들을 포함하고, 각각의 디포머 채널은 상기 자산 메시 구조의 적어도 일부분과 연관되고 상기 자산 메시 구조의 연관된 부분의 시각적 외관을 조정하도록 구성됨-;
    사용자 입력에 기초하여, 상기 복수의 디포머 채널들의 적어도 서브세트의 평가를 위한 커스터마이즈 가능한 동작 순서를 수신하게 하고 - 상기 동작 순서는 상기 서브세트의 각각의 디포머 채널이 상기 자산 지오메트리의 애니메이션 동안 실시간으로 평가되어야 하는 순서를 규정함-; 및
    상기 자산 지오메트리, 상기 적어도 하나의 디포머 인스턴스, 및 상기 동작 순서를 포함하는 출력 파일을 발생시키게 하는, 컴퓨터 애니메이션을 위한 시스템.
  18. 제17항에 있어서,
    상기 동작 순서는 상기 복수의 디포머 채널들의 상기 서브세트의 각각의 디포머 채널이 상기 서브세트의 다른 모든 디포머 채널과는 독립적으로 평가되어야 하는 순서를 규정하고, 그 결과, 어떤 상기 서브세트의 디포머 채널도 상기 서브세트의 임의의 다른 디포머 채널의 그래픽 변환으로서 평가되지 않는, 컴퓨터 애니메이션을 위한 시스템.
  19. 제17항에 있어서,
    상기 명령들은, 실행될 때, 추가로 상기 프로세서로 하여금, 적어도:
    상기 자산 메시 구조를 디스플레이하도록 디스플레이 디바이스를 제어하게 하고;
    상기 자산 메시 구조에 인접한 상기 복수의 사용자-선택가능한 디포머 채널들을 디스플레이하도록 상기 디스플레이 디바이스를 제어하게 하고; 그리고
    교정을 위해 상기 사용자-선택가능한 디포머 채널들의 적어도 하나의 디포머 채널의 사용자 선택을 수신하게 하는, 컴퓨터 애니메이션을 위한 시스템.
  20. 제17항에 있어서,
    상기 명령들은, 실행될 때, 추가로 상기 프로세서로 하여금, 적어도:
    적어도 한명의 사용자-선택된 디포머 채널에 대한 가중치 값의 사용자 선택을 수신하게 하며,
    상기 가중치 값은 가중치 값들의 범위에 걸쳐 조정 가능하며, 상기 가중치 값은 상기 디포머 채널과 연관된 상기 자산 메시 구조의 부분의 변형의 정도를 제어하기 위해 상기 범위에 걸쳐 조정 가능한, 컴퓨터 애니메이션을 위한 시스템.
KR1020237003757A 2020-07-24 2021-07-23 동작 순서 변형 엔진을 이용한 컴퓨터 애니메이션을 위한 시스템들 및 방법들 KR20230042470A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062706006P 2020-07-24 2020-07-24
US62/706,006 2020-07-24
PCT/US2021/043020 WO2022020746A1 (en) 2020-07-24 2021-07-23 Systems and methods for computer animation using an order of operations deformation engine

Publications (1)

Publication Number Publication Date
KR20230042470A true KR20230042470A (ko) 2023-03-28

Family

ID=79689422

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237003757A KR20230042470A (ko) 2020-07-24 2021-07-23 동작 순서 변형 엔진을 이용한 컴퓨터 애니메이션을 위한 시스템들 및 방법들

Country Status (6)

Country Link
US (2) US11631209B2 (ko)
EP (1) EP4186032A4 (ko)
JP (1) JP2023540434A (ko)
KR (1) KR20230042470A (ko)
CA (1) CA3184824A1 (ko)
WO (1) WO2022020746A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11978149B2 (en) * 2021-06-21 2024-05-07 The Weather Company, Llc UV map using weight painting

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4600919A (en) 1982-08-03 1986-07-15 New York Institute Of Technology Three dimensional animation
US5483630A (en) 1990-07-12 1996-01-09 Hitachi, Ltd. Method and apparatus for representing motion of multiple-jointed object, computer graphic apparatus, and robot controller
US6005589A (en) 1990-07-12 1999-12-21 Hitachi, Ltd. Method and apparatus for representing motion of multiple-jointed object, computer graphic apparatus, and robot controller
US6115053A (en) 1994-08-02 2000-09-05 New York University Computer animation method and system for synthesizing human-like gestures and actions
EP0712097A2 (en) 1994-11-10 1996-05-15 Matsushita Electric Industrial Co., Ltd. Method and system for manipulating motion units for computer articulated figure animation
US6061067A (en) * 1996-08-02 2000-05-09 Autodesk, Inc. Applying modifiers to objects based on the types of the objects
US6400368B1 (en) 1997-03-20 2002-06-04 Avid Technology, Inc. System and method for constructing and using generalized skeletons for animation models
US6147692A (en) 1997-06-25 2000-11-14 Haptek, Inc. Method and apparatus for controlling transformation of two and three-dimensional images
US6011562A (en) 1997-08-01 2000-01-04 Avid Technology Inc. Method and system employing an NLE to create and modify 3D animations by mixing and compositing animation data
US5990908A (en) 1997-09-22 1999-11-23 Lamb & Company Method and apparatus for processing full motion computer animation
US6403683B1 (en) 1998-08-28 2002-06-11 Teijin Chemicals Ltd Polycarbonate resin composition and molded article
US7233326B1 (en) * 1999-04-29 2007-06-19 Autodesk, Inc. Three dimensional modeling and animation system using master objects and modifiers
US7292250B2 (en) * 2004-03-31 2007-11-06 Dreamworks Animation, Llc Character deformation pipeline for computer-generated animation
US8139068B2 (en) * 2005-07-29 2012-03-20 Autodesk, Inc. Three-dimensional animation of soft tissue of characters using controls associated with a surface mesh
US8704828B1 (en) * 2007-10-23 2014-04-22 Pixar Inverse kinematic melting for posing models
US8743126B2 (en) * 2009-10-28 2014-06-03 Autodesk, Inc. Systems and methods for portable animation rigs
KR101506449B1 (ko) * 2013-07-24 2015-03-27 윤남석 애니메이션 제작 방법 및 이를 수행하기 위한 플러그 인 프로그램이 기록된 기록매체
US9652890B2 (en) 2015-09-29 2017-05-16 Disney Enterprises, Inc. Methods and systems of generating an anatomically-constrained local model for performance capture
KR101775839B1 (ko) * 2016-07-29 2017-09-06 동서대학교산학협력단 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법
WO2019023384A1 (en) * 2017-07-28 2019-01-31 Baobab Studios, Inc. SYSTEMS AND METHODS FOR ANIMATIONS AND INTERACTIVITY OF REAL-TIME COMPLEX CHARACTERS
KR20190028634A (ko) * 2017-09-08 2019-03-19 주식회사 디지털아이디어 디지털 크리쳐의 제작 방법 및 전자장치
CN112437950A (zh) * 2018-05-22 2021-03-02 奇跃公司 用于对虚拟头像制作动画的骨架系统

Also Published As

Publication number Publication date
EP4186032A1 (en) 2023-05-31
WO2022020746A1 (en) 2022-01-27
US20220028150A1 (en) 2022-01-27
EP4186032A4 (en) 2024-02-07
US11631209B2 (en) 2023-04-18
JP2023540434A (ja) 2023-09-25
CA3184824A1 (en) 2022-01-27
US11948240B2 (en) 2024-04-02
US20230245368A1 (en) 2023-08-03

Similar Documents

Publication Publication Date Title
US9978175B2 (en) Real time concurrent design of shape, texture, and motion for 3D character animation
US8139068B2 (en) Three-dimensional animation of soft tissue of characters using controls associated with a surface mesh
US10460498B2 (en) Constraint evaluation in directed acyclic graphs
Dvorožňák et al. Monster mash: a single-view approach to casual 3D modeling and animation
JP5829371B2 (ja) モーションキャプチャデータを使用する顔面アニメーション
US10789754B2 (en) Generating target-character-animation sequences based on style-aware puppets patterned after source-character-animation sequences
CN106575445B (zh) 毛皮虚拟化身动画
US20150145859A1 (en) Automatic Generation of 3D Character Animation from 3D Meshes
Miranda et al. Sketch express: A sketching interface for facial animation
US11948240B2 (en) Systems and methods for computer animation using an order of operations deformation engine
US20090251462A1 (en) System and method for mesh distance based geometry deformation
Orvalho et al. Transferring the rig and animations from a character to different face models
CN115908664B (zh) 人机交互的动画生成方法、装置、计算机设备、存储介质
WO2017002483A1 (ja) プログラム、情報処理装置、深度定義方法及び記録媒体
Rhalibi et al. Charisma: High-performance Web-based MPEG-compliant animation framework
JP2023071137A (ja) 顔表情を生成するための方法及びそれを利用する3次元グラフィックインターフェース装置
Çetinaslan Position manipulation techniques for facial animation
US10636210B2 (en) Dynamic contour volume deformation
US11941739B1 (en) Object deformation network system and method
US20230056110A1 (en) Method for Controlling Digital Feather Generations Through a User Interface in a Computer Modeling System
Miranda Intuitive Real-time Facial Interaction and Animation
Yli-Pentti On production of 3D character models for games
Rajendran Understanding the Desired Approach for Animating Procedurally
Bastos Easy facial rigging and animation approaches
Wiiala 3D animation in VR software: CB-Safe project

Legal Events

Date Code Title Description
A201 Request for examination