概要
U.N. Motion v1.2では、カメラから取得した腕や上半身の動きが、より自然で安定してアバターへ反映されるよう改善しました。
特に、手を一時的に見失った際の腕の動きや、上腕に生じていた不要なひねりを修正しています。これにより、U.N. Avatarでケープなどの衣装が片側だけ不自然に引っ張られる問題を改善しました。
長時間の利用や不安定な入力への耐性も高め、Supervisor、Capturer、各種モーション入出力をより安定して利用できるようにしています。
モーショントラッキング
- 上腕の回転を見直し、腕や肩まわりの動きをより自然にしました。
- カメラが手を一時的に見失っても、腕のトラッキングが急に停止しないよう改善しました。
- 手の検出状態が変化した際に、腕の姿勢が急に切り替わる問題を軽減しました。
- 左右の腕を一貫した方法で処理し、片側だけ不自然な動きが発生しにくくしました。
- 頭、手、指、腕、脚の急激な回転や揺れを抑え、安定した姿勢を出力するよう改善しました。
カメラ・モーション入力
- カメラ映像、VMC、iFacialMocap、動画、画像からの入力を安定化しました。
- 入力が一時的に途切れた際に、古い姿勢が残り続ける問題を修正しました。
- iFacialMocapとの接続が切れた場合に、再接続できるよう改善しました。
- 壊れたデータや不完全なデータを受信しても、処理全体が不安定になりにくくしました。
- 動画の終了や入力停止時に、不要な処理やメモリー使用が残らないよう改善しました。
VMC・VRC OSC・Zenoh出力
- 出力先の処理が遅い場合でも、古いモーションが蓄積して遅延し続けないよう改善しました。
- 常に新しいモーションを優先して送信し、長時間利用時の遅延を抑えました。
- VMCやVRC OSCで、不正な回転や表情データが残る問題を修正しました。
- 出力の停止や再起動を安定化し、異常終了時の状態を確認しやすくしました。
Supervisor・Capturer
- Capturerの起動、停止、再起動を安定化しました。
- 使用するポートが競合した場合に、起動を再試行できるよう改善しました。
- プロファイルの切り替えや保存を安全に処理し、同時操作による設定の破損を防止しました。
- キャリブレーション結果が別のプロファイルへ保存される可能性がある問題を修正しました。
- 入力停止や通信遅延の後も、Supervisorへ正しい状態が表示されるよう改善しました。
- Capturerのログと異常終了時の情報を、より確実に確認できるようにしました。
パフォーマンス・安定性
- カメラ映像とモーションデータの処理で発生していた不要なメモリーコピーを削減しました。
- 繰り返し使用する処理領域を再利用し、フレームごとのメモリー確保を減らしました。
- モーションの平滑化や各種入力に保持上限を設け、長時間利用時のメモリー増加を防止しました。
- SupervisorやCoreで時間のかかる処理を分離し、操作中の応答性を改善しました。
- Runtimeの状態更新と停止処理を見直し、入力断や内部エラーから安全に復旧できるようにしました。
開発・診断機能
- プロジェクト全体を共通手順でビルドできる
cargo xtask buildを追加しました。 - UNMF/Zから受信した単一フレームをJSONへ保存できる診断機能を追加しました。
- リリースパッケージのビルドと検証手順を整理しました。
SHA256(un-motion-1.2.0.zip): 543a2349aef14b4a7b7efd27129cb2d0b2d7fd9a0a358a17830c0f68240e658c