Latest 0.3.0
Homepage https://github.com/tattn/VRMKit
License MIT
Platforms ios 10.0
Dependencies VRMKit
Frameworks SceneKit
Authors

VRMKit

VRM loader and VRM renderer

demo

For "VRM", please refer to this page.

Features

  • [x] Load VRM file
  • [x] Render VRM models on SceneKit (experimental)
  • [x] Face morphing (blend shape)
  • [x] Bone animation (skin / joint)

Requirements

  • Xcode 10.x
  • Swift 4.x
  • iOS 10.0+

Installation

Carthage (Recommended)

github "tattn/VRMKit"

CocoaPods

pod 'VRMKit'
pod 'VRMSceneKit' # for rendering

Usage

Load VRM

import VRMKit

let vrm = try VRMLoader().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 data
vrm.meta.title
vrm.meta.author

// model data
vrm.gltf.jsonData.nodes[0].name

Render VRM

import VRMKit
import VRMSceneKit

@IBOutlet weak var sceneView: SCNView!

let loader = try VRMSceneLoader(named: "model.vrm")
let scene: VRMScene = try loader.loadScene()
let node: VRMNode = scene.vrmNode

sceneView.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)

ToDo

  • [ ] VRM shaders support
  • [ ] Improve rendering quality
  • [ ] Animation support
  • [ ] VRM editing function
  • [ ] Physics support
  • [ ] 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

Twitter
GitHub

Latest podspec

{
    "name": "VRMSceneKit",
    "version": "0.3.0",
    "summary": "VRM loader and VRM renderer",
    "description": "VRM loader and VRM renderer.nnVRMKit can read VRM metadata and show the 3D models.",
    "homepage": "https://github.com/tattn/VRMKit",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "git": "[email protected]"
    },
    "source": {
        "git": "https://github.com/tattn/VRMKit.git",
        "tag": "0.3.0"
    },
    "social_media_url": "https://twitter.com/tanakasan2525",
    "platforms": {
        "ios": "10.0"
    },
    "source_files": "Sources/VRMSceneKit/**/*.{swift,h}",
    "public_header_files": "Sources/VRMSceneKit/**/*.h",
    "frameworks": "SceneKit",
    "dependencies": {
        "VRMKit": [
            "~> 0.3.0"
        ]
    }
}

Pin It on Pinterest

Share This