# v0.44: UniGLTF/UniUnlit 追加

`67a6` https://github.com/dwango/UniVRM/releases/tag/v0.44

## ※大切なお知らせ※

### 新シェーダーを0.43以前のバージョンでImportしたとき
0.44で新シェーダーUniGLTF/Unlit を追加しました。

【UniGLTF/Unlit】
既存のUnlit系シェーダではできなかった、
- TextureとColorの乗算
- DoubleSided
- VertexColor
- ColorでTransparent<br>
を設定できるようになりました。これらのパラメータはGLTF標準のunlitとして保存されますので、
他のGLTF互換ビューアなどでも正しく処理されますが、UniVRM 0.43以前では正しく表示されません。<br>
これらのパラメータを使う場合は、ロードする側のライブラリが0.44以降に更新されるのをお待ちください。
また、VRMデータをインポートするためにUniVRMをご利用いただいているかたは、UniVRMの更新をお願いいたします。<br>

### 法線マップの入出力について
0.44から正しくエクスポートし、正しくインポートできるようになりました。<br>
そのため、法線モデルを含んだモデルは、0.44以降でエクスポートし、<br>
0.44以降のアプリケーションでロードしなければ正しく表示されません。<br>
お手数ですが、アプリケーションが0.44以降に更新されるのを待ってから、法線マップを含んだモデルを再エクスポートしてください。<br>

## [GLTF]UniUnlitの導入
新規に `UniGLTF/Unlit` を導入しました。<br>
既存のUnlit系シェーダーでできなかった、<br>

* TextureとColorの乗算
* DoubleSided
* VertexColor
* ColorでTransparent

を設定できます。

## [VRM] UnlitとStandardマテリアルに関しては、VRM部に重複した情報を保存しない仕様変更
0.43以前では、`/materials` と `/extensions/VRM/materialProperties` に2重に情報を保存していました。
0.44から、~~GLTFで記述可能な~~GLTFとだいたい互換できる `Unlit` と `Standard` は `/materials` に一本化することにしました。

GLTFで表現できないマテリアル情報は、

`VRM/MToon` と `VRM/UnlitTransparentZWrite` です。

## [VRM]正規化する時にDisableのGameObjectがあると失敗する場合があるのを修正
HumanBoneに割り当てられていてDisableなど、一定の条件で失敗するのを修正しました。
* https://github.com/dwango/UniVRM/issues/36
* https://github.com/dwango/UniVRM/issues/31

## [GLTF]NormalMap等のマテリアル対応関連
* https://github.com/dwango/UniVRM/issues/17
* https://github.com/dwango/UniVRM/issues/46
* https://github.com/dwango/UniVRM/issues/39
* https://github.com/dwango/UniVRM/issues/38
* https://github.com/dwango/UniVRM/issues/36

### NormalMap asset import

```csharp
textureImporter.textureType = TextureImporterType.NormalMap;
```

### NormalMap runtime import

pack

```hlsl
fixed4 frag(v2f i) : SV_Target
{
    half4 col = tex2D(_MainTex, i.uv);
    half4 normal;
    normal.x = 1.0;
    normal.y = col.y;
    normal.z = 1.0;
    normal.w = col.x;

    return normal;
}
```

### NormalMap export

unpack

* https://github.com/ousttrue/UniGLTF/issues/29

## [GLTF]Animation関連
GLTFのアニメーション対応を更新しました。

### import
Unityのlegacy AnimationClipとしてロードできます。
GameObjectに対する、 `localPosition`, `localRotation`, `localScale` とBlendShapeのキーフレームに対応しています。

### editor export
エクスポート対象のルートにアタッチされた `Animation` または `Animator` のヒューマノイドではない `AnimationClip`(legacy or generic) の、`localPosition`, `localRotation`, `localScale` 
を出力できます。BlendShapeは未対応です。

## [MToon]更新
* https://github.com/Santarh/MToon/releases/tag/v1.5

## [GLTF]Importerインタフェース整理
* https://github.com/dwango/UniVRM/wiki/Runtime-import

## [VRM] Auto指定のMeshRendererが一人称視点で非表示になるのを修正
* https://github.com/dwango/UniVRM/commit/b7ab741b16c9037b12defc6a34c885953635bd7c

## [GLTF]GLBエクスポーター
GLBエクスポーターが動作するようになりました。

* [glbファイルの作り方](https://github.com/dwango/UniVRM/wiki/glb%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9)
