ホロライブの二次創作ゲーを作りたい (939レス)
上下前次1-新
461(1): 2024/01/26(金)12:51 ID:FIRNyUEg(1/2) AAS
>>460
そのモデルたちが同じ種類のキャラクターだとUnityではかなり最適化できて無双系のゲームも現実的なんですが
種類が異なるキャラクターを大量に表示するとCPUがボトルネックになってどうしようもなくなるのが現状ですね
UEも似た感じなんじゃないでしょうか
462(1): 2024/01/26(金)13:23 ID:FIRNyUEg(2/2) AAS
Bilinear レンダリングスケール1倍
画像リンク[jpg]:tadaup.jp
FSR レンダリングスケール1倍
画像リンク[jpg]:tadaup.jp
レンダリングスケール2倍
画像リンク[jpg]:tadaup.jp
PC版でも1920x1080の等倍と2倍ならメモリ使用量が1GB変わるくらいなのでまあ現実的(?)
463(1): 2024/01/27(土)06:32 ID:JDuT7AmC(1) AAS
>>461
UEでキャラクターをGPUインスタンスするアセット探したら6万くらいして驚いたわ~
464(1): 2024/01/27(土)07:06 ID:5rs1sE7D(1/4) AAS
>>463
なんでだ・・・そんな高価な技術じゃないと思うんだけど
Naniteだっけ?あんな変態機能はロハで使えるんだから、GPUインスタンスと同等以上の効果が得られる別の機能が何かしらありそうではあるけど
465: 2024/01/27(土)09:51 ID:vBHCc7ny(1) AAS
UnityはGPUインスタンシングは無料だからな
最近はDOTsインスタンシングだし
466: 2024/01/27(土)10:20 ID:5rs1sE7D(2/4) AAS
DOTSインスタンシングは静的なオブジェクトの大量描画に関してはGPUインスタンシングの上をいくんだろうけど
スキニングが有償アセットでしか対応してない上にパフォーマンスも従来より落ちるのが悲しい
静的なオブジェクトは今のSRP Batcher依存の最適化で十分だからDOTS対応は後回しでいいかな
467: 2024/01/27(土)13:21 ID:5rs1sE7D(3/4) AAS
3か月くらい前までメモリ32GBでちょっと足りないかもなあ程度だったのに
今日64GBメモリでメモリ不足になった
ゲーム開発以外にも裏でChrome開きまくってたのもあるかもしれないけど、こりゃ半年後には128GBコースか?
468: 2024/01/27(土)14:33 ID:5rs1sE7D(4/4) AAS
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に変更しただけの場合
省2
469(1): 2024/01/28(日)05:05 ID:vZodVcfs(1) AAS
>>464
6万のアセットってこれね。静的メッシュをインスタンスするのはUE4の時からあります
動画リンク[YouTube]
470: 2024/01/28(日)05:19 ID:I69l8S6B(1/3) AAS
>>469
あれ?複数種類のモデルやアニメーションに対しても強いなら6万でも普通にほしい
Unityで欲しかったな・・・
471: 2024/01/28(日)16:00 ID:I69l8S6B(2/3) AAS
今シェーダ開発者さんにパフォーマンスの調査を依頼してるのもそうだけど、専門家に丸投げしたほうが時間効率が良いことは頭では分かってるのに
パフォーマンス最適化への未練を断ち切れずにせっかくの日曜日を地味な性能検証で潰す人生
472: 2024/01/28(日)20:22 ID:I69l8S6B(3/3) AAS
今日の性能検証延長戦の成果
外部リンク:qiita.com
色々な記事を巡り巡って辿り着いたこの記事で、SkinnedMeshRendererをComputeShaderでミラーリングする方法を覚えました!!!!
SkinnedMeshRendererなしでボーンを制御したかったはずなのに結局SkinnedMeshRendererありき。ドウシテ・・・
473: 2024/01/29(月)11:09 ID:J/zXr0Lj(1/4) AAS
> Batch cause
> This material has custom buffer override
マテリアルのプロパティにComputeBufferを指定するとSRP Batcherが無効化する問題と喧嘩中
この喧嘩に勝てばパフォーマンスが爆上がりする可能性があってちょっとワクワク
474(2): 2024/01/29(月)15:55 ID:J/zXr0Lj(2/4) AAS
従来のSkinnedMeshRendererを殺してBatchRendererGroupベースでモデルを描画することに成功しました
ボーンのTransformを操作することでモデルも変形するので、アニメーションも従来のAnimatorで再生できる
ただし肝心の本命のパフォーマンスが従来のSkinnedMeshRendererより低い
従来のSkinnedMeshRendererでアニメーション再生中 ≒ BatchRendererGroup描画でアニメーション停止中
画像の左が従来のSkinnedMeshRendererでアニメーション再生
真ん中の山がBatchRendererGroup描画でアニメーション再生
右がBatchRendererGroup描画でアニメーション停止
省2
475(1): 2024/01/29(月)17:11 ID:ibDcrJvt(1) AAS
>>474
そういうのはBurst、JobSystemだね
476(1): 2024/01/29(月)19:25 ID:J/zXr0Lj(3/4) AAS
>>475
ぶっちゃけネットの海に落ちてるソースコードをいい感じに結合しただけなんだけど
元々のコードが結構最適化されてて詰める余地がなくて割とピンチ
そもそも従来のSkinnedMeshRendererはモデルのメッシュに対するRead/Writeが無効でもスキニングできるのに
BatchRendererGroupでスキニングするためにはメッシュのvertices/normals/tangentsの取得が避けて通れなくてRead/Writeを有効にせざるを得ない時点で勝てない気がしてきた
でもなんか勝ってる人(企業?)もいるっぽいんだよなあ・・・
外部リンク:www.infiniteloop.co.jp
477: 2024/01/29(月)20:07 ID:J/zXr0Lj(4/4) AAS
やべ、今の実装だとBlendShape対応してなかった
既にパフォーマンス負けてるのにここから更に落ちるのか・・・
478: 2024/01/29(月)21:23 ID:24olBCr9(1) AAS
>>476
なるほど
すごいことやってる人多いね
479(2): 2024/01/30(火)00:56 ID:sbR3UD9S(1/3) AAS
このDOMOTIONってどうなんだろうか?
外部リンク:github.com
現在の機能(v0.3.4)
完全にバーストされたランタイム
ステートマシンビジュアルエディタ
遷移: Boolean、Int、Enum、End Time
コードでクリップを再生するためのシンプルな API (サンプルを参照)
省13
480: 2024/01/30(火)05:39 ID:DCr4w4dC(1/9) AAS
>>479
あざます!
使ってみた所感
・URP、Unity.Entities、Unity.Entities.Graphics等の依存してるパッケージの必要なバージョンが良くわからない
特定のパッケージが新しすぎるとそんなクラス無いと怒られるし、それを直すために特定のパッケージのバージョンを落とすと別のクラスが無いと怒られたりする
一部のエラーを握りつぶしてごり押したので不完全な状態
・ホロライブのMMDモデルだとボーンの数が多すぎて怒られた
省5
481(3): 2024/01/30(火)05:58 ID:DCr4w4dC(2/9) AAS
長老法!!!!
わいのカスタムシェーダの開発者さんがシェーダ起因のCPUバウンドの原因を特定してくれてパフォーマンスがどちゃくそ改善されました!!!
ビフォー
画像リンク[png]:i.imgur.com
アフター
画像リンク[png]:i.imgur.com
パフォーマンスが低かった理由も教えてくれたけどわいだったら絶対気づけなかった、流石プロ
省2
482: 2024/01/30(火)06:15 ID:25oO7Vfp(1/2) AAS
結局シェーダーの違いやったんか
トゥーンシェーダ色々あるけど結構違いありそうやな
483: 2024/01/30(火)08:16 ID:sbR3UD9S(2/3) AAS
>>481
やったじゃん
484: 2024/01/30(火)08:19 ID:sbR3UD9S(3/3) AAS
てかBone376あるとか書いてあるけどこれって全部でってこと?
1つのモデルで376ってありすぎじゃね?
485: 2024/01/30(火)10:02 ID:DCr4w4dC(3/9) AAS
1つのモデルで371だった それをDOTS用に変換すると376になる?
スカートとか髪のボーン1つ1つにモデルを変形させるための本物のボーンとは別で
用途が分からないダミーのボーンがあったりするせいか頭数が多い
そしてこのボーンの上限超過エラーをコメントアウトして握りつぶしてみたけど表示が破綻してダメだった
このライブラリに同梱されてるシェーダでも表示が崩れるので、上限には意味があるらしい
Proがリリースされたら上限が上がることを祈りつつこのライブラリは一旦保留・・・
486: 2024/01/30(火)11:08 ID:ZUYV+zXn(1/2) AAS
Unityって何々と何々は共存出来ないって多すぎじゃないですか
487(1): 2024/01/30(火)11:16 ID:DCr4w4dC(4/9) AAS
わかる JobSystem+Burstみたいな値型限定で高速化とかするくらいならいっそC++でコーディングさせてくれとは思う
仮にC++で書けたとして本当に速くなるのかは分らんけど
488: 2024/01/30(火)11:21 ID:25oO7Vfp(2/2) AAS
UEの最適化も結構大変そうだよ
スクエニとか自社の描画システムに切り替えて標準機能ガン無視とかしてる
外部リンク:www.docswell.com
489: 2024/01/30(火)12:30 ID:DCr4w4dC(5/9) AAS
やっぱどこのゲームエンジンも低レベルなAPIを酷使して自前で全部実装するのが最強なのか
490: 2024/01/30(火)15:36 ID:DCr4w4dC(6/9) AAS
BatchRendererGroupでモデルを描画するためには
1. BatchRendererGroupにメッシュとマテリアルを登録する
2. 実際に描画するために他にも色々登録する
必要があるんだけど、2をやらずにメッシュとマテリアルを登録するだけで登録数に比例した負荷が発生してしまう
描画しなくともこの負荷だけで従来のSkinnedMeshRendererにパフォーマンスで負ける
メッシュとマテリアルを登録せず描画処理だけ走らせると150fpsくらい出る
登録することで発生する負荷を追求したいのにProfiler君さあ・・・
省1
491: 2024/01/30(火)16:30 ID:AjZdEr3a(1/2) AAS
>>487
結局IRにするなら普通にC#使ったほうがいいと思うわ
C++だとしても変わらんし多分Burstのほうが早いまである
492: 2024/01/30(火)16:32 ID:AjZdEr3a(2/2) AAS
基本的にボーン数はパフォーマンスに影響あるからできるならいらないボーンは削除したほうがいいと思う
493: 2024/01/30(火)16:59 ID:HWvPLj+X(1) AAS
あくたんと天月(´;ω;`)
494: 2024/01/30(火)17:21 ID:DCr4w4dC(7/9) AAS
なんかもう>>481で満足しちゃったので(他力本願)
BatchRendererGroupは異なるメッシュやマテリアルの大量描画には向かない可能性があるということで一旦置いておく
300以上のボーンを持つキャラクター30体の不要なボーンを精査するのは時間帯効果が低そうなので優先度低めのタスクとして頭の片隅においておきます・・・
495(1): 2024/01/30(火)17:22 ID:DCr4w4dC(8/9) AAS
ちなみに>>481のパフォーマンスが上がった理由は「マテリアルに対してSetVectorしたフレームではConstantBufferの更新が走るので、SetVectorしたマテリアルの数に比例してパフォーマンスが低下する」とのこと
外部リンク:note.com
> UnityのSRP Batcherとは何なのか
> 一言でいえば、Draw Call毎にConstant Bufferを更新するという非効率な仕組みをやめたということです。これによりレンダリングに関連するCPUコストが削減されます。
毎フレームSetVectorするとSRP Batcherの強みを殺すことになる
勉強になりました
496: 2024/01/30(火)20:09 ID:8GAA7lp1(1) AAS
>>495
なるほどサンクス
497(1): 2024/01/30(火)20:21 ID:DCr4w4dC(9/9) AAS
ん?SetVectorがダメならfloatに分割してSetFloatを3、4回走らせればいいだけの気がする・・・
それで許されるのならなんかガバガバだな
もしかして今回の犯人がSetVectorだったというだけで、Set系は全部アウトなのかも
要検証
498(1): 2024/01/30(火)22:43 ID:ZUYV+zXn(2/2) AAS
シェーダー最適化してもまともなAI組んだらCPUバウンドで動かなくなるから
単調なアニメーションさせることしか出来ないけどそれは大丈夫なのかな
499(1): 2024/01/31(水)03:53 ID:vVhRDcrl(1/6) AAS
>>498
AIって他の雑多な処理と同じくC#でコーディングしたもの?
毎フレーム走るC#の処理が多すぎるとCPUバウンドになるってこと?
どうなんだろう・・・IL2CPPやJobSystem+Burstとかで処理時間を詰めていけば乗り切れたりするのかな
500(1): 2024/01/31(水)04:43 ID:vVhRDcrl(2/6) AAS
>>497
やっぱり
SetFloatで試したけど、毎フレームSetFloatしたら70fpsまで落ちた
このカスタムシェーダ、マテリアルの値を毎フレーム更新しなきゃいけない機能を搭載してるから、その機能を一時的に殺すことで130fpsくらいまで上昇した
今のところわい個人はその機能に用がないからいいけど先方はそういうわけにもいかないだろうから、お礼がてら対策できないか検証してみるか
501: 2024/01/31(水)10:33 ID:T8K+yJgS(1/3) AAS
>>499
Job Burstでかなり早く処理できるよ
502(1): 2024/01/31(水)10:35 ID:T8K+yJgS(2/3) AAS
>>500
Set系が難ありって感じかな
C#スクリプトからその時の状況の変化でイベント発行してシェーダーはその値を使う
状況の変化がない場合はその値をずっと使い続けるみたいなことができればいいと思う
503(1): 2024/01/31(水)11:09 ID:vVhRDcrl(3/6) AAS
>>502
パフォーマンスはかなり最適化されてて、値をキャッシュできるものは元からキャッシュが実装されてた
このシェーダにはPerspectiveRemovalっていう機能があって、カメラとキャラクターの向きや位置関係をリアルタイムでシェーダに教えてあげる必要があるのでキャッシュが使えない
PerspectiveRemovalが何者か正確に理解できてないけど違いはこんな感じ↓
PerspectiveRemovalオフ(そこら辺のシェーダでも通常はこっち)
画像リンク[png]:tadaup.jp
PerspectiveRemovalオン
省1
504: 2024/01/31(水)11:25 ID:3RPE9L0m(1/2) AAS
>>503
顔がこっち向く的な?
505: 2024/01/31(水)11:26 ID:3RPE9L0m(2/2) AAS
その機能削除して普通にIKとかでよくね?
AnimationRiggingはデフォルトでBurst対応してたと思う
506(1): 2024/01/31(水)11:35 ID:vVhRDcrl(4/6) AAS
削除っていうか、このシェーダは購入したもので不定期的にあるアプデの恩恵を受けたい
&いつか自分がこの機能を使いたい時が出てくるかもしれないから、正式に修正してもらったほうが嬉しい
先方もわいが出したパフォーマンス最適化の提案を度々取り入れてくれてるので今回も直したソースコード送り付けてお願いしてみる
507: 2024/01/31(水)11:55 ID:T8K+yJgS(3/3) AAS
>>506
なるほどね
508: 2024/01/31(水)13:45 ID:vVhRDcrl(5/6) AAS
修正できたからウッキウキでお願いの連絡しようとしたら、とっくに修正終わってるからリリース待っててちょと一蹴された、さすがプロ
509(1): 2024/01/31(水)20:48 ID:YUKGGu/H(1/2) AAS
素朴な質問だけどシェーダー何使ってるの?
MMDはどうやってUnityにインポートしてる?MMD4Mecanim?
510: 2024/01/31(水)20:48 ID:YUKGGu/H(2/2) AAS
素朴な質問だけどシェーダー何使ってるの?
MMDはどうやってUnityにインポートしてる?MMD4Mecanim?
511(2): 2024/01/31(水)23:21 ID:vVhRDcrl(6/6) AAS
>>509
シェーダ公式ページ 画像多いので通信量とか注意
外部リンク:github.com
MMD4Mecanimでインポートしてる
正確には同梱されてるpmx2fbx.exeでfbxに変換するだけで、それ以降はMMD4Mecanimの機能は全く使ってない
512: 2024/02/01(木)01:07 ID:950QpuXW(1) AAS
>>511
あーこれ気になってた
売ってるのかこのシェーダー
513(1): 2024/02/01(木)18:34 ID:7MENY3uE(1/3) AAS
今日も今日とて、みみっちぃ最適化をする人生
・(Skinned)MeshRendererにはBoundsというプロパティがある
・Boundsとはモデルを覆う箱の大きさを設定するプロパティで、この箱がカメラの描画範囲にあるかどうかでカリング処理が施される
・Boundsの初期値はモデルの初期ポーズを覆う最低限の大きさしかない
→アニメーションでポーズが変わると初期値の箱から手足がはみ出ることがある
→結果として、本来カメラに映るはずの手足がカリングで非表示にされる
・これの簡単な対策はBoundsをクソでかくすることだが、でかすぎるとカメラにモデルが映ってないのにカリングされなくなる確率が高まる
省4
514: 2024/02/01(木)18:37 ID:7MENY3uE(2/3) AAS
UIの実装を進めてる時よりみみっちぃ最適化に熱を上げてる時のほうがイキイキしてるわいって・・・
515(1): 2024/02/01(木)19:00 ID:V9fYybJx(1) AAS
>>511
さんくす
これって超高価なシェーダーだよね。
デモが重かったのもあって、自分は買わなかった
>>513
手足がはみ出ない程度の大きさにすれば十分だと思うが・・・
516: 2024/02/01(木)19:10 ID:7MENY3uE(3/3) AAS
>>515
本来は企業向けのシェーダだから普通は個人で買わないわな
確かにここまでBoundsの大きさを緻密に制御する必要ないかも・・・まずはそこから見直してみる
517: 2024/02/01(木)20:18 ID:Rt8Mi+6/(1) AAS
トゥーンシェーダー色々あるけど機能が微妙に違っておもろいね
518(1): 2024/02/02(金)01:41 ID:QAswQ9a3(1/6) AAS
AA省
519: 2024/02/02(金)04:20 ID:4QkoN+Q0(1/2) AAS
そんなメチャクチャは拘らないけどアセットとか色んな機能とかは飽きないように程度に吟味する
520: 2024/02/02(金)04:32 ID:QAswQ9a3(2/6) AAS
わいはどのアセットも直感で手出してる感あるなあ
流石にこのシェーダは超高価だったので、直感に加えてホロライブのモデルに対して使われてる導入実績も買いの理由だった
521(1): 2024/02/02(金)13:10 ID:QAswQ9a3(3/6) AAS
シンボリックリンクというショートカットの亜種について学んだ
通常のショートカットはプログラムがショートカット自体を1ファイルとして認識してしまうけど、シンボリックリンクならプログラムがパスとして認識してくれるから
フォルダA/ファイルB.txtがある時にシンボリックリンクCを作成してシンボリックリンクC/ファイルB.txtにアクセスすると
フォルダAのファイルB.txtにアクセスしてくれる
開発環境では結構需要ある機能かも
と思ったけどないかも・・・
522(1): 2024/02/02(金)15:39 ID:dj/qkXQZ(1/2) AAS
>>521
WindowsのシンボリックリンクはUnityエディタで動作しないぞ。俺はジャンクションを使ってる。
外部リンク:note.com
523(1): 2024/02/02(金)15:45 ID:dj/qkXQZ(2/2) AAS
>>518
UIって面白さと無関係だと思うが
2Dゲームならまだしも、ホロライブの3Dゲームなんだよな?
524: 2024/02/02(金)16:03 ID:4QkoN+Q0(2/2) AAS
でも飽きないように適度に拘ったオサレなUIを作って欲しい
525: 2024/02/02(金)16:07 ID:QAswQ9a3(4/6) AAS
>>523
今のわいは細部に囚われすぎてるから
ゲームとして成立させるために必要な部分を進めるべきってことが言いたかった
526: 2024/02/02(金)16:09 ID:QAswQ9a3(5/6) AAS
>>522
まじすか、あれでもジャンクションって相対パスが使えないとかあったような・・・
でも開発環境なら別にいっか
527(1): 2024/02/02(金)16:27 ID:QAswQ9a3(6/6) AAS
今使ってるモニターが一応165Hzのはずなんだけど
60fpsと165fpsの滑らかさの違いがまるで分からん・・・
外部リンク[html]:electro-disco.com
ちなみにこのページだと、キャラクターの速度をメッチャ速くすれば60と120の差が若干分かる程度
そういうもんなんだろうか
528(2): 2024/02/03(土)06:33 ID:FhUQ5OGM(1/10) AAS
リリンク手書き風ってテクスチャに書き込んでるのかそういうシェーダーがあるのかな
529(1): 2024/02/03(土)07:34 ID:6KL4YSaI(1/7) AAS
>>527
普通に60FPSでぬるぬるを感じるって事は30FPSだと足りてなかったってだけだから
それ以上の速さじゃないと分からないので当たり
昔でも音ゲーのハイスピードくらいしか60FPS以上いらないと言われてたね
>>528
手書き風フォント?揺らぎエフェクト?モーショングラフィック?UIの話かな?
530(1): 2024/02/03(土)07:55 ID:FhUQ5OGM(2/10) AAS
>>529
キャラのシェーダーね。雑魚にも適用されてるっぽいし手間考えたらそういうシェーダーかなあ
531(1): 2024/02/03(土)08:02 ID:6KL4YSaI(2/7) AAS
>>530
手書きって鉛筆の光と影の奴かな?
今まさにトゥーンシェーダーでこれ使ってるわ、前無料で配ってたんだよね
外部リンク:assetstore.unity.com
532: 2024/02/03(土)08:40 ID:6KL4YSaI(3/7) AAS
似たようなのだとRealToonの方も多機能でDOTS対応とかもしてたり
Toony Colorsは自作で細かくいじれるとかあるね
533(1): 2024/02/03(土)08:49 ID:FhUQ5OGM(3/10) AAS
>>531
この手のシェーダー使ってるのは間違い無いんだけど、イラストレーターの原画みたいに
ゲーム中ムービー中でもえらく細かく丁寧に書き込まれてるんですよね
外部リンク:relink.granbluefantasy.jp
534(1): 2024/02/03(土)08:56 ID:6KL4YSaI(4/7) AAS
>>533
動画サムネで左側に出るのは原画でその右がコミックシェーダーかな?
535: 2024/02/03(土)09:21 ID:FhUQ5OGM(4/10) AAS
>>534
ムービー中はほぼ原画みたいですね
536: 2024/02/03(土)09:25 ID:FhUQ5OGM(5/10) AAS
Vtuberのモデルって100万くらいかかるらしいですね
537: 2024/02/03(土)09:27 ID:b1z9n3Ql(1/4) AAS
わいが使ってるモデルは公式サイトで配布されてる無料のMMDモデルよ
でも実際のところ1人あたり複数種類の衣装のバリエーションがある中で初期衣装しかMMDモデルが配布されてないので
2,3世代遅れてる感がある悲しみ
538(1): 2024/02/03(土)10:04 ID:L0jPLy0n(1) AAS
>>528
テクスチャにスペキュラとか書き込んでると思うよ
539: 2024/02/03(土)10:12 ID:b1z9n3Ql(2/4) AAS
ここ最近、本筋のゲーム開発進めるより寄り道してるほうが楽しい
他にも実際にゲームで使うかはともかく試してみたいことが色々ある
・マルチプレイモードを実装できるか?
・VR機能とか実装してみたい
・WebGLビルドはexeビルドと比べてどこまで太刀打ちできるのか?
はよ本筋進めろ
540: 2024/02/03(土)10:46 ID:FhUQ5OGM(6/10) AAS
>>538
アルベドじゃなくスペキュラに書き込んでるのか
541(1): 2024/02/03(土)10:52 ID:6KL4YSaI(5/7) AAS
桜井のYoutubeでも絵とか利便性はディレクターならまぁまぁ拘って良いと思う
本筋って個人制作だとやれる範囲少なくてバズるなら配信向けゲー
確実に売れるならパズルや脱出ゲーネタ考えれないとキツイ
上下前次1-新書関写板覧索設栞歴
あと 398 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.017s