# v0.46 ## commit `ce8c` ## バグ修正 ### ImporterContext.Destroyの修正 Runtimeのリソース破棄に使えるように仕様変更しました。 詳細は、`APIの変更` - `ImporterContext.Destroy` を参照。 ### BlendShapeProxyでマテリアルのクリア挙動を修正しました 毎フレームマテリアルの基準値にクリアしていたので、変化していないときにセットするのをやめると元に戻ってしまう。 * https://github.com/dwango/UniVRM/issues/72 ### thumbnail設定の復旧 * https://github.com/dwango/UniVRM/issues/62 ## Importer ### float値にNan、Infがあったときにパース出来るようにした * ToDo: ExporterでNan Infを検知すべき ### Unity2018.3対応 ```csharp #if NET_4_6 || NET_STANDARD_2_0 ``` ### Import時に既存のファイル(BlendShapeClip, BlendShapeAvatar, Material)を上書きしない * https://github.com/dwango/UniVRM/issues/56 改めて作成させるには対象の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` されます。 ```csharp void BlendShapeProxy.AccumulateValue(key, value) // [Obsolete] SetValue(key, value, false) ``` #### ImmediatelySetValue 即反映する。 ```csharp void BlendShapeProxy.ImmediatelySetValue(key, value) // [Obsolete] SetValue(key, value, true) ``` ### ImporterContext.Destroy ```csharp ImporterContext.Destroy(bool destroySubAssets) ``` が名前から期待される動作をしていないので `Obsolete` にして用途を明確にした関数を用意しました。 #### DestroyRootAndResources runtimeインポーター向けのリソース解放。 追加したDisposeはこれを呼びます。 #### EditorDestroyRoot editorインポート時のprefabの元になったGameObjectをシーンから削除。 旧Destroy(destroySubAssets=false) #### EditorDestroyRootAndAssets editorインポート時にエラーが発生した場合などに作ったアセットを削除する。 旧Destroy(destroySubAssets=true)