質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1555閲覧

Unityで投擲物等の着弾予測円を地形によって変化させたい

TC_kei

総合スコア18

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2020/04/20 10:31

前提・実現したいこと

unityで着弾予測円を地形に沿わせる形で変化させたいです
イメージ説明
イメージ説明
地面と建物と同時に円を表示させたいです

円の表示角度を変えることはできたのですが、地形に沿って画像を表示などで検索してみましたが回答を得られませんでした。
それからどういう単語で検索すればいいか検討がつかないです。

こういう機能でできる、こういう単語で検索すればいい等ありましたら教えていただきたいです。

補足情報(FW/ツールのバージョンなど)

Unity 2019.2.4fi

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

着弾点に球体オブジェクトを置き、「デプスフェイル法」の記事で紹介されているようなテクニックを使って、球が他のオブジェクトと交差している部分だけを塗るというのはどうでしょう。

一例として、球体に下記のマテリアルを使ったところ...

ShaderLab

1Shader "Unlit/ExplosionArea" 2{ 3 Properties 4 { 5 _Color ("Color", Color) = (1.0, 0.0, 0.0, 0.5) 6 } 7 SubShader 8 { 9 Tags {"RenderType"="Opaque" "Queue"="Geometry+1"} 10 11 CGINCLUDE 12 half4 _Color; 13 float4 vert(float4 vertex : POSITION) : SV_POSITION 14 { 15 return UnityObjectToClipPos(vertex); 16 } 17 half4 frag() : SV_Target 18 { 19 return _Color; 20 } 21 ENDCG 22 23 Pass 24 { 25 // 第1パスでは画面上に色は塗らず、ステンシルの構築だけを行う 26 ColorMask 0 27 ZWrite Off 28 29 // 前面・背面両方について処理を行う 30 Cull Off 31 32 // すでに描画された不透明オブジェクト表面のうち、このオブジェクトに 33 // 包まれている領域がステンシル値1になるようにする 34 Stencil 35 { 36 ZFailFront DecrWrap 37 ZFailBack IncrWrap 38 } 39 40 CGPROGRAM 41 #pragma vertex vert 42 #pragma fragment frag 43 ENDCG 44 } 45 Pass 46 { 47 Cull Front 48 ZTest Always 49 ZWrite Off 50 Blend SrcAlpha OneMinusSrcAlpha 51 52 // 第2パスで、ステンシル値が0でない領域にだけ色を塗る 53 Stencil 54 { 55 Ref 0 56 Comp NotEqual 57 } 58 59 CGPROGRAM 60 #pragma vertex vert 61 #pragma fragment frag 62 ENDCG 63 } 64 } 65}

下図のような見え方になりました。

図

投稿2020/04/20 20:06

Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TC_kei

2020/04/20 22:59

ありがとうございます、無事解決しました。 シェーダー使うのが初めてなので理解があまりできてないですが・・・ 頑張って勉強をして理解してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問