Notifications
bg
fantom
developer - Programmer
Tokyo, Japan
0
Likes
12
Followers
2
Connections
All
Articles0
Games0
Showcases4
Column4
Jobs0
お陰様で暫定リリースだったにも関わらず、とても人気が出てしまったので、ついつい開発に没頭してしまいました(笑)。

で、以前BVH モーションファイルのエラーについて、またいくつか新たな認識が深まったので、修正も兼ねて情報を共有しておきます(あまり必要ないかも知れませんが、今後同じような問題にぶつかる人のために)。

エラーは単純にUniVRMの「UniHumanoidのBVH判定を修正」(v0.42)で改善されました。
https://github.com/dwango/UniVRM/releases

ライブラリを v0.42 にアップデートしたらエラーが出なくなりました。またエラーが出なくなった代わりに、モーション自体がおかしく再生されました。それで気づいたんですが、どうやら今までエラーが出ていたのは「Z-up右手座標系」で作られたBVHファイルのようですね。UniVRMはOpenGL系のライブラリなので(Y-up右手座標系)、そこでエラーが出てたっぽいです(Unity上では「Avatar is invalid」としか出なかったので、原因を特定できなかった→以前はY-up右手座標系以外のものはエラーが出ていた?)。

試しにカーネギー・メロン大のデータベースのモーションキャプチャーデータ
https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture
で「Daz-friendly version」(Y-up右手座標系)以外を使ったら、同じようにおかしく再生されました(例えば「3dsMax-friendly version」は Z-up右手座標系なので)。まぁ、原因の1つであったことは間違いないでしょう(計算がおかしくなるので)。

もしかしたら、「Z-up右手座標系とY-up右手座標系の変換ツール」みたいのがあれば、何でも使えるようになるかも知れませんね。ググったけど見つからなかったので、知ってたら教えて下さい。Z-up右手座標系とY-up右手座標系の変換のロジックでも良いです。BVHってただのデータしかないから(メタデータみたいのが無い)、Z-upとY-upの情報とかも無いですしね。

 * * * * * * * * * * * *

最後はちょこっと進捗(笑)。

歌モノをやり始めると少し口パクが寂しかったので、何とかしたいな~と考えてましたが、とりあえずマイクでのリップシンクを実装しました。それがこの動画です。自分がマイクに向かって歌うとキャラも同じように歌います(笑)。

あとは、モーションを簡単に作れるものとかあったらなぁ…。やはり OpenCV とかになるんですかね?もしくは「動画解析→BVH」みたいのとか無いかな(笑)。

まぁそれでも、初期のバージョンからすると、色々できるようになったとは思います。これで素材の有無に依らずに楽しめるようになったら完璧なんですが…(笑)。

興味があったらぜひ遊んでみて下さい。面白いアイデアなどあったら何でも良いので教えて貰えると嬉しいです(実装できるか否かは別ですが、アイデア段階では制限ない方が良い(笑))。
http://fantom1x.blog130.fc2.com/blog-entry-309.html

tamtam
3 days ago
いつの間にかリップシンク機能も付いていてすごい!
以前チラリと「VRMを応用した動的ARキャラもできそう」と言いましたが、少し前に作ったARCoreとVRMRuntimeLoader組み合わせたら、簡単に現実世界に召喚できました(笑)。

まぁ、ただのテストなので取り留めのない動画ですが、予めモデルをアプリに入れてビルドしなくても良いのがメリットですね。いつでも好きなキャラを入れ替えたり、追加したりできるのが嬉しい(動画では長くなるので、ストレージからの読み込みはカットしてます)。

う~む、これで先日の「Facial AR」みたいなもので、表情をリアルタイムで変えられたら楽しい気がするなぁ…(笑)。できれば Android の内カメラで顔認識とか簡単に導入できるものはないものか…?

tamtam
22 days ago
どんどん改良されていてすごい! どこまで発展していくのか楽しみです。Androidで今使えるフェイシャルキャプチャみたいなもの、どんなのがあるんですかねぇ。(Androidの開発環境に詳しくなくていつもすいません・・・)
fantom
updated the project
Aug 26, 2018 10:17 PM
VRM Live Viewer
http://fantom1x.blog130.fc2.com/blog-entry-309.html 思ったより動的にVRMを読み込んで動かすのが楽しかったので、色々研究しているうちに、VRMでもダンスをさせることに成功。せっかくなので、誰でも遊べるようにアプリとしてビルドしてみた。 またVRMの本来の用途はVRChat やバーチャルキャストが中心となるため、Android版として作っていたものを、急遽Windowsにも対応させた。楽しんでくれる人が一...
Showcase
ちょっと宣伝も入ってしまいますが、以前「雪を降らせる」で作った C# Job System の使用例を、アセットストアにて公開している Androidプラグインの最新版に同梱したので、興味のある方はサンプルコードもダウンロードできるようになりました(主に「JobMoveSample.cs」にまとめてある。従来型の「ClassicMoveSample.cs」と比較するとわかりやすいと思う)。
http://u3d.as/1224

スクリプト自体は Android 以外でも使えます。またアセットストアの規定上、他人の素材を使えないので、内容的には空飛ぶ謎の物体(笑)に変更しています。モデルと飛ぶ方向を変えれば「雪を降らせる」ことも可能ですね。

また今回からapkビルドするのが面倒という人のためにも、予めデモをビルドしたものをブログのQRコードからダウンロードできるようにしました。
http://fantom1x.blog130.fc2.com/blog-entry-293.html
Android端末をお持ちなら、ダウンロードして即試せます。「こういう機能を導入できるよ」というデモでもあるので、アプリ開発している方は参考にでもして下さい。今回は開発補助的なツール(CPU使用率、フレームレート計測、独自ギズモなど)を中心に機能追加しました。

