Granny 3D

Granny 3D SDK Features

Granny는, 단순한 3D 어플리케이션으로부터 완전한 차세대 엔진까지, 모든 어플리케이션을 개발하기 위한 완성된 체제입니다. 게임의 제작을 Granny로 시작하면, 제공되는 기능을 사용하고, 개발 사이클을 수년이라고는 말하지 않아도 수개월은 단축할 수 있습니다. 곧바로 사용 가능한 MAX, Maya용 익스포터, 메쉬, 텍스쳐, 애니메이션용의 프리프로세스트르가 갖추어진 툴 박스, 노멀과 텍스쳐 맵 생성 툴 일식, 애니메이션의 외관과 이행을 확인하기 위한 프리뷰 툴, 단순한 카메라 컨트롤부터 스켈튼 캐릭터 애니메이션의 재생, 생성, 블렌딩에 이르기까지 광범위한 3D 툴이 포함되는 런 타임 라이브러리 등, 다양한 기능이 포함되어 있습니다.

또한, Granny를 프로젝트의 개발 사이클에 짜넣고, 애니메이션 블렌딩, 노멀 맵 생성과 같은 주요 기능을 추가하거나 익스포터를 업그레이드 하고, 쉐이더 그래프, 애니메이션 플러그 인, 라이팅, 카메라 컨트롤등의 새로운 아트 툴 기능을 활용할 수도 있습니다.

Granny 2.7은, 모듈화와 분리를 고도로 진행해 구축되고 있기 때문에, 그 기능을 자유롭게 선택해 어플리케이션으로 사용할 수 있습니다. API는 모두 계층화 되어 있습니다. 고레벨의 만능형 API로부터 모든 요소를 명시적으로 제어하는 상세형 API까지 간단하게 선택하고 사용할 수 있어 Granny 데이터를 직접 설정하거나 한층 더 고도의 방법으로 사용할 수도 있습니다. Granny 2.7은, Granny 독자적인 방법을 사용자에게 강요할 일은 결코 없습니다. Granny가 특정의 정점 형식의 사용을 강제하거나 사용자 어플리케이션 내에 항상 정해진 씬 그래프 아키텍쳐를 구축하거나 커스텀 오브젝트 계층의 계승을 요구하지는 않습니다. 항상 모든 것이 사용자만의 방법으로 이루어지고, 모든 것을 사용자가 제어합니다. 사용하는 엔진의 아키텍쳐를 제어한 상태로, 빠르고 간단하게 Granny 2.7의 모든 기능을 사용할 수 있습니다.

