本日は HoloLens の技術調査枠です。
HoloLensでアニメーションする3Dランチャを作成する方法をまとめます。
前回記事の続きです。
bluebirdofoz.hatenablog.com
今回はアニメーションのフレーム登録に際して少々不可解な動作を検出したのでまとめます。
実行環境は OS Build:10.0.17686.1003 。
データ作成は Blender 2.79 、gltf-exporter は 2018/6/28 現在で最新のものを使用しています。
アニメーションの検証
その2で作成したモーフアニメーションのモデルをサンプルに使用します。
bluebirdofoz.hatenablog.com
検証においては取り違えがないようにサンプル毎に固有のマテリアル色を設定します。
その2の記事では以下のように、全60フレームのアニメーションに4カ所のキーフレームを登録しました。
・開始フレーム:1、終了フレーム:60
・ 0 フレーム:キー値 0.000
・20 フレーム:キー値 1.000
・40 フレーム:キー値 0.000
・60 フレーム:キー値 0.000
その結果、以下のような変形と戻りを繰り返しアニメーションする3Dランチャが作成できました。
このアニメーションを実現する場合、60 フレーム目の登録は不要に見えます。
40 フレーム目で既に 0.000 の戻り変形を実施しており、40 ~ 60 フレームの間に変化はないからです。
ここで 60 フレーム目のキーフレームを削除した、以下のデータを用意してみました。
・開始フレーム:1、終了フレーム:60
・ 0 フレーム:キー値 0.000
・20 フレーム:キー値 1.000
・40 フレーム:キー値 0.000
しかし、3Dランチャとして配置すると、不思議なことに戻りのアニメーションが表示されません。
20 ~ 40 フレームの変化が飛ばされたようなアニメーションになります。
試しに 40 フレーム目側のキーフレームを削除したデータも実施してみます。
・開始フレーム:1、終了フレーム:60
・ 0 フレーム:キー値 0.000
・20 フレーム:キー値 1.000
・60 フレーム:キー値 0.000
3Dランチャとして配置すると、同じく戻りのアニメーションが表示されません。
20 ~ 60 フレームの変化が飛ばされたようなアニメーションになります。
気になる点として、先ほどのデータと比べると変形自体もゆっくりと表示されているように見えます。
もしかしたら最後のキーフレームのみ再生できないのかと考え、以下のデータを用意してみました。
最終フレームを 41 に変更し、41 フレーム目に 0.000 のキー値を登録しています。
・開始フレーム:1、終了フレーム:41
・ 0 フレーム:キー値 0.000
・20 フレーム:キー値 1.000
・40 フレーム:キー値 0.000
・41 フレーム:キー値 0.000
結果は戻りのアニメーションが表示されませんでした。
20 ~ 41 フレームの変化が飛ばされたようなアニメーションになります。
キーフレームではなく最終フレームまでのフレーム数の問題かと考え、次は以下のデータを用意してみました。
最終フレームを 100 に変更し、キーフレーム登録の最後は 40 フレーム目としています。
・開始フレーム:1、終了フレーム:100
・ 0 フレーム:キー値 0.000
・20 フレーム:キー値 1.000
・40 フレーム:キー値 0.000
結果、こちらも戻りのアニメーションが表示されませんでした。
20 ~ 40 フレームの変化が飛ばされたようなアニメーションになります。
では最後の確認にと、最終フレームの 100 フレーム目にキーフレームを登録した、以下のデータを用意してみました。
・開始フレーム:1、終了フレーム:100
・ 0 フレーム:キー値 0.000
・20 フレーム:キー値 1.000
・40 フレーム:キー値 0.000
・100 フレーム:キー値 0.000
結果、こちらは戻りアニメーションが表示されました。
しかし、戻りのアニメーションがゆっくりと表示されているように見えます。
規則性について不明ですが、キーフレームの最後、または最終フレーム近くのキーフレームが再生されない条件があるように見えます。
また、最終フレームまでのフレーム数に応じて再生速度が変わる問題もありそうです。
同じ問題の報告事例を軽く探してみましたが見当たらなかったので、本件は筆者の環境特有の問題である可能性もあります。
何にせよ。3Dランチャのアニメーションを作成する際は、実際にHome空間で再生するとどうなるか確認した方がよいでしょう。
次回はオブジェクトアニメーションの応用を試してみます。
bluebirdofoz.hatenablog.com