Skip to main content

v0.46

commit

ce8c

バグ修正

ImporterContext.Destroyの修正

Runtimeのリソース破棄に使えるように仕様変更しました。 詳細は、APIの変更 - ImporterContext.Destroy を参照。

BlendShapeProxyでマテリアルのクリア挙動を修正しました

毎フレームマテリアルの基準値にクリアしていたので、変化していないときにセットするのをやめると元に戻ってしまう。

thumbnail設定の復旧

Importer

float値にNan、Infがあったときにパース出来るようにした

  • ToDo: ExporterでNan Infを検知すべき

Unity2018.3対応

#if NET_4_6 || NET_STANDARD_2_0

Import時に既存のファイル(BlendShapeClip, BlendShapeAvatar, Material)を上書きしない

改めて作成させるには対象のVRMから作成されたMaterialとBlendShapeClipとBlendShapeAvatarアセットを削除したのちに、vrmファイルをreimportしてください(右クリックのメニューなどからできます)。

Exporter

非アクティブオブジェクトのスキップ

エクスポート時に非アクティブのノードのメッシュエクスポートをスキップするようにしました。

Component

VRMFirstPerson.Setupの最適化

設定が auto のとき SubMesh の index 配列(mesh.getIndices)が長い(10万以上)モデルで異常に負荷がかかるのを修正しました。

APIの変更

BlendShapeProxy.SetValue(key, value, immediately)

3引数 SetValue の代わりに2引数の明示的な関数を用意しました。

AccumulateValue

値を貯めて、後で Apply したときに反映する。 SetValues の最後にも Apply されます。

void BlendShapeProxy.AccumulateValue(key, value)

// [Obsolete] SetValue(key, value, false)

ImmediatelySetValue

即反映する。

void BlendShapeProxy.ImmediatelySetValue(key, value)

// [Obsolete] SetValue(key, value, true)

ImporterContext.Destroy

ImporterContext.Destroy(bool destroySubAssets)

が名前から期待される動作をしていないので Obsolete にして用途を明確にした関数を用意しました。

DestroyRootAndResources

runtimeインポーター向けのリソース解放。 追加したDisposeはこれを呼びます。

EditorDestroyRoot

editorインポート時のprefabの元になったGameObjectをシーンから削除。 旧Destroy(destroySubAssets=false)

EditorDestroyRootAndAssets

editorインポート時にエラーが発生した場合などに作ったアセットを削除する。 旧Destroy(destroySubAssets=true)