Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

VRM loader and VRM renderer (3D model / gltf)

License

NotificationsYou must be signed in to change notification settings

tattn/VRMKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VRM loader and VRM renderer
license:MIT

demodemo

For "VRM", please refer tothis page.

Features

  • Load VRM file
  • Render VRM models on SceneKit (experimental)
  • Face morphing (blend shape)
  • Bone animation (skin / joint)
  • Physics (spring bone)

Requirements

  • Swift 5.7+
  • iOS 15.0+
  • watchOS 8.0+ (Experimental)

Installation

Swift Package Manager

You can install this package with Swift Package Manager.

Carthage & CocoaPods (Deprecated)

If you want to use these package managers, please usehttps://github.com/tattn/VRMKit/releases/tag/0.4.2

Usage

Load VRM

import VRMKitletvrm=tryVRMLoader().load(named:"model.vrm")// let vrm = try VRMLoader().load(withUrl: URL(string: "/path/to/model.vrm")!)// let vrm = try VRMLoader().load(withData: data)// VRM meta datavrm.meta.titlevrm.meta.author// model datavrm.gltf.jsonData.nodes[0].name

Render VRM

import VRMKitimport VRMSceneKit@IBOutlet weakvarsceneView:SCNView!letloader=tryVRMSceneLoader(named:"model.vrm")letscene:VRMScene=try loader.loadScene()letnode:VRMNode= scene.vrmNodesceneView.scene= scene

Blend shapes

joy

node.setBlendShape(value:1.0, for:.preset(.joy))

angry

node.setBlendShape(value:1.0, for:.preset(.angry))

><

node.setBlendShape(value:1.0, for:.custom("><"))

Bone animation

Humanoid

node.setBlendShape(value:1.0, for:.preset(.fun))node.humanoid.node(for:.neck)?.eulerAngles=SCNVector3(0,0,20* CGFloat.pi/180)node.humanoid.node(for:.leftShoulder)?.eulerAngles=SCNVector3(0,0,40* CGFloat.pi/180)node.humanoid.node(for:.rightShoulder)?.eulerAngles=SCNVector3(0,0,40* CGFloat.pi/180)

Read the thumbnail image

letloader=tryVRMSceneLoader(named:"model.vrm")letimage=try loader.loadThumbnail()

ToDo

  • VRM 1.0 support
    • Decoding VRM 1.0 file
    • Render an avatar by SceneKit
  • VRM shaders support
  • Improve rendering quality
  • Animation support
  • VRM editing function
  • GLTF renderer support

Contributing

  1. Fork it!
  2. Create your feature branch:git checkout -b my-new-feature
  3. Commit your changes:git commit -am 'Add some feature'
  4. Push to the branch:git push origin my-new-feature
  5. Submit a pull request :D

Support this project

Donating to help me continue working on this project.

Donate

License

VRMKit is released under the MIT license. See LICENSE for details.

Author

Tatsuya Tanaka

TwitterGitHub


[8]ページ先頭

©2009-2025 Movatter.jp