Skip to content

Instantly share code, notes, and snippets.

emilianavt / IKRunner.cs
Last active Sep 23, 2022
This component uses the UnityEngine.LowLevel API to run Final IK things before Unity constraints and particle systems are evaluated.
View IKRunner.cs
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.LowLevel;
using RootMotion.FinalIK;
// Disable IK and TwistRelaxers and set them on this to have them run before constraints and particle systems are evaluated.
// Only one instance of IKRunner is possible, but it should be easy enough to extend.
// Remember to call Start() on the TwistRelaxers once if they are disabled from the beginning. The IK may also need manual initialization.

Best VTuber software

This is a list of the most commonly used and relevant vtubing software. The "best" will always be subjective and depend on your specific requirements. Overall, the information in this list is as accurate as I could figure it out, but there might be errors or some details might become out of date. If you find anything that needs to be corrected, please let me know. You can also note it in a comment.

Additional explanations:

  • iPhone means that an iPhone is basically required
  • iFacialMocap support means that tracking data can be received from the iFacialMocap iPhone app
  • VMC protocol means that the application can send and/or receive tracking data from other VMC protocol capable applications, allowing the combination of multiple tracking methods (e.g. VSeeFace receiving VR tracking from Virtual Motion Capture and iPhone/ARKit face tracking from Waidayo)
  • Tobii means that the Tobii eye tracker is supported
View VSeeFace release

For downloads and more information about VSeeFace, please check out the website.

Version 1.13.38b3:

  • Changed virtual camera driver for better compatibility. If you keep encountering issues, try using "UninstallAll.bat" in the "VSeeFace_Data\StreamingAssets\UnityCapture" folder to uninstall the virtual camera or roll back your Nvidia driver to a version prior to 526.

Version 1.13.38b:

  • Improved reliability of the crash fix by detecting Windows 11 in multiple ways.

Version 1.13.38a:

  • Disabled priority adjustment on Windows 11/NVIDIA combinations to prevent crashes. Make sure to use the latest NVIDIA driver for best performance.
emilianavt / VirtualKeyNames.cs
Created Jun 30, 2020
A reliable mapping of virtual key codes to human readable names
View VirtualKeyNames.cs
private Dictionary<int, string> keyNames = new Dictionary<int, string>() {
{0x8, "Backspace"},
{0x9, "Tab"},
{0xd, "Return"},
{0x13, "Pause"},
{0x20, "Space"},
{0x21, "PgUp"},
{0x22, "PgDown"},
{0x23, "End"},
{0x24, "Home"},
View FinalIKOrionLeapHandController.cs
FinalIKを使ったLeapMotion Orion用HandController
Author: MiyuMiyu (
Modified by: Emiliana (
Modifications: Updated for current SDK version, supports hand position reset on tracking loss, hand mirroring and interpolation.
View TrackerLerp.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TrackerLerp : MonoBehaviour {
public Transform target;
public float targetFPS = 90.0f;
public float influence = 0.985f;
void LateUpdate () {
View CameraSnap.cs
using System.IO;
using UnityEngine;
// Attach this to a camera and position it. You can use "Align With View" from the "Game Object" menu to help with this.
// Check the snap box to take a picture. It will log the path to the console.
// It works in Editor mode too, no need to play the scene.
public class CameraSnap : MonoBehaviour {
public int resolutionX = 2048;
View PositionMapper.shader
Shader "PositionMapper" {
Properties {
_MainTex ("Texture", 2D) = "white" {}
_FactorX ("Object width scale factor (X)", Float) = 1.0
_FactorY ("Object height scale factor (Y)", Float) = 1.0
_FactorZ ("Object depth scale factor (Z)", Float) = 1.0
SubShader {
ColorMask RGBA
View ReassignBoneWeigthsToNewMesh.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ReassignBoneWeigthsToNewMesh : MonoBehaviour {
public Transform newArmature;
public string rootBoneName = "Hips";
public bool resetPose = false;
public bool PressToReassign;
emilianavt /
Last active Oct 13, 2022
Converting an avatar to VRM format

Converting an avatar to VRM format

In this guide, I assume you already know the basics of Unity and probably have previously uploaded an avatar to VRChat. If you haven't, you can still try to follow along, but some descriptions might be a bit too brief.

A more in-depth guide with screenshots can be found here.