flutter_vrm 0.1.0-dev.1
flutter_vrm: ^0.1.0-dev.1 copied to clipboard
VRM 1.0 avatars on flutter_scene (Flutter GPU): humanoid poses, expressions, look-at, and auto blink, from a renderer-independent VRM parser.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased] #
0.1.0-dev.1 - 2026-09-29 #
Fixed #
- MToon no longer washes out on iOS: missing matcap and shading-shift textures now zero their
factors instead of relying on the shader's
default_blackplaceholder, which samples white on iOS with the pinned flutter_scene. - Apps on flutter_scene 0.23 build again: the package's hook now creates the per-backend
flutter_scene_generated/directories that pubspec.yaml lists (0.23 writes a flat tree).
Changed #
- Development and CI now pin flutter_scene
masteratcff220e, which applies glTF samplers (wrap and filter) to runtime-imported textures (bdero/flutter_scene#430). - MToon reuses every texture the importer already uploaded (by glTF image) instead of decoding its own copy: on a VRoid sample, 116 ms instead of 300 ms of flutter_vrm's load time and 87 MB less memory on macOS.
VrmAvatar.fromImportedis now asynchronous (it builds MToon materials).VrmAvatar.updatetakes the drawingcamera(optional) for screen-space outline widths.
Added #
VrmDocumentandGlbContainer: renderer-independent reading of VRM 1.0 meta, humanoid, expressions, and look-at (package:flutter_vrm/vrm_schema.dart).VrmAvatar: loads a.vrminto flutter_scene and maps glTF nodes and materials onto the imported model.VrmHumanoidRig: normalized humanoid bone rotations.VrmExpressionManager: expression weights withisBinaryand overrides; morph target, material color (color,emissionColor), and texture transform binds.VrmLookAt: bone and expression look-at with range maps.VrmAutoBlink.- MToon 1.0 materials (
assets/materials/*.fmat, generated fromtool/mtoon_template.fmat), compiled by the package's own build hook, withVrmMToonLighting. Textures honor the glTF sampler's wrap and filter modes. VrmMaterialHandle: material color and UV binds now drive MToon parameters as well as flutter_scene's standard materials.- MToon outlines (inverted hull, world and screen coordinate widths, the width texture as a
mask,
outlineColorbinds), normal maps, andVrmAvatar.mtoonOutlineCount. - SpringBone (
VRMC_springBone):VrmSpringBoneDefinitionin the schema andVrmSpringBoneSystem(avatar.springBones), stepped byVrmAvatar.updateafter the pose. - Node constraints (
VRMC_node_constraint):VrmNodeConstraintin the schema andVrmNodeConstraints(avatar.constraints), run in dependency order after the pose. - VRM Animation (
VRMC_vrm_animation):VrmAnimationreads.vrmainto normalized rotations, the hips position, expression, and look-at tracks (linear, step, and cubic spline);VrmAnimationPlayerplays it on an avatar.VrmHumanoidRig.setHipsPosition,restModelPosition, andVrmHumanBone.parent. - Hit testing:
VrmAvatar.hitTest,VrmAvatar.hitTestAll, andVrmAvatar.contains, with body-part capsules (VrmHitShapes) that follow the posed humanoid bones, and optionally the spring bone colliders. The head capsule reaches from the head bone to the top of the model's meshes (the POSITION accessors' bounds), so big-headed and chibi models are covered. - Example viewer app and
mise run fetch-samples. The example'sturnpose swings the hips to show spring bones;.vrmaassets play from the pose chips; taps report the body part, andHITS=true(or the switch) draws the hit capsules.