Skip to content

ReleaseNote v0.56.0(en)

PoChang007 edited this page Jul 9, 2020 · 8 revisions

Full Changelog

Major Changes

Unity Supported Version

  • Updated Unity supported version to Unity-2018.4LTS+, .Net4 only
  • [closed] Update Unity version #420
    • Bumped Unity version number to 2018.4.23f1

VRMShaders

MToon, UniUnlit and ShaderProperty have been moved to VRMShaders folder. VRMShaders can be used as a package (UPM) to be imported into a Unity project.

If you upgrade UniVRM from v0.55, it may require you to delete Assets/VRM in advance in order to prevent errors occur.

  • [closed] Separate vrmshaders #436
    • Moved shaders to VRMShaders to be independent from VRM
  • [closed] update MToon #435
    • Upgraded MToon to v3.3
  • [closed] add constant UniGLTF.UniUnlit.Utils.ShaderName #442

Import UniVRM by UPM

We have adopted Unity Package manager (UPM), a handy way to manage projects for developers. Starting from Unity-2019.3, you can specify the package you want to import via git url.

By adding the package's git url provided in Release page, UniVRM can be imported into the Unity project:

Reworks: BlendShapeKey's Interface

Since it was unclear how to create the BlendShapeKey, we have replaced with an explicit API:

  • Add BlendShapeClip.Key
before after Note
public BlendShapeKey(string name, BlendShapePreset preset) private BlendShapePreset.Unknown's behavior was unclear when it was on. Use CreateFromPreset or CreateUnknown instead
BlendShapeKey.CreateFrom BlendShapeKey.CreateFromClip Function's name indicates what it does
new BlendShpaeKey(BlendShapePreset) BlendShapeKey.CreateFromPreset Replace overload with explicit function
new BlendShpaeKey(string) BlendShapeKey.CreateUnknown Replace overload with explicit function. Prior to #330, it operated like Enum.Parse(ignoreCase=true). If BlendShape was created by this function, it would become BlendShapePreset.Unknown

Reference codes

// Behavior prior to #330
public BlendShapeKey(string name) : this(name, BlendShapePreset.Unknown)
{
}

public BlendShapeKey(string name, BlendShapePreset preset)
{
    Name = name.ToUpper();
    Preset = preset;
    if (Preset != BlendShapePreset.Unknown)
    {
        m_id = Preset.ToString().ToUpper();
    }
    else
    {
        m_id = Name;
    }
}

public bool Equals(BlendShapeKey other)
{
    return ID == other.ID;
}

// Reproduce the same behavior in v0.56
static BlendShapeKey CreateKeyOld(string src)
{
    // Since Enum seems not fast enough (Garbage Collection issue), if performance requirements are high, 
    // it is recommended to improve the performance like using caching technique, etc.
    if (Enum.TryParse<BlendShapePreset>(src, true, out BlendShapePreset preset))
    {
        if (preset != BlendShapePreset.Unknown)
        {
            return BlendShapeKey.CreateFromPreset(preset);
        }
    }
    return BlendShapeKey.CreateUnknown(src);
}
  • [closed] Update BlendShapeKey interface #427

MeshUtility

  • You can import the package https://github.com/vrm-c/UniVRM.git?path=/Assets/MeshUtilty via Unity Package Manager

https://github.com/vrm-c/UniVRM/tree/master/Assets/MeshUtility

If some of triangles contain BlendShape in the skinned mesh, SkinnedMeshRenderer + Mesh can be split into:

  • SkinnedMeshRenderer + Mesh (triangles with BlendShape)
  • SkinnedMeshRenderer + Mesh (triangles without BlendShape)
  • [closed] Add mesh utility #434
    • Added MeshUtility for mesh processing such as mesh separation

Exporter Update

  • [closed] Add blendshape options to export dialog #421
  • [closed] ExporterWindowに警告メッセージを実装 #404
    • Added export validation to show warning messages in Exporter Window
  • [closed] add error messages for export validation #447
    • The error message will pop up if the Root Transforms (Position, Rotation and Scalar) of GameObject are not default values when exporting
  • [closed] EditorExport時にアセットが見つかったTextureは、それを使う #433
    • Export texture image with jpg format is available now
  • [closed] Fix nullcheck #432
    • Fixed export without BlendShapeProxy
  • [closed] Add an option to remove vertex color in export menu #428
  • [closed] Save the export directory #419
    • Previous export path will be saved if exporting a model more than one time
  • [closed] Fix export nonactive mesh #401
    • Nonactive meshes referenced by BlendShapeBinding will not be exported. If there is no active mesh in a GameObject, Export is not allowed
  • [closed] Check bone names duplicate when export vrm file. #378 (neon-izm)
    • Export bones with the same name is not allowed

unitypackage

  • [closed] update export UnityPackage menu #441
    • Added VRMShaders and removed UniJSON-standalone, UniHumanoid-standalone, UniGLTF-standalone
  • [closed] asmdef をpackageに同梱するように変更 #405
    • Changed to include asmdef in the package

Others

  • [closed] Add texture transform extensions #229
  • [closed] BuildMesh load balancing in ImporterContext #451
    • Added an option to distribute the frame of BuildMesh processing to prevent the frame rate dropping during dynamic loading
  • [closed] check invalid file name #445
    • Export is not allowed if Filenames are too long. Filenames containing control characters will be replaced with valid characters when importing
  • [closed] Fix: SpringBone LateUpdate to FixedUpdate #430 (yoship1639)
    • Added FixedUpdate for SpringBone
  • [closed] fix MaterialImporter and TextureTransformTest #417
  • [closed] Add cache enum #416
    • Cached Enum.Parse and Enum.GetValues
  • [closed] Suppress garbage collection due to using linq #413
  • [closed] VrmFirstPersonを修正 #412
  • [closed] fix multi frame blendShape #410
  • [closed] Fix argument textureitem #409
  • [closed] Changed to be able to extend texture loader. #408
    • Make texture loader extendable
  • [closed] fix glTFPbrMetallicRoughness init. #403
    • Fixed a problem where no initial settings in pbrMetallicRoughness caused import failure
  • [closed] Fix blendshape uppercase bug. #399 (sh-akira)
  • [closed] Fix: Large heap allocation in BoneMeshEraser.ExcludeTriangles #389
    • Prevent large heap allocation in BoneMeshEraser during import if the model has large number of vertices
  • [closed] onloadmodel to return ienumerator #386
    • Changed ImporterContext.OnLoadModel return value to IEnumerator
  • [closed] Bvhのfloat.parseのロケール問題を修正 #383
    • fixed a problem where BVH loading failed under specific language environments (e.g. French, Icelandic, etc.)
  • [closed] Add non-string based method to search prefab #381 (sator-imaging)
  • [closed] Support mesh sharing morph target #380 (mkc1370)
    • Mesh with morph target created from Blender can be imported correctly now
  • [closed] Adding support for editor preview on non-windows platforms #379 (sator-imaging)
  • [closed] Fix: memory leak in editor preview #325 (ropo)
Clone this wiki locally