ホロライブの二次創作ゲーを作りたい
1 :名前は開発中のものです。 :2023/11/13(月) 21:49:52.79 ID:yGEs5LQ+.net と、決意してから3か月弱が経過した。 誰かおいらを見守っててくれ ここに進捗張ってモチベを維持しようと思う
399 :名前は開発中のものです。 :2024/01/21(日) 10:31:20.53 ID:On0hd98j.net mmd→Unityの時点でちゃんと変換出来てるかチェックしてみたら?
400 :名前は開発中のものです。 :2024/01/21(日) 10:36:18.47 ID:FNRdfgES.net >>399 従来のSkinnedMeshRendererでの描画は問題ない 変換の作業手順は全員同じだからピンポイントにこの2人だけバグってる理由がまじで分からない
401 :名前は開発中のものです。 :2024/01/21(日) 10:54:09.65 ID:ZPNczpKU.net Unityど素人だけどマントってクロスとか物理系の機能使ってない?そういうの全部オフにても駄目?
402 :名前は開発中のものです。 :2024/01/21(日) 11:02:52.40 ID:On0hd98j.net Unityと言うかMMDでも剛体のタイプ・物理演算の機能はあるので MMD4Mecanimの中の Mecanim(Humanoid)での VMD 再生は、まだ不完全な部分が多く全てのモーションで正常に再生できるとは限りません。 その場合は、Animation Type を Humanoid ではなく Generic を選択してください。 Unityで動作する リアルタイムの Bullet Physics プラグイン / C# DLL も同封しています。 ここで物理エンジン使ってる
403 :名前は開発中のものです。 :2024/01/21(日) 11:11:32.81 ID:On0hd98j.net あとIKの機能も使えないらしいからそこが引っかかってる可能性もある
404 :名前は開発中のものです。 :2024/01/21(日) 11:20:49.59 ID:FNRdfgES.net >>401 >>402 物理系の機能は全部殺してあるというかUnityにインポートした時点で意味を持たなくなってるはず 仮にそれが悪さしてたとしても、この2人以外にもボロが出てるはずなので謎 >>403 IKは従来のSkinnedMeshRendererでも用が無いので使ってないから関係ないと思う
405 :名前は開発中のものです。 :2024/01/21(日) 11:29:22.04 ID:FNRdfgES.net https://docs.unity3d.com/2021.3/Documentation/Manual/GPUInstancing.html > GPU instancing isn’t compatible with the SRP Batcher. (GPU インスタンス化はSRP Batcherと互換性がありません) 従来のSkinnedMeshRendererと同じくSRP Batcherは効いてるものだと勝手に思い込んでたけど効いてないのか…>>382 の時点で気づきたかった 色々検証してきて皆からアドバイスもたくさんもらってきたところ申し訳ないけど このアセット(というかGraphics.DrawMeshInstancedIndirect)を使ってる時点で 異なるメッシュ異なるマテリアルの大量描画には向いてないとなるとこのアセットは没かもしれない… でもまあ「このアセットは従来のSkinnedMeshRendererの代わりにDrawMeshInstancedIndirectを使って描画していて、DrawMeshInstancedIndirectはSRP Batcherが効かないので異なるメッシュ異なるマテリアルの大量描画には向いていない」という情報は実際に使って検証しないと分からなかったと思うので無意味ではなかったということで 今後この制約の中でも使い道が生まれるかもしれないので検証はもう少し続ける
406 :名前は開発中のものです。 :2024/01/21(日) 11:34:36.30 ID:G6sF08L6.net >>397 ポリゴンには4角ポリゴンと3角ポリゴンがあって基本的にモデリングは4角ポリゴンで行うので4角ポリゴン表記だと思った 4角ポリゴンの2倍が3角ポリゴンの総数だからUnity上でレンダリングされる時は4角ポリゴンの2倍
407 :名前は開発中のものです。 :2024/01/21(日) 11:39:33.59 ID:On0hd98j.net まぁDrawMeshだからまぁ同じ物が大量にある場合の最適化って所は変わらんね
408 :名前は開発中のものです。 :2024/01/21(日) 11:43:54.81 ID:FNRdfgES.net ここで度々取り上げられてたIDOLY PRIDEってスマホゲームの技術記事を見返してみたら、明言されてるわけではないけど 異なるメッシュ異なるマテリアルの複数描画→SRP Batcher 同一のメッシュ同一のマテリアルの大量描画→DrawMeshInstancedIndirect って使い分けられてるね 異なるメッシュ異なるマテリアルの大量描画はダメか・・・
409 :名前は開発中のものです。 :2024/01/21(日) 11:56:14.10 ID:FNRdfgES.net 参考までにポリゴン数0のメッシュで30種類64体を描画したら30fpsだった >>382 と変わって無くて草も生えない >>406 勉強になる、ありがとうー
410 :名前は開発中のものです。 :2024/01/21(日) 11:59:43.90 ID:On0hd98j.net FPSもスクリプトで表示しないと正確な値出ないよ Unity公式でも言ってる適当仕様
411 :名前は開発中のものです。 :2024/01/21(日) 12:08:59.76 ID:FNRdfgES.net >>410 https://i.imgur.com/EJzunTo.png ←30種類64体をGPU Instancerで普通に描画 →30種類64体をGPU Instancerでポリゴン数0のメッシュに差し替えて描画 スクリプトでfps見てるんだけどあんま変わらなかった(右下)
412 :名前は開発中のものです。 :2024/01/21(日) 12:34:14.29 ID:FNRdfgES.net よし1人が10人くらいに分身して暴れる必殺技を用意してこのアセットを活かそう(やけくそ)
413 :名前は開発中のものです。 :2024/01/21(日) 12:56:59.26 ID:ZPNczpKU.net >>383 マントを非表示にしてる子がいるみたいですけどそれは無しなんでしょうか?
414 :名前は開発中のものです。 :2024/01/21(日) 12:58:56.33 ID:FNRdfgES.net この機能を実装していて異なるアニメーションの再生に対応したアセットの実例が、問題点まみれで一度挫折した>>354 この時よりも多少知識が増えた今だから問題点を潰して使えるかもしれない、もう1回にらめっこしてみる >>413 マントが破綻してる子はマントありモデルとマントなしモデルがある子なのでそれは問題ないです
415 :名前は開発中のものです。 :2024/01/21(日) 12:59:42.77 ID:FNRdfgES.net DOTS Instancingという機能がSRP BatcherとGPU Instancingを併用できるとの情報を入手 https://logicalbeat.jp/blog/15417/ この機能を実装していて、(以下>>414 )
416 :名前は開発中のものです。 :2024/01/21(日) 18:35:15.54 ID:FNRdfgES.net >>354 は一旦置いといて https://assetstore.unity.com/packages/tools/animation/rukhanka-ecs-animation-system-241472?locale=ja-JP Rukhanka - ECS Animation System $66 買った 結局ShaderGraph縛りかと思ったけどShaderGraphを従来のHLSL記述のシェーダに変換できたので あとはこれを今使ってるカスタムシェーダ用に書き換えられれば動くところまでは持っていける セットアップはコンポーネントを1つアタッチするだけという手軽さ これで30種類のモデルのパフォーマンスが良ければ・・・
417 :名前は開発中のものです。 :2024/01/21(日) 18:44:03.47 ID:FNRdfgES.net ゴリゴリDOTSを使ってるはずで大量のモデルを動かすサンプルもあるのに Transformの制御が普通にできたりVATを使わず従来のAnimatorで動いてるっぽいのが却って不気味 今までのアセットとの違いというとLinear Blend SkinningというShaderGraphの機能を使ってるっぽいところ(結局HLSLシェーダに変換しても機能してるので今のところ問題なっしんぐ) https://docs.unity3d.com/ja/Packages/com.unity.shadergraph@10.0/manual/Linear-Blend-Skinning-Node.html
418 :名前は開発中のものです。 :2024/01/21(日) 23:57:51.04 ID:On0hd98j.net ECSはまだ新しいからそんなに情報出てないね 企業もこれから使い出すのかと思うと未来ありそうな気はする
419 :名前は開発中のものです。 :2024/01/22(月) 08:10:20.97 ID:oef3vWvB.net >>418 DOTSはJobSystem+Burstの上に成り立ってる機能だけど そのJobSystemとBurstが値型しか使えないとか制約が強すぎて嫌われてるから今のままだと使い勝手悪すぎて普及しづらそう わいが自作した揺れものシステムもJobSystem+Burstで最適化したけどマジで面倒くさかった
420 :名前は開発中のものです。 :2024/01/22(月) 17:40:26.02 ID:oef3vWvB.net このアセットが使っていた機能は正確には「Mesh Deformation」という機能で、そもそも「Mesh Deformation」はDOTSとか関係ないというオチだった このアセットは、DOTSでも「Mesh Deformation」が使えるよというのが売りのアセットで 従来のSkinnedMeshRendererに「Mesh Deformation」を適用するよりもDOTSで「Mesh Deformation」を使うほうがパフォーマンスは低く、わいが求めてるものとは全然関係ないアセットでした なので今わいが使ってるカスタムシェーダに「Mesh Deformation」は使えるのか?使えば本当にパフォーマンスが上がるのか?が争点となっているけど 「Mesh Deformation」の適用前と適用したつもりのシェーダで比較してもパフォーマンスは変わらず40FPS前後 GPUは全然余裕あるから、ありえるとしたら「Mesh Deformation」が適用できていないかCPUバウンドで頭打ちになってるかのどちらか
421 :名前は開発中のものです。 :2024/01/22(月) 18:17:35.31 ID:oef3vWvB.net イッチ~😭
422 :名前は開発中のものです。 :2024/01/22(月) 19:27:33.28 ID:8OZUJi12.net ワイは失踪するしか……!もう道が……!
423 :名前は開発中のものです。 :2024/01/22(月) 19:28:24.25 ID:oef3vWvB.net 何が問題になってるんだ 今なら見ての通り余裕があるから助け船出せるで
424 :名前は開発中のものです。 :2024/01/22(月) 19:31:04.09 ID:8OZUJi12.net モチベがない上にもはや時間を割こうとすら思えなくなってる
425 :名前は開発中のものです。 :2024/01/22(月) 19:36:31.53 ID:8OZUJi12.net Xのアカウント凍結してるんだが
426 :名前は開発中のものです。 :2024/01/22(月) 19:36:55.49 ID:oef3vWvB.net そりゃ重症だわな・・・ メルさんの件が効いてるのか他に何かあったのか分からんけど、モチベ低下は時間に身を委ねるしか回復手段なさそうだもんなあ 時間に身を委ねた結果回復するか完全に燃え尽きるかはコントロールしきれない、ぶっちゃけガチャ
427 :名前は開発中のものです。 :2024/01/22(月) 19:38:21.62 ID:oef3vWvB.net >>425 普通に見れたよ、なんだろう とりあえずイッチの骨を拾ってこのスレはわいが使いつぶすから回復したら戻っておいで
428 :名前は開発中のものです。 :2024/01/22(月) 19:38:49.89 ID:8OZUJi12.net ゲーム制作中断した代わりにワイの読み上げあくたんの精度が上がった
429 :名前は開発中のものです。 :2024/01/22(月) 19:40:32.55 ID:oef3vWvB.net そういえばいたなそんなん AIこよりみたいなやつだっけ ゲームで使ったら怒られそうか・・・
430 :名前は開発中のものです。 :2024/01/22(月) 19:43:25.81 ID:8OZUJi12.net そらもうアウトラインから立ち幅跳びしてるようなもんやろ
431 :名前は開発中のものです。 :2024/01/22(月) 19:57:51.79 ID:oef3vWvB.net 別クチでアドバイス頂けたりもして、結論が出ました 1.GPU Instancingを有効化して、少ない種類のキャラクターを大量描画 →GPUが100%に振り切れても120fpsくらいの高パフォーマンスを出せる 2.GPU Instancingを有効化して、多い種類のキャラクターを大量描画 →セットパスコールが多くてCPU使用率30%あたりで即CPUバウンドになるため、30fps程度しか出せない 3.従来のSkinnedMeshRenderer(SRP Batcherが有効)で、多い種類のキャラクターを大量描画 →セットパスコールはSRP Batcherにより大幅に削減できるが、それでもやはりCPUバウンドにより40fps前後しか出ない 3.の時点でセットパスコール数を減らさない限りCPU側のパフォーマンスが頭打ちなので、「Mesh Deformation」の力を借りても無意味とのこと キャラクターの数や質を維持したままセットパスコール数によるCPUバウンドを解決することは現状不可能とのことで、アキラメロンという結論になりました アドバイスくれた皆様方ありがとうございました 70レスくらい使い潰した性能検証は一旦終えて、わいは少し前までやってたいつものゲーム開発に戻ります
432 :名前は開発中のものです。 :2024/01/22(月) 20:37:43.32 ID:oef3vWvB.net なんかQiitaの記事1本書けそうなくらいのボリュームあったなこの検証 書かないけど
433 :名前は開発中のものです。 :2024/01/22(月) 21:53:26.61 ID:hx/ZQSsZ.net まぁ難しい事せず普通に作ろう 後ろの群衆なんかもImpostorsで作った方が早いとかね https://youtu.be/8iKWEYvozws?t=1013
434 :名前は開発中のものです。 :2024/01/22(月) 22:05:55.90 ID:hx/ZQSsZ.net 今流行りのパルワールドも最初はオールアセットゲーから始まっていた https://news.denfaminicogamer.jp/interview/190906a インディーゲームは細かいクオリティより新しい面白さに一点集中しよう https://youtu.be/u1C4EahF4mA
435 :名前は開発中のものです。 :2024/01/23(火) 08:25:55.04 ID:1/XcE8eH.net 性能検証>>431 について補足 > 3.従来のSkinnedMeshRenderer(SRP Batcherが有効)で、多い種類のキャラクターを大量描画 > →セットパスコールはSRP Batcherにより大幅に削減できるが、それでもやはりCPUバウンドにより40fps前後しか出ない →PostProcessを無効化する:40fps →+揺れものシステム&物理演算を無効化する:50fps →+とあるコンポーネントを無効化する:70fps という感じで色々無効化したらパフォーマンスが上がった 最後のとあるコンポーネントというのは、キャラクターの眉毛を髪の上から描画させるためのコンポーネントのことで 毎フレームSkinnedMeshRenderer.BakeMesh()が走っていたために微妙な負荷になっていたみたい こいつを切り捨てるのは割と現実的なのでこれでパフォーマンスが上がるなら消すか
436 :名前は開発中のものです。 :2024/01/23(火) 08:27:20.42 ID:1/XcE8eH.net >>434 新しい面白さなあ・・・前例がほぼない的な意味でなら新しさはあると思うんだけど万人受けは期待してない わいにとっては絶対面白いけどそれがどこまで受けるかは実際に公開してみないとわからないかも
437 :名前は開発中のものです。 :2024/01/23(火) 09:06:59.25 ID:A5/zzmn2.net あとパルワールドで思い出したけどこれエンジンがUEになってるから Unityでもある程度重いソフトはMOD切ってIL2CPPでテストも毎回ビルドってのもありうるね
438 :名前は開発中のものです。 :2024/01/23(火) 09:52:23.62 ID:1/XcE8eH.net >>437 IL2CPPでもMonoでも「キャラクターの種類が増えるほどフレームレートが目に見えて低下する」という課題があったのでそれを解決したかったのが今回の検証なんだけど まあ結局ダメだったのでIL2CPPビルドに頼ったりキャラの数を減らしたりCPUバウンドの要因を地道に削っていくって方向で・・・
439 :名前は開発中のものです。 :2024/01/23(火) 09:59:55.78 ID:1/XcE8eH.net わいが使ってるシェーダが超有能すぎる(実は今回の性能検証でもこっそり一役買ってる) Qiitaで紹介記事書きたいくらいなんだけど、顧客を絞って1人1人に対するサポートを手厚くやっていきたいという先方のご意向で書けないもどかしさ
440 :名前は開発中のものです。 :2024/01/23(火) 10:03:04.39 ID:1/XcE8eH.net https://i.imgur.com/xwoB9zP.jpeg ←
441 :名前は開発中のものです。 :2024/01/23(火) 10:08:04.96 ID:1/XcE8eH.net https://i.imgur.com/TfVzuM3.jpeg こっちにしとこ
442 :名前は開発中のものです。 :2024/01/23(火) 10:38:26.22 ID:A5/zzmn2.net まぁ後は正攻法やね マップならPerfect Cullingとか言う謎のアセットもあるけど https://gamemakers.jp/article/2023_12_11_57024/ https://github.com/CyberAgentGameEntertainment/UnityPerformanceTuningBible
443 :名前は開発中のものです。 :2024/01/23(火) 12:04:21.03 ID:1/XcE8eH.net >>442 複数種類のキャラクターが画面内を暴れまわる感じのゲーム作りたいから カメラに映ってない間という条件のあるカリング系は大体没なんだ・・・
444 :名前は開発中のものです。 :2024/01/23(火) 12:05:10.00 ID:1/XcE8eH.net あとそのあたりのドキュメントは3,4回くらい読み返してる 英語のほうはあんま理解できてる気しないけど
445 :名前は開発中のものです。 :2024/01/23(火) 12:09:45.80 ID:U3m3M0NO.net >>443 閃乱カグラ?
446 :名前は開発中のものです。 :2024/01/23(火) 12:14:07.10 ID:1/XcE8eH.net >>445 閃乱カグラは全然知らない スマブラとかスーパーポケモンスクランブルが近いかも
447 :名前は開発中のものです。 :2024/01/23(火) 13:36:49.37 ID:U3m3M0NO.net >>446 カグラは無双系ですね。キャラクター重視のゆるいアクションって作ってる途中で 面白くないかもって思っちゃうかもしれないのが難しいところです…
448 :名前は開発中のものです。 :2024/01/23(火) 15:01:44.73 ID:1/XcE8eH.net >>447 スマブラXに百人組み手っていうモードがあったけどSPにもあるんだろうか、無双系って言われてるのって大体あれのことだよね あれほど雑魚敵がポンポン死んで目まぐるしく入れ替わる感じでもなく かといってスマブラほど1人1人とのプロレスを重くしたいわけでもなく その中間くらいにしたい・・・って文章にしてみたけど自分でもよくわからん、思うが儘に作ってみてどうなるかのお楽しみ
449 :名前は開発中のものです。 :2024/01/24(水) 00:54:47.29 ID:DwvPG79i.net 主さんにはシェーダーとか開発者を唸らす方向で頑張って欲しい
450 :名前は開発中のものです。 :2024/01/24(水) 04:50:44.63 ID:VfW00VT7.net なんじゃそりゃ まあ作りたいゲームの方向性も決まってるし 万人受けは狙わず数人が大草原生やしてくれれば御の字なのでやりたいようにやってみます
451 :名前は開発中のものです。 :2024/01/24(水) 08:06:32.59 ID:VfW00VT7.net だいぶ前にスマホ版ビルドしてみたけどメモリ不足で無理だったってのがあったけど URPの設定のRenderScaleを2倍にしてて5000×2500とかいうとんでもない解像度で描画しようとしてたのが原因だった RenderScaleを等倍にしたらメモリ使用量も0.6GBくらいに収まって普通にスマホ版で動かせました
452 :名前は開発中のものです。 :2024/01/24(水) 09:11:13.67 ID:fVi59P06.net 解像度下げるのも最適化やね
453 :名前は開発中のものです。 :2024/01/24(水) 09:23:31.06 ID:VfW00VT7.net 今回はスマホで2倍ってのが意図してなかったものだからよかったけど PCだと2倍と等倍でもかなり差が分かるし(一応画質設定で下げられるようにする) おそらくスマホも等倍未満にすると目に見えて画質が下がってしまうのでできればこのラインを維持したいところ・・・
454 :名前は開発中のものです。 :2024/01/24(水) 09:30:53.00 ID:AYEYQDPa.net 最近のスマホは馬鹿みたいに解像度高いからな
455 :名前は開発中のものです。 :2024/01/24(水) 09:32:51.19 ID:AYEYQDPa.net 昔Unity公式がAMDのアップスケーリング技術使えば2Kでレンダリングしたやつを4Kで描画できるからいいよって言ってた https://youtu.be/_cKixSjjTjI?si=11QTNBjo9xm3vhAi
456 :名前は開発中のものです。 :2024/01/24(水) 10:03:24.49 ID:VfW00VT7.net >>455 ありがとう Bilinearと教えてくれたFSRで比較してみたけど、fps、CPU使用率、GPU使用率のいずれも大して変わらなかった 今のわいの環境だとGPUは余力が余りまくってるから、そっちを最適化する技術だとしたらCPUバウンドのわいの環境には響かないかも
457 :名前は開発中のものです。 :2024/01/24(水) 10:06:59.85 ID:VfW00VT7.net でもそうかスマホ版だと影響が如実に現れてるかもしれないのか 本命はPC版でスマホ版は公開する予定がないけどついでに検証してみる
458 :名前は開発中のものです。 :2024/01/24(水) 14:52:46.31 ID:AYEYQDPa.net まぁ動画見る限りいろんなゲームでFSR使われてるって事は4Kで全部レンダリングしてるところは少ないからFSRのほうがバイリニアより性能いいならFSRでアップスケーリングしたらいいんじゃね?
459 :名前は開発中のものです。 :2024/01/25(木) 02:00:18.31 ID:MpbjV3ld.net そりゃそうか、問題なさそうだしそうします 今日(昨日)も性能検証の続きみたいなことやってたけど、シェーダ販売元がパフォーマンスについて詳しく見てくれることになりました 買い切りなのに申し訳ないと思いつつ甘えるしかない
460 :名前は開発中のものです。 :2024/01/26(金) 09:25:09.60 ID:zZVqnd62.net 敵AIを200体くらい表示して重くてローポリモデルにしたり解像度下げたりしたけど効果なくて 20体~50体くらいに下げたら軽くなった事があります。CPUがボトルネックになってた(UE勢)
461 :名前は開発中のものです。 :2024/01/26(金) 12:51:19.42 ID:FIRNyUEg.net >>460 そのモデルたちが同じ種類のキャラクターだとUnityではかなり最適化できて無双系のゲームも現実的なんですが 種類が異なるキャラクターを大量に表示するとCPUがボトルネックになってどうしようもなくなるのが現状ですね UEも似た感じなんじゃないでしょうか
462 :名前は開発中のものです。 :2024/01/26(金) 13:23:45.19 ID:FIRNyUEg.net Bilinear レンダリングスケール1倍 https://tadaup.jp/615974d6f.jpg FSR レンダリングスケール1倍 https://tadaup.jp/6159760f0.jpg レンダリングスケール2倍 https://tadaup.jp/615977099.jpg PC版でも1920x1080の等倍と2倍ならメモリ使用量が1GB変わるくらいなのでまあ現実的(?)
463 :名前は開発中のものです。 :2024/01/27(土) 06:32:03.87 ID:JDuT7AmC.net >>461 UEでキャラクターをGPUインスタンスするアセット探したら6万くらいして驚いたわ~
464 :名前は開発中のものです。 :2024/01/27(土) 07:06:33.46 ID:5rs1sE7D.net >>463 なんでだ・・・そんな高価な技術じゃないと思うんだけど Naniteだっけ?あんな変態機能はロハで使えるんだから、GPUインスタンスと同等以上の効果が得られる別の機能が何かしらありそうではあるけど
465 :名前は開発中のものです。 :2024/01/27(土) 09:51:46.96 ID:vBHCc7ny.net UnityはGPUインスタンシングは無料だからな 最近はDOTsインスタンシングだし
466 :名前は開発中のものです。 :2024/01/27(土) 10:20:40.60 ID:5rs1sE7D.net DOTSインスタンシングは静的なオブジェクトの大量描画に関してはGPUインスタンシングの上をいくんだろうけど スキニングが有償アセットでしか対応してない上にパフォーマンスも従来より落ちるのが悲しい 静的なオブジェクトは今のSRP Batcher依存の最適化で十分だからDOTS対応は後回しでいいかな
467 :名前は開発中のものです。 :2024/01/27(土) 13:21:21.90 ID:5rs1sE7D.net 3か月くらい前までメモリ32GBでちょっと足りないかもなあ程度だったのに 今日64GBメモリでメモリ不足になった ゲーム開発以外にも裏でChrome開きまくってたのもあるかもしれないけど、こりゃ半年後には128GBコースか?
468 :名前は開発中のものです。 :2024/01/27(土) 14:33:26.94 ID:5rs1sE7D.net 1.わいが使ってるカスタムシェーダを普通に使って(>>462 )、物理演算などのグラフィック関係以外を全て切ると 約70fps 1フレームあたり約14ms 2.この状態からマテリアルのプロパティを未指定(Texture、色などの指定を初期値)にすると 約75fps 1フレームあたり約13.3ms 3.ここからさらに、シェーダをUniversal Render Pipeline/Litに変更すると 約150fms 1フレームあたり約6.7ms 4.なお1.の状態からシェーダをUniversal Render Pipeline/Litに変更しただけの場合 約120fps 1フレームあたり約8.3ms わいが使ってるカスタムシェーダがもうちょい最適化されてくれると嬉しす・・・!
469 :名前は開発中のものです。 :2024/01/28(日) 05:05:06.59 ID:vZodVcfs.net >>464 6万のアセットってこれね。静的メッシュをインスタンスするのはUE4の時からあります https://youtu.be/LJDpybYgWtA
470 :名前は開発中のものです。 :2024/01/28(日) 05:19:36.46 ID:I69l8S6B.net >>469 あれ?複数種類のモデルやアニメーションに対しても強いなら6万でも普通にほしい Unityで欲しかったな・・・
471 :名前は開発中のものです。 :2024/01/28(日) 16:00:44.34 ID:I69l8S6B.net 今シェーダ開発者さんにパフォーマンスの調査を依頼してるのもそうだけど、専門家に丸投げしたほうが時間効率が良いことは頭では分かってるのに パフォーマンス最適化への未練を断ち切れずにせっかくの日曜日を地味な性能検証で潰す人生
472 :名前は開発中のものです。 :2024/01/28(日) 20:22:21.54 ID:I69l8S6B.net 今日の性能検証延長戦の成果 https://qiita.com/UnagiHuman/items/7db6c75adea0d5862acf 色々な記事を巡り巡って辿り着いたこの記事で、SkinnedMeshRendererをComputeShaderでミラーリングする方法を覚えました!!!! SkinnedMeshRendererなしでボーンを制御したかったはずなのに結局SkinnedMeshRendererありき。ドウシテ・・・
473 :名前は開発中のものです。 :2024/01/29(月) 11:09:41.21 ID:J/zXr0Lj.net > Batch cause > This material has custom buffer override マテリアルのプロパティにComputeBufferを指定するとSRP Batcherが無効化する問題と喧嘩中 この喧嘩に勝てばパフォーマンスが爆上がりする可能性があってちょっとワクワク
474 :名前は開発中のものです。 :2024/01/29(月) 15:55:59.16 ID:J/zXr0Lj.net 従来のSkinnedMeshRendererを殺してBatchRendererGroupベースでモデルを描画することに成功しました ボーンのTransformを操作することでモデルも変形するので、アニメーションも従来のAnimatorで再生できる ただし肝心の本命のパフォーマンスが従来のSkinnedMeshRendererより低い 従来のSkinnedMeshRendererでアニメーション再生中 ≒ BatchRendererGroup描画でアニメーション停止中 画像の左が従来のSkinnedMeshRendererでアニメーション再生 真ん中の山がBatchRendererGroup描画でアニメーション再生 右がBatchRendererGroup描画でアニメーション停止 https://i.imgur.com/lzm2gop.png まだJobSystem+Burstとかで改善できる余地はあるので、まだ希望を捨てずに検証を続けます
475 :名前は開発中のものです。 :2024/01/29(月) 17:11:25.49 ID:ibDcrJvt.net >>474 そういうのはBurst、JobSystemだね
476 :名前は開発中のものです。 :2024/01/29(月) 19:25:41.44 ID:J/zXr0Lj.net >>475 ぶっちゃけネットの海に落ちてるソースコードをいい感じに結合しただけなんだけど 元々のコードが結構最適化されてて詰める余地がなくて割とピンチ そもそも従来のSkinnedMeshRendererはモデルのメッシュに対するRead/Writeが無効でもスキニングできるのに BatchRendererGroupでスキニングするためにはメッシュのvertices/normals/tangentsの取得が避けて通れなくてRead/Writeを有効にせざるを得ない時点で勝てない気がしてきた でもなんか勝ってる人(企業?)もいるっぽいんだよなあ・・・ https://www.infiniteloop.co.jp/tech-blog/2023/07/animatorreplacepart1/
477 :名前は開発中のものです。 :2024/01/29(月) 20:07:32.48 ID:J/zXr0Lj.net やべ、今の実装だとBlendShape対応してなかった 既にパフォーマンス負けてるのにここから更に落ちるのか・・・
478 :名前は開発中のものです。 :2024/01/29(月) 21:23:04.00 ID:24olBCr9.net >>476 なるほど すごいことやってる人多いね
479 :名前は開発中のものです。 :2024/01/30(火) 00:56:34.80 ID:sbR3UD9S.net このDOMOTIONってどうなんだろうか? https://github.com/gamedev-pro/dmotion?tab=readme-ov-file 現在の機能(v0.3.4) 完全にバーストされたランタイム ステートマシンビジュアルエディタ 遷移: Boolean、Int、Enum、End Time コードでクリップを再生するためのシンプルな API (サンプルを参照) 1D ブレンド ツリー アニメーション イベント ルートモーション(デフォルトの動作をオーバーライドする必要がある場合、WriteGroupのサポートあり) オブジェクトアタッチメント 最適化されたスケルトンと最適化されていないスケルトンのサポート ステートマシンのビジュアルデバッグ 計画されている機能 2D ブレンド ツリー (デカルト/フリーフォーム) ステートマシンオーバーライド(別名:アニメーターオーバーライドコントローラー) サブステート IK サポート 複数レイヤー スケルトンマスク
480 :名前は開発中のものです。 :2024/01/30(火) 05:39:07.92 ID:DCr4w4dC.net >>479 あざます! 使ってみた所感 ・URP、Unity.Entities、Unity.Entities.Graphics等の依存してるパッケージの必要なバージョンが良くわからない 特定のパッケージが新しすぎるとそんなクラス無いと怒られるし、それを直すために特定のパッケージのバージョンを落とすと別のクラスが無いと怒られたりする 一部のエラーを握りつぶしてごり押したので不完全な状態 ・ホロライブのMMDモデルだとボーンの数が多すぎて怒られた 原文:Skeleton entity Unity.Entities.Entity has 376 bones. Skinned mesh entity Latios.EntityWith`1<Latios.Kinemation.SkeletonDependent> has 371 bone references. The sum of these exceed the max shader capacity of 682. ・DMotion Proがアセットストアでリリース予定らしいので期待 そしてやはりShaderGraph限定の機能を使っている(Linear Blend Skinning) サンプルに含まれてるシェーダだと結構いいパフォーマンス出たけど、わいのカスタムシェーダに置き換えてどこまで落ちるか・・・ そもそもLinear Blend Skinningをカスタムシェーダに移植できるのか試すぞ!というところで超朗報
481 :名前は開発中のものです。 :2024/01/30(火) 05:58:14.77 ID:DCr4w4dC.net 長老法!!!! わいのカスタムシェーダの開発者さんがシェーダ起因のCPUバウンドの原因を特定してくれてパフォーマンスがどちゃくそ改善されました!!! ビフォー https://i.imgur.com/2a9gyX8.png アフター https://i.imgur.com/TfAT4MG.png パフォーマンスが低かった理由も教えてくれたけどわいだったら絶対気づけなかった、流石プロ 確かUniversal Render Pipeline/Litだと150fpsとかだったから、ここまでくればもう十分まである でも折角なのでウィニングラン(?)として>>474 と>>479 の検証だけはやりきりたい
482 :名前は開発中のものです。 :2024/01/30(火) 06:15:32.02 ID:25oO7Vfp.net 結局シェーダーの違いやったんか トゥーンシェーダ色々あるけど結構違いありそうやな
483 :名前は開発中のものです。 :2024/01/30(火) 08:16:39.24 ID:sbR3UD9S.net >>481 やったじゃん
484 :名前は開発中のものです。 :2024/01/30(火) 08:19:48.69 ID:sbR3UD9S.net てかBone376あるとか書いてあるけどこれって全部でってこと? 1つのモデルで376ってありすぎじゃね?
485 :名前は開発中のものです。 :2024/01/30(火) 10:02:36.71 ID:DCr4w4dC.net 1つのモデルで371だった それをDOTS用に変換すると376になる? スカートとか髪のボーン1つ1つにモデルを変形させるための本物のボーンとは別で 用途が分からないダミーのボーンがあったりするせいか頭数が多い そしてこのボーンの上限超過エラーをコメントアウトして握りつぶしてみたけど表示が破綻してダメだった このライブラリに同梱されてるシェーダでも表示が崩れるので、上限には意味があるらしい Proがリリースされたら上限が上がることを祈りつつこのライブラリは一旦保留・・・
486 :名前は開発中のものです。 :2024/01/30(火) 11:08:42.21 ID:ZUYV+zXn.net Unityって何々と何々は共存出来ないって多すぎじゃないですか
487 :名前は開発中のものです。 :2024/01/30(火) 11:16:32.01 ID:DCr4w4dC.net わかる JobSystem+Burstみたいな値型限定で高速化とかするくらいならいっそC++でコーディングさせてくれとは思う 仮にC++で書けたとして本当に速くなるのかは分らんけど
488 :名前は開発中のものです。 :2024/01/30(火) 11:21:52.49 ID:25oO7Vfp.net UEの最適化も結構大変そうだよ スクエニとか自社の描画システムに切り替えて標準機能ガン無視とかしてる https://www.docswell.com/s/EpicGamesJapan/ZVPELZ-cedec2018-ue4-CharacterPerformance
489 :名前は開発中のものです。 :2024/01/30(火) 12:30:46.72 ID:DCr4w4dC.net やっぱどこのゲームエンジンも低レベルなAPIを酷使して自前で全部実装するのが最強なのか
490 :名前は開発中のものです。 :2024/01/30(火) 15:36:01.77 ID:DCr4w4dC.net BatchRendererGroupでモデルを描画するためには 1. BatchRendererGroupにメッシュとマテリアルを登録する 2. 実際に描画するために他にも色々登録する 必要があるんだけど、2をやらずにメッシュとマテリアルを登録するだけで登録数に比例した負荷が発生してしまう 描画しなくともこの負荷だけで従来のSkinnedMeshRendererにパフォーマンスで負ける メッシュとマテリアルを登録せず描画処理だけ走らせると150fpsくらい出る 登録することで発生する負荷を追求したいのにProfiler君さあ・・・ https://i.imgur.com/gYgr1JN.png
491 :名前は開発中のものです。 :2024/01/30(火) 16:30:46.65 ID:AjZdEr3a.net >>487 結局IRにするなら普通にC#使ったほうがいいと思うわ C++だとしても変わらんし多分Burstのほうが早いまである
492 :名前は開発中のものです。 :2024/01/30(火) 16:32:12.53 ID:AjZdEr3a.net 基本的にボーン数はパフォーマンスに影響あるからできるならいらないボーンは削除したほうがいいと思う
493 :名前は開発中のものです。 :2024/01/30(火) 16:59:29.90 ID:HWvPLj+X.net あくたんと天月(´;ω;`)
494 :名前は開発中のものです。 :2024/01/30(火) 17:21:10.35 ID:DCr4w4dC.net なんかもう>>481 で満足しちゃったので(他力本願) BatchRendererGroupは異なるメッシュやマテリアルの大量描画には向かない可能性があるということで一旦置いておく 300以上のボーンを持つキャラクター30体の不要なボーンを精査するのは時間帯効果が低そうなので優先度低めのタスクとして頭の片隅においておきます・・・
495 :名前は開発中のものです。 :2024/01/30(火) 17:22:01.84 ID:DCr4w4dC.net ちなみに>>481 のパフォーマンスが上がった理由は「マテリアルに対してSetVectorしたフレームではConstantBufferの更新が走るので、SetVectorしたマテリアルの数に比例してパフォーマンスが低下する」とのこと https://note.com/kazuyaraki/n/n71555418dd96 > UnityのSRP Batcherとは何なのか > 一言でいえば、Draw Call毎にConstant Bufferを更新するという非効率な仕組みをやめたということです。これによりレンダリングに関連するCPUコストが削減されます。 毎フレームSetVectorするとSRP Batcherの強みを殺すことになる 勉強になりました
496 :名前は開発中のものです。 :2024/01/30(火) 20:09:55.73 ID:8GAA7lp1.net >>495 なるほどサンクス
497 :名前は開発中のものです。 :2024/01/30(火) 20:21:29.65 ID:DCr4w4dC.net ん?SetVectorがダメならfloatに分割してSetFloatを3、4回走らせればいいだけの気がする・・・ それで許されるのならなんかガバガバだな もしかして今回の犯人がSetVectorだったというだけで、Set系は全部アウトなのかも 要検証
498 :名前は開発中のものです。 :2024/01/30(火) 22:43:19.95 ID:ZUYV+zXn.net シェーダー最適化してもまともなAI組んだらCPUバウンドで動かなくなるから 単調なアニメーションさせることしか出来ないけどそれは大丈夫なのかな
499 :名前は開発中のものです。 :2024/01/31(水) 03:53:20.43 ID:vVhRDcrl.net >>498 AIって他の雑多な処理と同じくC#でコーディングしたもの? 毎フレーム走るC#の処理が多すぎるとCPUバウンドになるってこと? どうなんだろう・・・IL2CPPやJobSystem+Burstとかで処理時間を詰めていけば乗り切れたりするのかな
218 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200
本文 スレッドタイトル 投稿者