Granny 2.7의 기능은 다음과 같습니다. 다른 RAD 제품과 마찬가지로, 코드 베이스는 자주 갱신되고 새 기능과 최적화가 매월 이루어지기 때문에, 이 리스트는 결코 완전한 것이 아니라 계속 늘어나고 있습니다.

  • 통합된 노멀 맵/텍스쳐 생성 툴
    • MAX (6.x, 7.x, 8.x, 9.0, 9.0x64)와 Maya (5.0, 6.x, 7.0, 8.0, 8.0x64)를 지원함.
    • 매테리얼이 적용된 영화 레벨의 고해상도 지오메트리로부터, 저해상도 지오메트리용의 단일 완전 저해상도 텍스쳐 맵을 작성합니다.
    • 고해상도 지오메트리로부터, 고급 쉐이더로 사용하기 위한 아름다운 노멀 맵을 생성합니다.
      • 탄젠트 공간 노멀 맵, 오브젝트 공간 노멀 맵, 또는 변위 맵을 생성합니다
      • 사용자가 제어 가능한 오버 샘플링
      • 뛰어난 MIP 맵을 생성하는 자동 텍스쳐 작성
      • 초고속 처리. 타회사 툴에 비해 10분의 1 이하의 시간으로, 깔끔한 노멀 맵을 생성합니다

    • 익스포트 모델용의 탄젠트 공간 기저 벡터의 자동 생성
    • 완전하게 SSE 최적화된 탄젠트 공간용 디포머. 노멀/접선과 노멀/접선/종노멀의 양쪽 모두의 형식에 대응
    • 뛰어난 정밀도를 제공해, YUV 변환이 불필요한 노멀 맵용의 특별한 텍스쳐 압축 패스

  • 익스포터의 통합
    • Autodesk MAX (모든 버전), Autodesk Maya (모든 버전), SoftImage XSI 버전 5.11을 지원
      • MAX의 지원에는, 모든 노드 레벨 애니메이션, rigid 메쉬, Bones Pro, Physique, Skin을 포함합니다
      • Maya의 지원에는, 모든 노드 레벨 애니메이션, rigid 메쉬, rigid 스키닝과 스무스 스키닝을 포함합니다.

    • 특정의 패키지에 고유의 데이터도 포함해, 접근 가능한 아트 툴 데이터를 모두 익스포트합니다.
      • MAX 전용 또는 Maya 전용의 사용자 데이터 (라이트 설정, 카메라 설정, 더미 본 등) )를 익스포트 합니다. 이것을 캐릭터, 프롭퍼티외 풀 씬 익스포트에 사용할 수 있습니다
      • 커스텀 섀이더로 사용하는 툴 고유의 매테리얼 파라미터를 모두 익스포트 합니다
      • 애니메이션화 된 커스텀 속성을, 표준의 본 애니메이션과 같은 방법으로 샘플링 할 수 있는 스플라인 곡선으로 익스포트 합니다.

    • 익스포트의 내용과 설정을 상세하게 제어할 수 있는 계층화 설정 인터페이스
      • 익스포트에 포함된 모델, 텍스쳐, 애니메이션, 매테리얼을 제어합니다
      • 텍스쳐 압축률, 최대 가중 본/정점, 애니메이션 곡선의 형태와 같은 글로벌 설정을 지정하거나 항목 마다 설정을 덮어쓰기합니다.

    • 씬과 설정 파일에 저장되는 설정
      • 설정은, 씬 파일과 개별 오브젝트와 함께 자동적으로 영속화 됩니다. 따라서, 다른 씬에 복사된 모델은, 새로운 씬에서도 각각의 Granny 익스포트 설정이 보관 유지됩니다.
      • 자주 사용하는 설정을 컴팩트한 설정 파일에 저장해, 다른 씬에 로드하거나 네트워크상에서 공유하거나 이메일로 교환할 수 있습니다.
      • 설정은 하위와 상위 호환성이 있기 때문에, 새로운 버전의 익스포터로 이전의 버전의 공통 설정을 읽어들일 수 있으며, 그 반대의 경우도 같습니다.
      • 설정은 툴에 의존하지 않기 때문에, MAX로 작성된 Granny 익스포트 설정을 Maya등에서 사용할 수 있습니다.

    • 네이티브 툴 스크립트의 지원
      • MAXScript와 MEL 바인딩에 의해, 수고가 걸리지 않는 완전하게 자동화된 배치 익스포트가 가능합니다
      • 익스포트 후에, 독자적인 포스트 프로세스 실행 가능 파일을 자동적으로 실행할 수 있습니다
      • 공통 설정을 자동화하기 위한 특별한 목적의 스크립트를 기술하거나 아트 규칙을 체크, 적용할 수 있습니다


  • 물리적 통합
    • Granny/Aegia 라이브러리의 완전한 소스가 포함되어 있습니다.
      • 몇 줄의 코드로 게임내에 랙돌을 추가할 수 있습니다.
      • 자동적으로 생성되는 반동, 충돌 과 같은 애니메이션 효과의 물리적 결과를 믹스 할 수 있습니다.
      • 추가의 자산을 작성하지 않아도, 블렌딩 된 애니메이션을 물리적으로 제어하고, 좀비 효과를 작성할 수 있습니다.
      • 기능을 작게 한정시킨 통합 레이어는 어떤 효과도 쉽게 커스터마이즈 할 수 있습니다.

    • Havok, ODE, 커스텀 솔루션과 같은 다른 물리 API에 간단하게 타겟을 변경할 수 있습니다

  • 메쉬의 익스포트와 처리
    • 압축 형식을 포함한 광범위한 정점 레이아웃의 지원
      • 부동소수점, 압축 16비트, 압축 8비트등이 다양한 형식으로부터 개개의 정점 속성을 선택할 수 있습니다
      • Granny의 표준 형식과 독자적인 정점 형식의 사이에 자동적으로 변환을 실행할 수 있습니다
      • 독자적인 정점 형식을 Granny의 파일에 직접 저장할 수 있습니다
      • Granny로 자동적으로 가중 클리핑과 정규화를 실행할 수 있습니다

    • 각 정점에서 여러 개의 2 D 또는 3D 텍스쳐 좌표, 3D 또는 4 D칼라를 전면적으로 지원
    • 가중 블렌딩의 버텍스 근처의 본 수를 사용자가 지정 가능
    • 노멀, 매테리얼 경계에 근거하는 버텍스의 자동 분할
    • 면과 주변, 정점과 주변, 그리고 버텍스와 버텍스 링
      • 커스텀 메쉬 포스트 프로세스 루틴을 간단하게 실장할 수 있습니다
      • 실행시의 실루엣 엣지의 추출에 필요한 모든 정보가 포함됩니다

    • handesness(오른손이든 왼손이든)와 좌표계의 재매핑은 자동화되어 있습니다. 사용하는 엔진의 오른손잡이용 아트 툴 데이터를 왼손잡이용 데이터에, 또는 그 반대로 변경하거나 "윗쪽" 벡터를 변경하는 등을 간단하게 실행할 수 있습니다


  • Granny의 프리프로세서
    • 커스터마이즈 가능한 파이프라인 툴. 이하와 같은 수많은 일반적인 설정을 네이티브로 지원합니다
      • 파일 압축 파라미터의 설정
      • 레지스터 세트에 제한이 있는 하드웨어 디포머에 송신하기 위해서 본 경계를 따라서 메쉬를 분할
      • 파일에서 불필요한 데이터 삭제
      • 작은 형식으로 메쉬 인덱스의 변환
      • 커스텀 엔진 타입으로 메쉬의 정점 형식의 변환
      • 32/64비트 시스템 내에 빅 또는 little endian 바이트 순서로 로드하기 위한 파일의 준비
      • 엔진 좌표계로 파일 변환
      • 하드웨어 변환 후 캐쉬를 위한 인덱스 순서의 최적화

    • 어떠한 플랫폼에서도 작동가능
      • 엔진의 필요에 따라서 변경 가능한 소스 코드로 제공됩니다

    • 독자적인 명령어를 간단하게 추가 가능
      • 심플하고 유연성의 높은 드라이버 프로그램에 의해, 독자적인 설정을 갖춘 툴을 간단하게 커스터마이즈 할 수 있습니다
      • 나중에 버그가 발생해서 문제를 해결하기 전에, 엔진으로 지원되어 있지 않은 데이터 (스케일/shear 등) 를 재빠르게 검출할 수 있습니다.


  • 애니메이션의 익스포트와 처리
    • 완벽한 샘플링
      • 애니메이터는 플러그 인을 포함한 본 애니메이션 방식을 사용할 수 있습니다
      • "프레임 없음"샘플링으로 모든 요소를 일관성이 있는 시간 프레임 베이스의 정보로 변환할 수 있습니다

    • 고급압축기능
      • 본 별로 사용자가 제어 가능한, 애니메이션 데이터의 곡선 fitting와 압축
      • 위치, 회전, 스케일/섀어 데이터 마다 따로 따로 삼차, 2차, 선형, 또는 스텝 보간을 선택할 수 있습니다
      • Granny는 가능한 한 작은 데이터 표현을 자동적으로 선택합니다. 완전한 부동 소수점 곡선 표현으로부터 7비트 차원 삭감 형식까지, 모든 표현이 지원됩니다. 목표의 허용 범위를 넘지 않는 최소의 형식을 선택할 수 있습니다.
      • 연속성을 완전하게 유지하면서, 원하는 시간과 시간 스텝에서 애니메이션을 샘플링할 수 있습니다.
      • C0와 C1 불연속 곡선을 전면적으로 지원하고 있기 때문에, 어떠한 시간 스케일에서도 완전하게 매끈한 모션을 유지하면서, 오브젝트를 뛰게 하거나 텔레포트 시킬 수 있습니다

    • 광범위한 포스트 프로세스 기능
      • 익스포트 후에 애니메이션 전체를 회전, 평행이동, 또는 확대 축소할 수 있습니다
      • 최초로 모델이 된 장소에 관계없이, 원점에서 시작하도록 애니메이션을 자동 배치할 수 있습니다
      • 애니메이션의 전체 또는 일부를 대상으로 어떠한 본(루트를 포함한다)이라도 다양한 수준으로 자유도를 빼앗을 수 있습니다.
      • handesness(오른손이든 왼손이든)와 좌표계의 재매핑은 자동화되어 있습니다. 사용하는 엔진의 오른손잡이용 아트 툴 데이터를 왼손잡이용 데이터에, 또는 그 반대로 변경하거나 "윗쪽" 벡터를 변경하는 등을 간단하게 실행할 수 있습니다

    • 트랙 마스크의 통합
      • 게임내 본 단위로 애니메이션의 마스크가 가능합니다
      • Max나 Maya에 통합된 UI를 사용해 작성하거나 독자적인 스크립트 툴을 사용할 수 있습니다

    • 모프 타겟과 정점 애니메이션
      • 시각소(viseme) 애니메이션 또는 커스텀 메쉬 베이스 애니메이션용으로 수의 모프 타겟을 익스포트 할 수 있습니다.
      • 정점별 곡선을 익스포트 해 완전하게 제어할 수 있습니다. 모델 상대 공간 또는 본 상대 공간내에서 각 정점의 위치를 갱신할 수 있습니다


  • 매테리얼의 익스포트와 처리
    • MAX, Maya로부터 매테리얼과 텍스쳐 그래프 전체를 익스포트 할 수 있습니다
      • Granny의 고레벨 루틴에 표준 쉐이더 그래프의 해석을 맡길 수도, 특수 효과용으로 독자 툴 전용의 커스텀 섀이더 그래프 파서를 기술할 수도 있습니다

    • 스페큘러, 디퓨즈, 앰비언트, 자기 조명, 범프, 변위, 굴절, 반사와 같은 맵의 모두에게 프로그램으로부터 접근 할 수 있습니다
    • UV트리밍/랩핑 타입, 환경 매핑 타입, 툴 제공의 물리 계수, 믹싱률과 같은 모든 매테리얼 파라미터에 프로그램에서 접근 할 수 있습니다
    • S3/DXT 압축 내장
      • 텍스쳐를 하드웨어 대응 형식에서 저장할 수 있습니다
      • Granny의 커스텀 DXT 텍스쳐 압력으로, 텍스쳐를 가장 정확하게 encode 하는 DXT 텍스쳐 형식을 재빠르게 자동적으로 검출할 수 있습니다

    • Bink 텍스쳐 압축 내장
      • 디스크 용량이나 다운로드 사이즈가 중요한 문제가 되는 경우에, 20:1이상의 텍스쳐 압축률을 얻을 수 있습니다.

    • 픽셀 당 비트수/비트 순서의 모든 로테크스체 형식을 변환하는 기능이 내장되어 있습니다.
      • 설정 또는 하드웨어에의 송신에 사용하기 위해서, Bink 압축 또는 DXT 압축 형식의 이미지를 어떠한 형식의 로 데이터로 자동적으로 변환할 수 있습니다

    • 고품질의 텍스쳐 리사이즈 기능에 의해, MIP 맵을 자동 작성하거나 실행시에 텍스쳐의 사이즈를 오래된 그래픽 하드웨어용으로 256 x256(또는 다른 사이즈)으로 제한할 수 있습니다
    • 파일에 텍스쳐와 매테리얼을 그대로 포함하는 일도, 그것들을 이름으로 참조해 공유 매테리얼/텍스쳐 라이브러리를 지원할 수도 있습니다


  • 파일 형식
    • 유연하고 명쾌한 파일 형식
      • 파일 형식의 모든 부분이 API 레벨로 공개되고 있기 때문에, Granny의 API 유틸리티를 사용하지 않아도, 독자적인 Granny 파일 리더/라이터를 기술할 수 있습니다
      • 파일 형식이 하드 코딩 되어 있지 않기 때문에, 독자적인 확장자를 추가하거나 파일 형식을 완전하게 변경해 아트 자산 이외의 파일로 사용할 수도 있습니다

    • 즉시 실행가능한 기본설정 파일 구조
      • 모든 데이터는 즉시 실행가능한 형식으로 저장되도록 기본적으로 설정되어 있습니다. 로드는, 단일 블록을 읽어들이는 것과 극히 고속 포인터 조정 패스에 의해서 행해집니다. RIFF 해석이나 형태 변환은 필요 없습니다.
      • 파일 데이터를 파일 내의 여러 개 세그먼트(segment)에 넣어서, 다양한 종류의 데이터(텍스쳐 데이터, 정점 데이터 등) 의 해방이나 리로드를 빠른 속도로 실행할 수 있습니다.

    • 버전 관리 내장
      • Granny는, 오래된 Granny 데이터를 툴 체인으로, 또는 실행시에 투과적으로 변환할 수 있습니다. 필요한 경우 외에는 데이터를 폐기하거나 재처리하지 않아도 되도록 설계되어 있습니다. Granny 버전관리기능의 견고함을 나타내는 예로 Granny viewer에 첨부된 "GrannyRocks.gr2"샘플 파일은 2003년에 최종적으로 익스포트 된 것으로, 이후, 그 이상의 변경은 없습니다.
      • 커스텀 데이터에 대해서는, Granny의 네이티브 데이터와 같은 버전 처리를 하기 위해, 최신 상태의 보관 유지를 신경쓰지 않고 ,. gr2 파일에 중요한 데이터를 격납할 수 있습니다.

    • "ZIP보다 뛰어난" 압축 내장
      • PKZip과 같은 표준적인 compressor보다 높은 압축률로, 모든 파일을 자동적으로 압축할 수 있습니다

    • 자동 엔디언 변환
      • Granny는 모든 바이트 스왑을 처리합니다. 사용자는, 소스 코드를 변경하지 않아도, 모든 타겟 플랫폼에서 완전히 같은 파일을 사용할 수 있습니다.

    • 64비트 플랫폼에 대한 지원.
      • Granny는, 파일의 작성원의 플랫폼의 포인터 사이즈를 막론한고, 32비트 또는 64비트 플랫폼에서도 포인터를 로드, 조정할 수 있습니다. 언제라도 모든 레퍼런스, 배열 사이즈, 데이터를 자신의 플랫폼상에서 곧바로 사용할 수 있는 상태로, Granny로부터 네이티브의 C구조체를 가져올 수 있습니다.
      • Granny의 익스포터와 프리프로세서는 툴 체인을 실행중인 플랫폼과 상관없이, 어떠한 타겟 플랫폼에 로드되기 때문에 최적화된 파일을 작성할 수 있습니다.

    • 오래된 Granny 1. x파일을 처리하기 위한 변환 DLL 제공
      • 배치처리 또는 온-디맨드로, 오래된 Granny 1. x자산을 2. x에 업그레이드 할 수 있습니다
      • Granny viewer는, 오래된 파일을 간단하게 표시, 참조할 수 있도록 온더 플라이로 자동적으로 변환합니다.


  • 메모리 관리
    • Granny의 bookkeeping은 메모리 오버헤드가 적습니다.
    • Granny의 모든 내부 할당은 블록 기준입니다.
      • 총 할당량은 아주 적습니다.
      • 작은 할당은 없습니다.
      • 백그라운드에서 작동하는 고급 메모리 앨러케이터는 필요없습니다.

    • 실행시에는 "할당 없음"으로 되어 있습니다.
      • 메모리는 요구했을 때에만 할당할 수 있거나 해방됩니다. 프레임 단위의 할당 등, 속도 저하 요인이 되는 할당 하행 깨지지 않습니다

    • 모든 메모리 작업은 오버라이드 할 수 있습니다.
      • 낮은 레벨로 메모리 할당방법을 제어할 수 있습니다.
      • 대부분의 경우, 저레벨 앨러케이터를 전혀 오버라이드하지 않고 , 적절한 API에 직접 메모리를 제공할 수 있습니다


  • 애니메이션의 재생과 블렌딩
    • 완전한 보간(interpolation)을 위해서 평행이동, 회전, 확대 축소를 개별적으로 분해
      • 사용자는 자신의 애니메이션 안에서 스케일링/쉐어링을 자유롭게 사용할 수 있습니다
      • 애니메이션의 스케일링/쉐어링에 의해서 불필요한 회전이 발생하거나 그 반대의 경우가 발생하지 않습니다
      • 사용중이 아닌 채널에서는 아무것도 처리하지 않습니다. 예를 들어, 애니메이션이 스케일링/쉐어링를 사용하고 있지 않는 경우, 스케일링/쉐어링에 경비는 전혀 들지 않습니다.

    • 모델 단위와 애니메이션 단위의 애니메이션의 명시적인 시간 제어
      • 어떠한 시간 스케일로도 애니메이션을 재생 또는 역재생할 수 있습니다
      • 씬 내의 전모델 또는 표시되어 있는 모델만의 시간을 간단하게 진행할 수 있습니다
      • 시간을 모델 단위 또는 애니메이션 단위로 전후방향에 조정하고, 네트워크를 개입시킨 재생이 문제 없고 동기 되도록 합니다
      • 일부의 애니메이션은 리얼타임에 진행시켜, 영화 "매트릭스"와 같은 특수 효과의 애니메이션은 서브 리얼타임으로 진행시킬 수 있습니다.
      • 충돌을 쉽게 찾아낼 수 있게 프레임 마다 여러 차례 모델 클럭을 조회, 변경할 수 있습니다.

    • 단일 애니메이션에 의한 여러 개 모델 제어
      • 2개의 캐릭터의 댄스 등, 1 컷 씬으로 여러 개의 캐릭터를 애니메이션화해, 그 애니메이션과 별도 로드 된 여러 개의 캐릭터를 엔진으로 재생할 수 있습니다
      • 물건을 던지거나 받거나 하는 동작, 물건을 몸에 대거나 제외하거나 하는 동작, 캐릭터간에 물건을 전하는 동작을 재빠르게 간단하게 애니메이션화할 수 있습니다

    • 많은 애니메이션을 한꺼번에 블렌딩
      • 새로운 "우선 순위 없음"의 가중 스킴을 사용하고, 여러 개의 애니메이션의 복잡한 브렌딩(9 애니메이션의 브렌딩 등)을 간편하게 할 수 있습니다
      • 완벽한 4원수 브렌딩으로, 바람직하지 않은 gimbal-lock과 같은 쓸모없는 블렌딩은 생기지 않습니다.
      • 비중이 없는 애니메이션은 처리하지 않습니다. 모델에 많은 애니메이션을 어태치한 채로 계산의 오버헤드가 발생하지 않습니다.

    • 재생 최적화
      • 샘플링, 블렌딩, 변형행렬의 구축을 위해서 플랫폼 고유의 최적화 기능(SSE, VMX128, Altivec 등) 하지만 준비되어 있습니다.
      • 멀티 코어 또는 멀티 프로세서 플랫폼상에서 최고 퍼포먼스를 얻기 위해서, multi-thread 샘플링이 지원됩니다.

    • 블렌딩 비의 본 레벨별 완전제어
      • 애니메이션 별로 애니메이션 트랙측 가중과 모델 본의 비중을 개별적으로 제어할 수 있습니다.
      • 상반신의 모션을 하반신의 모션에 간단하게 feathering 할 수 있습니다
      • feathering 된 애니메이션을 이즈인/아웃 하기 위해서 자동적으로 이징 곡선과 올바르게 상호작용 합니다
      • 툴 플러그 인과 자동추출로 본 비중을 쉽게 오쏘링할 수 있습니다.

    • 삼차 베지에 곡선에 의한 시간의 경과에 수반하는 애니메이션의 인/아웃
      • 기본설정된 타이밍에서의 자동적인 호출과 부드러운 이행
      • 이즈 곡선을 명시적으로 제어하기 위한 사용자가 제어 가능한 탄젠트 곡선
      • 메모리 매니지먼트를 완전하게 자동적으로 제어하기 위해서, 이즈 아웃 곡선의 완료시에 제어 자원을 임의로 해방할 수 있습니다

    • 고속 루트 본 모션 예측
      • 애니메이션화할 때, 작동된 대로 캐릭터를 움직익으로서 발이 땅에 닿게 합니다.
      • 캐릭터 상태 전체를 계산하지 않고서도 충돌을 예측할 수 있습니다

    • 명시적인 브렌딩 스테이지 제어
      • 각 본의 브렌딩의 뒤, 한편 계층 구성보다 전에 로컬 변환을 직접 변경 또는 덮어쓰기할 수 있습니다
      • 손발을 수동 또는 IK를 이용해 조정하기 위해서(기복이 있는 장소에서 다리의 밸런스를 유지하는, 벽으로부터 손 또는 손에 가진 도구를 떼어 놓는 등), 각 본의 월드 변환을 직접 변경 또는 덮어쓰기할 수 있습니다
      • 로컬 변환 또는 월드 변환 상태를 저장하고, 다른 시점에서 사용하거나 다음에 애니메이션으로서 브랜드 할 수 있습니다

    • 애니메이션 LOD 통합
      • 멀리 있는 자세한 스켈톤의 코스트를 줄일 수 있습니다.
      • 스켈톤 또는 애니메이션을 버전별로 여러개 작성할 필요가 없어집니다
      • 애니메이션 고유 LOD - 작은 애니메이션을 줄어듭니다.
      • LOD 파라미터를 오프라인시 또는 로드시에 계산
      • 모든 애니메이션 샘플링 호출을 위한 오류값을 갖습니다.
      • 모든 브렌딩 함수가 똑같이 작동합니다 - 완전한 직교성
      • 모든 전이는 부드럽게 이루어지고"폽핑"이 발생하지 않습니다

    • 복잡한 애니메이션용의 고레벨 블렌딩 acyclic 그래프
      • 단순한 그래프의 여러 개 레이어로 복잡한 블렌딩 그래프를 작성할 수 있습니다
      • 근육이나 의복의 커스텀 효과를 위한 유저 콜백
      • 샘플링과 렌더링 코드가 애니메이션의 복잡함과는 이제 상관없습니다.
      • 얼굴의 애니메이션, 립싱크, 손짓, 다리의 IK와 같은 애니메이션 클래스를 간단하게 캡슐화할 수 있습니다. 문맥에 대한 충분한 지식이 없어도, 복잡한 기능 블록을 여러 개의 스켈튼 리그, 타입에 간단하게 적용할 수 있습니다
      • 충돌 검출, 물리적 제약, 랙돌 시뮬레이션과 같은 외부 수식자와 간단하게 통합할 수 있습니다n

    • 카메라 처리 루틴 내장
      • 상대 모션, 앙각/방위각/회전, 타겟 상대 변위 등, 직감적으로 알기 쉬운 카메라 파라미터를 사용할 수 있습니다
      • 최대 해상도와 물리적인 종횡비의 교정을 사용하고, Granny로 카메라, 투영 행렬을 구축할 수 있습니다

    • Granny의 메쉬에 한정되지 않습니다.
      • 애니메이션 API는 메쉬, 텍스쳐 API로부터 완전히 독립되어 있습니다
      • 하드웨어 T&L대응의 복합 4 x4행렬을 취득하고, 독자적인 메쉬 변형 또는 rigid 메쉬 렌더링으로 사용할 수 있습니다.
      • Granny의 행렬을 직접 3D 하드웨어에 다운로드하고, 고속 쉐이더 베이스 변형을 실행할 수 있습니다.. 하드웨어 변형 샘플은, 모든 콘솔과 PC플랫폼에서 사용할 수 있습니다.


  • 메쉬의 변형과 제어
    • 실행시에 메쉬를 간단하게 설정, 변환 가능
      • 모든 메쉬/모델 바인딩은 사용자가 조정할 수 있습니다. 렌더링 순서, 변형 순서, 변형 결과의 저장, 카드 상주, LOD 스왑을 완전하게 제어할 수 있습니다
      • 투과적인 메쉬 구조로 정점, 중량감, 색, 텍스쳐 좌표, 다각형의 순서와 포함까지를 실행시로 변경할 수 있습니다.

    • 다양한 플랫폼을 위한 고속 디포머
      • 여러 개의 플랫폼과 여러 개의 정점 형식을 향해서 최적화된 블렌더가 포함되어 있습니다. 저희가 릴리스 한 새로운 블렌더를 유저 코드로 곧바로 자동적으로 이용할 수 있도록 하는 확장 가능한 아키텍쳐를 갖추고 있습니다

    • 위치와 노멀의 변형에 가세하고, 탄젠트 공간 변형을 지원
    • 하드웨어 T&L에 의한 처리(사용가능시)
      • 타겟의 하드웨어 플랫폼을 Granny가 명시적으로 지원하고 있을지에 관계없이, 모든 메쉬 데이터는, 하드웨어에 송신하거나 하드웨어 대응 형식으로 변경하기 위해서 어플리케이션으로 사용할 수 있습니다.

    • Granny의 애니메이션에 한정되지 않습니다.
      • 메쉬 변형 API는, 어떠한 정점 데이터나 변환 세트와 조합해 사용할 수 있습니다. 그것이 Granny의 애니메이션 API든 사용자만의 애니메이션 코드에서 취득된 데이터든 상관없습니다.


  • 충돌검출
    • 경계레벨검출
      • 본 경계 박스에 의해서 광선과 모델의 충돌을 재빠르게 체크할 수 있습니다.
      • 충돌할 가능성이 있는 본를 정확하게 인식할 수 있습니다.

    • 트라이앵글 레벨 검출
      • 특수효과나 반사를 을 위한 입사/반사 노멀과 함께, 픽셀 단위의 정확함으로 광선과 모델의 충돌을 취득할 수 있습니다

    • Granny의 모델에 한정되지 않습니다.
      • 충돌 검출 시스템의 일부로서 사용의 엔진으로, 경계 박스, 구, 삼각형, 또는 평면에 대해서 저레벨의 충돌 검출 루틴을 사용할 수 있습니다


  • 인버스 키네마틱스
    • 구성하기 전의 IK
      • IK를 사용하면 총구를 겨누거나 손가락으로 가리키거나 뒤돌아보는 등 동작을 실행한 후, 표준의 Granny 애니메이션 제어 API를 사용하고, 나머지의 애니메이션과 브랜드 할 수 있습니다

    • 구성한 후의 IK
      • 구성 후의 본 위치의 타당성을 분석해서(월드 지오메트리와의 충돌 등), IK를 사용해 재빠르게 수정할 수 있습니다


  • 모델, 애니메이션, 파일 데이터의 표시
    • 하드웨어 3D 가속화의 활용도 포함해 PC와 Macintosh의 양쪽 모두를 네이티브로 지원
    • 풀3D 프리뷰
      • 서로 다른 파일로부터 여러 개의 모델을 로드할 수 있습니다
      • 정점 노멀, 면노멀, 경계 박스, 본, 본명, 좌표 프레임의 모든 것을 풀 애니메이션 모델상에서 시각적으로 검사할 수 있습니다.
      • 일반적인 종횡비와 FOV가 모두 지원되고 있기 때문에, 사용의 엔진의 퍼스펙티브로 모델이 실제로 어떻게 보이는지를 확인할 수 있습니다
      • 메쉬 사이즈와 네이티브의 방향을 자동 검출할 수 있습니다. 모델은 Y-up이든 Z-up이든 항상 적절한 방향으로 올바른 거리에 표시됩니다.(큰 빌딩이나 작은 캐릭터를 로드하면, 카메라의 조정전 이라도, 그것들이 항상 적절히 프레임에 표시됩니다)

    • 풀애니메이션 프리뷰
      • 개별적으로 로드 된 모델상에서 여러 개의 파일의 애니메이션을 비교할 수 있습니다.
      • 루트 노드 모션 있음/없음으로 애니메이션을 재생할 수 있습니다.
      • 오니온 스킨 테스트로 애니메이션의 경계를 표시할 수 있습니다
      • 애니메이션을 분명히 표시하기 위해서 속도를 가감할 수 있습니다
      • 특정의 애니메이션 세그먼트를 검사하기 위해서 시간을 앞뒤로 이동할 수 있습니다
      • 애니메이션을 역재생해서 프리뷰 할 수 있습니다.

    • 시각 조정 툴
      • 최소, 최대, 중심, 원점 그리드를 선택해 모델을 간편하게 배치할 수 있습니다
      • 목시 검사 측정을 위해서 일반적인 단위의 그리드 사이즈가 여러 개 제공되고 있습니다(mm, cm, m, km 등등)
      • 값을 재는 기능이 있는 자동 측정선으로 작업 영역의 정확한 길이를 결정할 수 있습니다

    • 텍스쳐 검사
      • 모델의 텍스쳐를 개별적으로 검사할 수 있습니다.
      • UV오버레이를 사용하면 모델이 어떻게 맵핑 되어 있는지 표시할 수 있습니다
      • UV의 할당을 모델상에서 표시하기 위해서 조정 텍스쳐를 스왑 할 수 있습니다

    • 로우 파일 데이터의 완전한 검사
      • 디버그를 위해 실제 로 파일 데이터를 표시할 수 있습니다
      • 하이퍼 링크를 이용해 파일 데이터 트리 전체를 참조할 수 있습니다
      • 정확한 정점, 메쉬, 애니메이션 데이터를 표시할 수 있습니다


  • 소스 코드
    • ANSI-C표준 라이브러리를 사용하는 모든 일반적인 컴파일러와 플랫폼을 네이티브로 지원합니다.
      • 템플릿, 계승과 같은 C++기능은 사용하지 않기 때문에, 호환성의 낮은 C++컴파일러에서도 문제 없습니다
      • GCC, MSVC, CodeWarrior등에서 컴파일 할 수 있습니다
      • Win32, Win64, Mac OS X, XBox, GameCube, Xbox 360, PS3, PSP, Wii와 같은 지원 대상의 플랫폼상에서 컴파일 할 수 있습니다
      • PSX2, Linux와 같은 지원하지 않는 대상이 아닌 플랫폼상에서도 컴파일 할 수 있습니다

    • 매우 깔끔하고 세분화된 설계이므로 사용자가 추가한 기능을 간편하게 장착, 관리할 수 있습니다
    • new나 delete는 필요 없습니다. 모든 메모리 메니지먼트 호출은 allocate, free 함수 포인터를 개입시켜 일원적으로 실행되기 위해, API를 개입시키고, 또는 소스 레벨로 메모리 메니지먼트를 덮어쓰기할 수 있습니다
    • 하드 코딩 된 파일의 오픈 또는 클로즈는 없습니다. 모든 파일 호출은 open, read, write, close 함수 포인터를 개입시켜 일원적으로 실행되기 위해, API를 개입시키고, 또는 소스 레벨로 간단하게 치환할 수 있습니다
    • 옵션으로, 매크로를 개입시켜 코드 베이스에"granny:: "이름 공간을 적용할 수 있습니다. 따라서, 사용의 컴파일러가 지원할 경우는, Granny의 모든 코드를 고유의 이름 공간 으로 유지하고, Granny의 소스 코드를 사용자의 실행 가능 파일에 컴파일 할 때에 이름의 경합을 피할 수 있습니다
    • 인트로스페크션의 지원
      • 언제라도 Granny의 메모리 사용량을 조회하고, 각 소스 파일이 사용하고 있는 메모리 블록을 정확하게 파악할 수 있습니다
      • 언제라도 Granny의 CPU 사용률을 알아보고, 각 코드 블록이 차지하고 있는 합계 CPU 클록에 대한 비율을 파악할 수 있습니다
      • 다양한 등록옵션과 파라미터 검증은 신속하고 용이한 실패 분석을 가능하게 합니다.