v0.56.0: 最低バージョンを Unity-2018.4 に更新¶
主な変更¶
Unity対応バージョンを更新¶
サポートバージョンを
Unity-2018.4LTS 以降
.Net4
のみに更新しました。
[closed] Update Unity version #420
UnVRMのUnityバージョンは
5.6.7f1
から2018.4.23f1
に更新した
VRMShaders フォルダを独立¶
MToon
UniUnlit
ShaderProperty
を VRMShaders
フォルダに移動して、独立した UPM パッケージとしました。
UniVRM-0.55 以前からアップグレードする場合は、 Assets/VRM
を一度削除してからインストールしなおすことをおすすめします(unitypackageはファイルの移動に対応していないため)。
UniVRM の UPM 対応¶
Unity-2019.3
で導入された git url によるパッケージ指定に対応しました。
以下の2つを登録することで UniVRM を使用できます。
VRM が VRMShaders に依存しています。
BlendShapeKeyのインタフェースを厳格化、整理¶
BlendShapeKeyを作成する方法が不明瞭だったため、 より明示的な API に置き換えました。
BlendShapeClip.Key 追加
before |
after |
備考 |
---|---|---|
public BlendShapeKey(string name, BlendShapePreset preset) |
private |
BlendShapePreset.Unknownのときの挙動が不明瞭だった。代わりに、CreateFromPreset または CreateUnknown を使用してください |
BlendShapeKey.CreateFrom |
BlendShapeKey.CreateFromClip |
他の関数に合わせて、名前を変更 |
new BlendShpaeKey(BlendShapePreset) |
BlendShapeKey.CreateFromPreset |
オーバーロードをやめて明示的な関数に変更 |
new BlendShpaeKey(string) |
BlendShapeKey.CreateUnknown |
オーバーロードをやめて明示的な関数に変更。#330 以前は、Enum.Parse(ignoreCase=true) のような動作をしていました。この関数で作成した場合は、 BlendShapePreset.Unknown になります。 |
https://github.com/vrm-c/UniVRM/pull/330
参考コード
// #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;
}
// v0.56 でだいたい同じような動きをするコード
static BlendShapeKey CreateKeyOld(string src)
{
// Enum があまり速くない(GC出たり)ようなので、パフォーマンス要件が厳しい場合はキャッシュするなど工夫することをおすすめします
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 の追加¶
https://github.com/vrm-c/UniVRM.git?path=/Assets/MeshUtilty
で導入できます。
https://github.com/vrm-c/UniVRM/tree/master/Assets/MeshUtility
SkinnedMeshRenderer + Mesh を
SkinnedMeshRenderer + Mesh(BlendShapeのある三角形を含むコピー)
SkinnedMeshRenderer + Mesh(BlednShapeの無い三角形を含むコピー)
に分解します。
[closed] Add mesh utility #434
メッシュを分割するUtilityを追加した
Exporter の更新¶
[closed] Add blendshape options to export dialog #421
BlendShapeオプションをエクスポートダイアログに追加した
[closed] ExporterWindowに警告メッセージを実装 #404
[closed] add error messages for export validation #447
エクスポート時、ルートに移動・回転・スケールがある場合にメッセージを出す
[closed] EditorExport時にアセットが見つかったTextureは、それを使う #433
Jpgフォマットのテクスチャは出力できるようになった
[closed] Fix nullcheck #432
BlendShapeProxyの無いモデルのエクスポート時(Vrmになる前の初回エクスポート)にエラーなっていた問題を修正した
[closed] Add an option to remove vertex color in export menu #428
頂点カラー情報を削除するオプションを追加した
[closed] Save the export directory #419
VRMエクスポート二回目からダイアログのデフォルトは前回の出力先を指定するようになった
[closed] Fix export nonactive mesh #401
BlendShapeBindingによって参照される非アクティブなメッシュはエクスポートしない。対象オブジェクトはアクティブなメッシュがない場合、エクスポートしない
[closed] Check bone names duplicate when export vrm file. #378 (neon-izm)
名前同じのボーンはエクスポート禁止
unitypackage¶
その他のChangelog¶
[closed] Add texture transform extensions #229
textureInfoの拡張であるKHR_texture_transformの対応
[closed] BuildMesh load balancing in ImporterContext #451
動的読み込み時のフレームレート低下を防ぐためBuildMeshの処理をフレーム分散させるオプションを用意しました
[closed] Fix vrm look at blend shape applyer #449
BlendShapeで制御される目が動かないの問題を修正した
[closed] check invalid file name #445
テクスチャ名前が長すぎるとVRMファイルがエクスポート禁止。インポート時に制御文字のエスケープを追加した
[closed] Fix: SpringBone LateUpdate to FixedUpdate #430 (yoship1639)
fixed update
を追加して、fixed update
かlate update
かを選べるようになった
[closed] fix MaterialImporter and TextureTransformTest #417
ImporterContextをMaterialImporterに持ち運ばなくても動くように変更した。それに伴ってテストも修正した
[closed] Add cache enum #416
Enum.Parse and Enum.GetValuesをキャッシュする
[closed] Suppress garbage collection due to using linq #413
LINQ構文使用によってVRMロード時に発生していたGCを抑制を対応した
[closed] VrmFirstPersonを修正 #412
[closed] fix multi frame blendShape #410
[closed] Fix argument textureitem #409
[closed] Changed to be able to extend texture loader. #408
テクスチャローダーを拡張できるように変更した
[closed] fix glTFPbrMetallicRoughness init. #403
materials[]->pbrMetallicRoughnessの項目が無い場合にImportに失敗するの問題を修正した
[closed] Fix blendshape uppercase bug. #399 (sh-akira)
BlendShap大文字のためにエラーが発生するバグを修正した
[closed] Fix: Large heap allocation in BoneMeshEraser.ExcludeTriangles #389
頂点数が多いモデルを読み込んだ時に、BoneMeshEraser.ExcludeTriangles内で大量のヒープアロケートが発生していたの問題を対応した
[closed] onloadmodel to return ienumerator #386
ImporterContext.OnLoadModelの戻り値をIEnumeratorに変更した
[closed] Bvhのfloat.parseのロケール問題を修正 #383
ロケールを無視して英語で処理してしまうため、小数点が、ピリオドでないロケール(フランス語など)に対する修正
[closed] Add non-string based method to search prefab #381 (sator-imaging)
[closed] Support mesh sharing morph target #380 (mkc1370)
Blenderから*.gltfや*.glbを書き出した際にモーフ名付きのメッシュが読み込まれない問題の修正を行いました
[closed] Adding support for editor preview on non-windows platforms #379 (sator-imaging)
Windowsじゃないのプラットフォームのサポートの追加した。エディターのプレビューのみ