C# Job System の使い方に関しては改めていずれ、ブログなどにまとめると思います。ただ、ECS に関しては少し研究を据え置きすると思います。というのは使ってみてわかったんですが、ECSってまだ開発途上なので、インストールするバージョン(パッケージマネージャーでインスト、または manifest.json に書く)によっては一部機能が使えたりそうでなかったり(参考にしている記事と合わない)、マイナーバージョンアップでもいきなりメソッドの仕様変更されたりしてますね。なので、せっかく書いても今後も使えるとは限りません。「Unity2018.3.0以降でECS強化する」と公式ブログにも書かれてましたが、現段階では導入も面倒で、かつ安定性も問題あるかもですね(インストするバージョンにもよると思うが、下手するとフリーズする)。まぁある意味、アンセーフなコードをC#上のサンドボックス内で動かすシステムというか(何か矛盾してる文言ですが(笑))、使える用途や確実に動かすにはそれなりの設計力はいるかもですね。C++みたいな低レベルプログラミング得意でシステム作れる人なら使いこなせるかも知れませんが…。

ただ、C# Job System だけなら、理解できれば導入も含め、それほど難しくはないです。ただこれも現在は用途が限定されると思うので(値型のみで、参照型があまり使えないため、複雑なシステムで色々な値を参照するものなどには使いづらいと感じた。エフェクトや演出など直接システムに関わらないものの方が使いやすい気がする)、まだまだこれからという感じかもですね。まぁ、特に3Dに関しては少しでも負荷を軽減することは宿命みたいなものなので、勉強する価値はあると思います(笑)。

tamtam
24 days ago
マルチスレッドで動いているようですね。fantomさんが言う通り「特に3Dに関しては少しでも負荷を軽減することは宿命みたいなものなので、勉強する価値はある」だと思うので、今からでも知見を貯めておくのは損はないです。Unity 2018ではそういう新しい概念を伴う機能がいくつかあるので、私も少しずつ移行して行きたいなと思っています。
ちょっと勘違いしてたので訂正を兼ねて情報を。VRM に BVH モーションファイルを適用するのに、実験中はエラーが出て使えないと思ってましたが、データによってはボーン名や構造が多少違っていても動くものがあるようです(私がたまたま mocapdata.com のものをテストに使っていたが、未加工では使えなかっただけらしい)。どうやらエクスポートする際に右手座標系にすることや回転を逆にすること、モデルの体型(?まだ理由はわからないが、確かに依存する)などを VRM 仕様に合わせれば行けるみたいですね。

とりあえず使えるBVHを見つければ、動的にモーションも入れ替えられるので、色々応用できるかも知れません。素材が揃えば、一応当初の目的だった「どんなキャラでも踊らせる」という機能も達成できました。まぁ、このアプリはただ眺めて楽しむだけのものなので、実用性は無いですが…(笑)。

せっかくなので、Android版以外にWindows版(まだ未実装の機能あり。Macは持ってないので、iOSも作れない)もビルドしたので、試してみたい方はぜひ~。
http://fantom1x.blog130.fc2.com/blog-entry-309.html

ちなみにBVHモーションファイルと音楽は Perfume 公式
http://perfume-global.com/project.html
で配布されているものをダウンロードして、そのまま読み込んだだけです。
後は自分でも作れればもっと楽しめるんですけどね(笑)。

あれからVRMの動的読み込みを色々研究して、1つのアプリとして完成させました。学びの成果でもありますね(笑)。
http://fantom1x.blog130.fc2.com/blog-entry-309.html

ご覧のようにリアルタイムでガンガンモデルを入れ替えることもできます。またVRMは割と軽い(インポートにそれほど時間はかからない)ので、これは色々使えるかも知れません。例えば、1つのオリジナルキャラを作って、複数のロールプレイングゲームで使える、なんてこともできそうですね。

BVHモーションファイルはどうやら一般的なフォーマット(ボーン名や数)が違っているせいで読み込み失敗するけど、コンバータみたいのを作れば、これも直接使えるようになる可能性も高いです。どなたかオープンソースなど知っていたら教えて下さい(笑)。

実装はそれほど難しくないので、画期的なシステムを作るのには良いかもです。問題点もまとめておいたので、こういった部分も解消されれば、動的コンテンツを作るのにもかなり使えそうですね。
http://fantom1x.blog130.fc2.com/blog-entry-309.html#VRMLiveViewer_known_issues

また研究成果などが上がりましたら情報を共有します。逆に新たな情報があったら教えて頂けると助かります。まだ新しいフォーマットなので、情報少ないんですよね。なので全部手探りでトライ&エラー繰り返しです(笑)。

tamtam
a month ago
>動的に読み込めるモーションファイルフォーマット&オープンソースって他に無いですかねぇ…? @fantom モーション=アニメーションファイルにあまり詳しくないので・・・申し訳ないです。
fantom
a month ago
tamtamアプリ公開、おめでとうございます! すばらしい!
ありがとうございます!あとはモーションファイルが動的に読み込めれば、既に音楽ファイルも動的に読み込めるし、かなり楽しいものになる気がするんですけどね(一応BVHは読み込めますが、今の所VRMに最適とは言えないんですよね…)。動的に読み込めるモーションファイルフォーマット&オープンソースって他に無いですかねぇ…?あれば実装を試してみたいんですが。
tamtam
a month ago
アプリ公開、おめでとうございます! すばらしい!
About Me
I am Japanese and not very good at English, I will write in English for the world in this space....
See more
Certifications (0)
Import
See all
fantom's liked projects (7)
Following (31)
Followers (12)