Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#330 で行われた破壊的変更により独自に設定したキーがモデルからキーの一覧を取得した際に大文字で返ってくるため、小文字で設定したキーの適用が不可能になっていた問題を修正しました。
また、この時の変更によりデフォルトのJOYやFUN等のキーが文字列での指定をすることが不可能になってしまったため、アプリ開発者側で変更が必要になっています。
以前
new BlendShapeKey("JOY")
はBlendShapePreset.Joyを指していましたが、BlendShapePreset.Unknownの名前がJOYのキーを指すようになってしまっています。
(標準のキーはEnumでの指定しか出来ないようにした仕様変更と理解していますが、意図したものかの確認をお願いします。)
テストコード
このテストコードではすべてのBlendShapeKeyを文字列で列挙
proxy.BlendShapeAvatar.Clips.Select(d => BlendShapeKey.CreateFrom(d).Name).ToList()
し、ボタンでその表情に変更するサンプルです。
しかし、標準の表情はNameで取得できるにもかかわらず、
new BlendShapeKey(Name)
をしてしまうと、Unknown_
が付加されてしまうため、Enum.GetValues(typeof(BlendShapePreset))
から同名のキーを見つけた際にそちらを利用しています(0.53までの動作を再現するのに必要なコードです)。テストに使用したVRMモデル:
8801565727279527051.zip
テスト用に"TEST1","Test2","test3"のBlendShapeKeyが追加されたモデルです。
大文字のみ、大文字小文字、小文字のみのキーです。
0.53以前は全て大文字として扱われ動作します。
0.55では大文字小文字を区別するが、Nameを取得するとToUpperで返されるため、TEST1しか動作しません。
テストコードを実行した画面:
現在UniVRM0.55を利用して同じ動作をさせるためにprivateなm_nameをリフレクションして取得するコードがすでに作られているので取り込んでいただけると助かります。
よろしくおねがいします