VRM as a Code - またはコードによりあなたのアバターを定義する方法について

下書きのまましばらく放置されたのでインターネットの海に放流

目標

hikaliumのアバターをコードで定義して、GUIを用いることなく服を着せ替えたりパラメーターを操作するなどできるようにしたい

先行研究

背景情報

VRM形式

人型アバターで最近主流になりつつあるファイルフォーマット。glTF形式をベースにしている。

glTF形式

調査

VRM/glTFを理解する

bin領域のデータのエンディアン

Little Endianにしなければならない(MUST)

All buffer data defined in this specification (i.e., geometry attributes, geometry indices, sparse accessor data, animation inputs and outputs, inverse bind matrices) MUST use little endian byte order.

UV map

https://docs.blender.org/manual/ja/dev/addons/import_export/scene_gltf2.html#uv-mapping

KHR_texture_transform

Animation

three-vrm example の humanoidAnimation のデモがデバッグに使えそう

実装

github.com

とりあえずVRMをglTFとして読み込んだら、テクスチャ付きでprimitive単位に分割して再出力することはできた。

また気力が湧いたら続きをやろう。