Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ousttrue/VrmEditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vrmeditor

read, write, edit and animation test.

vrmeditor

TODO: restart

zig-0.13

> zig build
> zig build run -- some.vrm

features

  • glTF-2.0
  • bvh
  • fbx

glTF Extensions

Memo

        +------------+
        | Renderer   |
        +------------+
  drawlilst ^
            |
        +------------+
        |libvrm scene| <- Skinning/MorphTarget/Pose/Animation
        +------------+
     import ^|
            |v export
        +--------+
        |gltfjson| <- json dom tree: ImGui Edit
        +--------+
deserialize ^|
            |v serialize
        gltf/glb

milestone

1

  • read / write vrm-0.x & 1.0

2

  • edit all json node

x

  • fbx import
  • vrma export
  • motion merge
  • pbr material
  • mtoon material
  • keyframe edit

dependencies

test

shaders

subprojects

build

msvc17 clang16
std::spanstream not used
std::expected c++latest c++2b libc++ OK
std::format c++latest removed
std::span c++latest c++20 OK
std::string_view c++latest c++20 OK
std::filesystem c++latest c++20 OK
std::optional c++latest c++20 OK
# msvc17
$ meson setup builddir -Dcpp_std=c++latest -Dexecutable=true
$ meson compile -C builddir
# clang16 on Ubuntu22.04
$ meson setup builddir -Dcpp_std=c++2b -Dexecutable=true
$ meson compile -C builddir

naming plan

  • formatter clang-format: mozilla
  • class, struct name PascalCase => camelCase. conflict public member name
  • free function: lower_snake
  • non public memver function: lower_snake

variables

Naming conventions for variables with a wider scope than local variables.

  • local variable: camelCase
  • public member: PascalCase
  • non public member variable: prefix m_
  • static variable: prefix s_
  • global variable: prefix g_
  • const, enum value: UPPER_SNAKE
  • enum class value: Pascal

folder / namespace

libvrm

node & morphtarget

animation / springbone / constraint

humanoid

udp / bvh

boneskin

boneskinning

mesh / skinning / deformed_mesh

namespace

  • libvrm (Node hierarchy / BaseMesh)
  • libvrm::vrm (Humanoid, Expression, SpringBone, Constraint, LookAt)
  • libvrm::vrma
  • libvrm::bvh
  • libvrm::runtime (NodeAnimation, MorphTarget, Skinning)
  • libvrm::serialization (Udp pose)

WIX の管理

vrmeditor.xml

Product{Version=} を更新する