[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart9 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
788: 名前は開発中のものです。 [773] 2023/03/08(水) 18:28:40.83 ID:govS8Ndx(2/2) AAS
 どなたかお願い致します。 
 タービュランスアルゴリズムで一つのオブジェクトの位置を更新することは出来ています。 
  
 しかし恐らく、普通にコンピュートシェーダーをアタッチしたオブジェクトをインスタンシングしても、同一バッファを参照しているのでうまくいかないのだと思います。 
  
 今回パーティクルなどと違って、オーディオソースコンポーネントやコライダーコンポーネントを各インスタンスにアタッチしたい理由があるので、そういう場合どうしたらいいでしょうか。 
789(1): 名前は開発中のものです。 [sage] 2023/03/08(水) 20:59:51.57 ID:4XLSy7o4(2/2) AAS
 同一じゃなくせばよくね? 
790: 名前は開発中のものです。 [] 2023/03/09(木) 06:56:32.63 ID:+1Nsy7Re(1) AAS
 下の階層に作るとか? 
791: 名前は開発中のものです。 [773] 2023/03/09(木) 08:05:08.99 ID:EDXv2CV7(1) AAS
 >>789 
 今回、そのオブジェクトを10000個くらいインスタンスさせたいのです。 
  
 なのでスクリプトでバッファを10000個作る必要があります。 
 それはStart関数でforループで出来るにしても、同一のコンピュートシェーダーでは、その内部に書くバッファ名が異なってくると思うので、単純には行かなそうです。 
 バッファのバッファ、というかバッファの配列みたいな書き方をして、一つのコンピュートシェーダーで済ますなどできるのでしょうか? 
792: 名前は開発中のものです。 [sage] 2023/03/09(木) 08:35:14.34 ID:pIGQKGhM(1/2) AAS
 書いてみりゃ分かるんじゃね? 
793(1): 名前は開発中のものです。 [] 2023/03/09(木) 13:42:45.38 ID:H9MU9+y9(1) AAS
 シーン移動時にパネルを暗くしてフェードアウトするようにしたいです。 
 (画面奥) ボタン<Sprite RenderのOrder in Layerを1にした画像<パネル (画面手前) 
 の順にしたいのですがボタン<パネル<Order in Layerを1にした画像の順になってしまいます。 
 パネルを最前面にするにはどうすればいいですか? 
794(1): 名前は開発中のものです。 [sage] 2023/03/09(木) 15:25:29.03 ID:cqkvSUGR(1/3) AAS
 Particle Systemについての質問です 
 動画リンク[YouTube]
 
 
  
 今作っているエフェクトです。4つのParticle Systemから出来ています 
 外側の煙は時間経過でゆっくり透明になりますが、内側の濃いエフェクトはパッと表示されてパッと消えています 
 内側のエフェクトもゆっくり透明になるように、Particle System の color over lifetime で外側と同様の設定をしていますが反映されません。 
 内側はFBXのメッシュがついていて、シェーダーが設定されています。 
  
 内側のエフェクトのシェーダー 
 画像リンク
 
 
  
 シェーダーの設定のせいで Particle System の color over lifetime が反映されないのでしょうか? 
 シェーダーとParticle Systemについて詳しい方いたら教えてください 
795: 名前は開発中のものです。 [sage] 2023/03/09(木) 17:30:33.97 ID:pIGQKGhM(2/2) AAS
 >>793 
 それパネルじゃないとあかんのん? 
796: 名前は開発中のものです。 [sage] 2023/03/09(木) 18:01:41.57 ID:Pcxi72FO(1/5) AAS
 >>794 
 これなんだっけ 
 覚えてないから元ファイル触りたい所なんだけど 
 lifetimeというかパーティクルの寿命はparticle system側の値で、多分Shaderに寿命の値が渡ってない 
 Vertex streamだっけ 
 そこにlifetimeっての入れられなかった? 
  
 そのlifetimeをShader graph側でUVノードとかで対応するチャンネルから値を取り出すみたいな 
 すごい謎システムだった気がする 
797: 名前は開発中のものです。 [sage] 2023/03/09(木) 18:32:14.87 ID:Pcxi72FO(2/5) AAS
 思い出した 
 Particle SystemのRendererの中にあるCustom Vertex Streamにチェックを入れるとなんか謎のPosition, Normal, Color, UVとかいうのが現れると思うけど 
 これを無視して角の方にある+アイコンからlifetimeの中のAgePercentを追加する 
 するとTEXCOORD0.zっていう場所に割りあてられたAgePercentが表に追加されるんだけど 
 この表にある全ての値はShader Graphなどに渡すことができるようになる 
  
 で、Shader Graphではその値をUVノードのUV0のBチャンネル(XYZW, RGBAに対応してる)から取り出せるので、splitとかで分離してパーティクルごとに0から1で寿命が動いていく値が受け取れるのでgradientノードとSample Gradientノードで寿命に対応するAlphaを作ってShader Graphの1番最後のところでmultiply 
798: 名前は開発中のものです。 [sage] 2023/03/09(木) 18:33:34.09 ID:Pcxi72FO(3/5) AAS
 ちなみにTEXCOORDはシェーダーが外部から値を受け取るためのボーナス空間みたいなもので 
 TEXCOORD0のu,vにあたるr,g(またはx,y)以外は外部から好きな値詰め込める 
799: 名前は開発中のものです。 [sage] 2023/03/09(木) 18:40:07.24 ID:Pcxi72FO(4/5) AAS
 まあこんな細かく言わなくてもそんだけParticle SystemとShader Graph組み合わせて使えてるなら「Particle SystemのRendererのとこにあるCustom Vertex Streamにチェック入れるとTEXCOORD(UV)に好きな値詰め込める」ってだけ覚えとけば大丈夫 
800(1): 名前は開発中のものです。 [sage] 2023/03/09(木) 19:52:21.46 ID:cqkvSUGR(2/3) AAS
 外部リンク:drive.google.com 
 一応グーグルドライブにプロジェクトを丸ごとアップしてしました 
  
 解説動画を見ながらそっくり作っただけなので、Particle SystemとShader Graphについては全く理解してませんでした 
  
 動画リンク[YouTube]
 
 
 解説動画ではそのままエフェクトが完成していたので、特別な事はしなくてもすぐ終わると思ってたんですよね 
 でも話を聞いたら、Particle Systemに追加項目を入れてShader Graphをまた大工事する感じで今の自分には手に負えない感じです 
 とにかくやり方は教えてもらったので、すぐ理解できませんが完成させたいと思っています 
 詳しい情報を有難うございます 
801: 名前は開発中のものです。 [sage] 2023/03/09(木) 21:22:40.49 ID:Pcxi72FO(5/5) AAS
 撮ってきた 
 動画リンク[YouTube]
 
 
  
 直した状態のものと、直す前の状態のプレファブが詰まったunitypackage 
 外部リンク:cdn.discordapp.com 
802: 名前は開発中のものです。 [sage] 2023/03/09(木) 23:06:49.79 ID:cqkvSUGR(3/3) AAS
 ご親切にありがとうございます! 
 今動画を確認しながら、そっくり真似をしていて最後綺麗にグラデーションで透明になりました! 
 おかげ様でシェーダーは完成しましたが、作ってもらったunitypackageも保存しておきました 
 わざわざ動画まで作って教えてもらえるとは思いませんでした。 
 途方にくれてたので質問してよかったです。本当に感謝します!! 
803(1): 名前は開発中のものです。 [] 2023/03/09(木) 23:18:11.97 ID:NOO+nIAE(1) AAS
 >>800 
 GoogleドライブにはUnityプロジェクト入れない方がいいらしい 
 プロジェクトのファイルの完全性を保証してくれないという話だ 
 そういう話を見た 
804: 名前は開発中のものです。 [sage] 2023/03/10(金) 11:22:41.42 ID:v+0QHCrH(1) AAS
 >>803 
 わかりました 
 ファイルが破損してしまったりするんでしょうかね 
 Googleドライブに入れるのはやめておきます 
805: 名前は開発中のものです。 [sage] 2023/03/10(金) 11:52:09.70 ID:OkB4FvGW(1/2) AAS
 キャラクターごとに専用のテクスチャを用意するのが一般的だと思うんですが 
 そうではなく金属や肌や布といった素材テクスチャを用意して 
 これを別々のキャラクターのパーツに指定して共有させるのって何か問題がありますか 
 キャラごとに専用のテクスチャ持たせるよりVRAMは節約できそうですが 
806(1): 名前は開発中のものです。 [sage] 2023/03/10(金) 12:02:45.85 ID:ioQPLob0(1/2) AAS
 使い回しは多キャラの基本 
807: 名前は開発中のものです。 [sage] 2023/03/10(金) 12:09:02.76 ID:OkB4FvGW(2/2) AAS
 >>806 
 使い回したいですよね 
 らくちんですし 
808(1): 名前は開発中のものです。 [] 2023/03/10(金) 12:38:52.62 ID:HHLKr0P7(1/2) AAS
 scriptable objectについて質問です。 
 メモリの消費を抑えられるのが利点だと書かれている解説を読みました。 
 例えばscriptable objectに100体のモンスターの情報を持たせたとして、10体しか使わなかったとき、残り90体分の情報はメモリにとって邪魔になるはずです。こういった状況では必要な分だけscriptable objectから取り出してリストに格納、そのリストを参照するという実装をするのでしょうか? 
 なにか良い方法があったら教えてください。 
 よろしくお願いします。 
809: 名前は開発中のものです。 [] 2023/03/10(金) 13:12:21.28 ID:HHLKr0P7(2/2) AAS
 >>808 
 とりあえず手を動かしてコード書いてみたらわかりました。scriptable objectについて勘違いしていました。こいつ単体では1つのオブジェクトの情報を持つ。複数の異なるオブジェクトをまとめたいならリストの型にする感じでした。 
810(2): 名前は開発中のものです。 [773] 2023/03/10(金) 18:30:13.25 ID:ZXiD9+Jj(1/2) AAS
 質問を変えます。 
  
 ・普通にインデックスのある10000個の位置情報を格納したバッファを一つ作って、C#でオブジェクトの個々の自分のインスタンスのインデックスを取得できる関数があれば、それを毎フレーム探して位置更新できると思うのですが、そのような関数はありますでしょうか。 
811: 773 [] 2023/03/10(金) 18:30:54.36 ID:ZXiD9+Jj(2/2) AAS
 >>773773(2): 名前は開発中のものです。 [] 2023/03/08(水) 08:35:17.65 ID:govS8Ndx(1/2) AAS
 質問失礼します。 
  
 URP,win11 
  
 やりたいこととしては、オーディオソースコンポーネントとコライダーコンポーネントをつけた空のオブジェクトを、大量インスタンシング&コンピュートシェーダーでタービュランス運動させる、というものです。 
  
 その際コンピュートシェーダは書けたのですが、バッファは一つのオブジェクトの位置情報を格納しているので、そのままインスタンシングしても失敗します。 
  
 どうしてもオーディオソースコンポーネントとコライダーコンポーネントをアタッチしたオブジェクトをインスタンスさせたいのですが、どういったやり方が考えられるでしょうか。  
です。 
812: 名前は開発中のものです。 [] 2023/03/10(金) 19:37:58.64 ID:zC1f7mF+(1) AAS
 >>810 
 多分ここではみんなわからないのでStackOverflowとかで聞いてみてはどうでしょうか? 
上下前次1-新書関写板覧索設栞歴
あと 190 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.016s