-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VRMの事実上のサブセットが乱立し可搬性が悪いためサブセット規格が欲しい #217
Comments
同感です。我田引水ですが似たようなニーズから #214 にて、 VRM 作成に使われたオリジナルデータに対して破壊的変更をしないようにという提案をしています。破壊的変更をしないことでメッシュの削減など自動変換をかける際にも役立つではないかと思っています。 サブセット規格に関してですが VRM 1.0で これまた我田引水ですが自動変換に関しては SEED などでやっている メッシュ削減と似たようなことを拙作 vrmpack で実現できることを確認しているので、こういうものを各種サービスで独自に実装するのではなくて VRM-C として標準実装を提供してユーザ側もしくはサービス提供側で簡単に削減してもらえるようにできるといいのかもしれません。 |
制限乱立問題について、弊社のサービス(cluster)の制限 ( https://clusterhelp.zendesk.com/hc/ja/articles/360029465811 )は問題の筆頭であると認識し、かつ改善したい領域と考えています。なので、現状の考えを表明しておきます。 まずVRMの変換(以下reductionと呼びます)技術が十分であれば、各サービスが制限を撤廃することで互換性が保たれるという考えには同意します。reduction技術をエコシステム全体として洗練させていくことはクリエイターの負担を増やさず、多様なプラットフォームでユーザーがアバターを利用できるためには必須であると考えています。 実はclusterでもVRM reduction技術の開発中で、現在の制限についても緩和する見通しがあります。 その上で、reduction技術が成立し発展してくため、VRM仕様としては以下が担保されているべきと考えます。
その上で、reducerのreference実装が公式に提供されているのは望ましいとは思いますが、必須だとは思いません。 上記が実現された状態でも、各種パラメーターの制限について値の組み合わせがひとつ標準として定義されて、それによって「対応」を名乗っていいか、より具体的には上記bのデータセットがその目安で作られていて提供されていると好ましいと考えています。 |
素晴らしいことなのですがこれはつまり VRM エコシステムを構成する主要メンバーであるところの VRoid、SEED ONLINE、cluster の各サービスがそれぞれ別の reduction を実装していることになるということで...こうなると何か各社フィードバックをして公式実装が可能なのではないかとか期待してしまいます 😅 |
リダクション、どちらかと言えば現状サービス上で勝手に行うという流れを感じていますが、ユーザー側で自由に使えるとより用途が増えて(例えば自作ゲームなどにも使える)良さそうだと思いました(jpgはそう)。 |
cluster が LOD に対応したということで感服して 色々見てみているのですが 例えば 3万ポリゴンのモデルを 2,000 とかに自動で落とすとかはアルゴリズムではなかなか厳しいのかなという印象を持ちました。。モデルの形状を崩さずに削減するのは例えば vrmpackだと 3万→5,000くらいが限界という印象です。 VRM に |
CPU・ネットワーク・システムメモリ・ストレージが潤沢(ほぼ無限)で、GPUメモリだけ限定されているという環境が主な対象ならMSFT_lodは結構歓迎なんですが、実際にはすべて制限があるので、もっと先送りできる方が嬉しいですね… MSFT_lodの導入意図としては、アバター作者(もしくは編集ツール作者)の手間と引き換えに、ユーザーが最終的な見えをコントロールできるということだと思ってます。が、複数のLOD levelが含まれてるひとつのVRMをそのまま配信・クライアントで展開したら当然パフォーマンスは今より悪化するので、VRMを分割して配信するシステムやVRMの部分的遅延ロードが必要だと思ってます(後者はUniVRMやその他importerの内部構造の大幅な複雑化を招くと思います)。 分割した場合でも、たとえばLOD levelが10個あって距離ごとになめらかに10回切り替えるのは(ネットワーク・メモリ・CPUが潤沢な環境じゃないと)かなり厳しいので何かしら間引く必要があって、
の問題があるので、MSFT_lodを導入するだけで何かが解決するという気はあんまりしてないです。 |
そうですね、10 段階の LOD level となるとしんどそうですが例えば容量の大半を占めるテクスチャを共通化させる前提で 3,000 tris など最低限表示が崩れないレベル1つだけにするというような縛りにできれば、MSFT_lod もそれほど非現実的ではないのかなあという印象を持っています。例えば手元の VRoid モデル (35,000 tris 26MB) からマテリアルを削除して 4,000 tris 程度に落とした glb を作ってみたのですがファイルサイズは 1MB ほどでした。独立した glb ファイルでこのサイズなので実際にはもっと削減できるのではと期待しています。 とはいえ、MSFT_lod 対応は今より圧倒的に複雑になると思いますし、仮にハードウェアやロジック等の改善で 5,000 tris 程度に自動リダクションできるのであればそれが一番良いと思います 😄 |
できることなら各プラットフォームごとにブラックボックス化せずにユーザーサイドで調整できる形が良いなぁ 本題ですが、特にテクスチャの解像度の変更などはサーバ側であまり勝手にやって欲しくないなというのが たとえばPNGってデータ構造上、複数のデータチャンク持てますよね? |
VRMをアバターとして利用する各サービスが個別に制限を設けているため、VRMが目指すべき可搬性を満たしていないと思います。(現状3D界のJPGではなく、せいぜい良くてPSDかなという体感です)
VRMはこれらが出来ずに制約のあるアプリ利用そのものが出来ないので、可搬性が低いです。
(VRMにそれら制約を設けた事実上サブセットであっても現状「VRM対応」と名乗れています)
JPGの圧縮率変更やサイズ変更、PSDの互換出力に相当する容易に利用可能な「変換」があればこれは解消できると思いますが、十分フレキシブルな変換は現状(ユーザーが簡単に利用できる実装が無い以上)難しいのではと考えられるため、サブセット規格のようなものが有れば多少状況は改善されるのでは無いかと思います。
究極は「変換技術が欲しい」という話なのですが、サブセット規格策定が現状できる選択肢の一つかなと思ったので仕様の方に立てました。
(あまり3DやVR技術には詳しくない1ユーザーとしての所感なので的外れかも知れませんが一応……。)
The text was updated successfully, but these errors were encountered: