[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart8 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
257(2): 2022/10/10(月)12:03 ID:4mBGhhe7(2/5) AAS
>>256
Twitterリンク:jimetters
この画像のような、オブジェクト下の黒い部分を消したいです
Twitterリンク:5chan_nel (5ch newer account)
258: 2022/10/10(月)12:37 ID:/HZVSZm5(1/4) AAS
>>251
ありがとうございます
これそのままURP/Lit/ForwardLitにするだけだとだと自分の解釈がおかしいのか上手くいかなかったのですが
調べてるうちにAlpha to Maskなどを使って期待してたものの30%くらいの見た目になったので満足しました!
259(1): 2022/10/10(月)12:43 ID:/HZVSZm5(2/4) AAS
>>257
マテリアルに付したシェーダーをUnlitにしましょう
Litという種類のシェーダーを使用していると、内部ではライトと法線との内積を使ってわざわざ陰を描いてくれるのですが
Unlitの場合その部分が必要ないため丸々スキップされることで、陰は落ちなくなります
260(1): 2022/10/10(月)13:00 ID:4mBGhhe7(3/5) AAS
>>259
アドバイスありがとうございます。
Emissionを使いたいのでUlitにはできません。
ShaderGraphだけでは実現は厳しそうですね...残念
261(2): 2022/10/10(月)13:29 ID:/HZVSZm5(3/4) AAS
すみません上の方まで読んでませんでした申し訳ない
黒い部分を消すということは陰全体を消すということになるのですが
そういう意味でLitでUnlitの見た目を出したいという事でしたらCustomFunctionノードでHLSLを用いてシーンのディレクショナルライトから色などの情報を持ってくることは出来ます
GetMainLight()です
インプット無しで色だけ取り出したい場合以下のように書きます
void GetLightColor_float(out float3 LightColor){
#ifdef SHADERGRAPG_PREVIEW
LightColor = float3(1,1,1);
#else
Light light = GetMainLight();
LightColor = light.color;
#endif
}
262: 2022/10/10(月)13:34 ID:4mBGhhe7(4/5) AAS
>>261
ありがとうございます!!参考にさせていただきます。
がああ...やっぱりHLSLを勉強することになるのか。ハードル高そうだけど頑張ります。
263(1): 2022/10/10(月)13:42 ID:/HZVSZm5(4/4) AAS
もし>>261のような話でないのなら申し訳ない
ただこちらのような>>257球の下半分が黒くなっているのは上半分のグラデーションと同じことをしてこうなっているため
下半分のみをどうにかするということは難しいと思われます
一応陰を描くための-1~1の内積の結果を0~1にして調整すればおそらくいい感じに調整しやすいのではないかと思います
外部リンク[mp4]:dl.dropboxusercontent.com
264(1): (´・ω・`) ◆BiCc.cb1JVB4 2022/10/10(月)13:51 ID:9Dxmt0lx(1/3) AAS
>>260
UnlitでEmissionさせたいのよね(´・ω・`)
create->shaderGraph->URP->LitShaderGraph
でLitシェーダー作って(´・ω・`)
Vertexの所にNormalってのがあるからそこから線引っ張って新しくNormal Vecter作成
SpaceをTangentにしたら多分それっぽい事できる(´・ω・`)
後光の反射とか発光見るにはUnityでlighting設定変えなくちゃならんからこれは自分で調べてちょ(´・ω・`)
265: 2022/10/10(月)17:28 ID:4mBGhhe7(5/5) AAS
>>264
>>263
ありがとうございます!
結局、黒色のほうがコントラストがはっきりしていていいなという結論になったので使いませんでしたが、教えてもらったことはどこかで使えそうなので覚えておきます!
一応、できたものもあげておきます。
Twitterリンク:jimetters
Twitterリンク:5chan_nel (5ch newer account)
266: 2022/10/10(月)17:54 ID:c5dh7Ys/(1) AAS
すみません
rayとraycastの違いはなんでしょうか?
raycastを使えばrayは必要ないように思うのですが。
267: (´・ω・`) ◆BiCc.cb1JVB4 2022/10/10(月)18:17 ID:9Dxmt0lx(2/3) AAS
上記の奴、再現したら全く検討違いだった(´・ω・`)
完全に光源の影響失くすにはlightにカリングマスク当てるしかないかも(´・ω・`)
268: (´・ω・`) ◆BiCc.cb1JVB4 2022/10/10(月)18:26 ID:9Dxmt0lx(3/3) AAS
光源のオブジェクトのLight->Rendering->CulingMaskで光らせたいオブジェクトのレイヤーを外せばできる(´・ω・`)
試しにdefaultを外してみて
ライトが消えたように見えるはず
269: 2022/10/10(月)18:58 ID:a0pR3SKj(1) AAS
unity超初心者です。
vrm形式で吐き出したモデルをいざ動かすと、頭の動き(首を傾げても曲がらない)を追従しないのですが、何が原因と考えられるでしょうか…
手元で首が曲がらないとかで調べたら、整体の紹介記事ばかり出てきて詰んでますお願いします。
270: 2022/10/11(火)05:40 ID:DlwNNU6i(1) AAS
整体記事は草
vrm書き出しに使ったツール名+関節 おかしい とかでぐぐってくれ
VRM使うという事はVRChat関連?
271: 2022/10/11(火)10:05 ID:KW5vQeqF(1/7) AAS
raycastの可視化は出来ないのでしょうか?
bool isHitToGround()
{
RaycastHit2D raycastHit = Physics2D.Raycast(transform.position, Vector2.down, 0.2f, groundLayer);
return raycastHit.collider !=null;
}
0.1fという長さだと検知せず、1fとすると検知します。
オリジンからレイが出ていると思うので、こういう結果なのでしょう。
しかし、drawrayで可視化する場合は0.1fで十分な長さのレイになります。
実際に出ている光線の長さがわからないのですが、どうしたらいいものでしょうか。
Debug.DrawRay(
transform.position, Vector2.down + new Vector2(0, -0.1f),Color.red,0.1f/*長さ*/
);
272: 2022/10/11(火)10:16 ID:KW5vQeqF(2/7) AAS
自己解決
0.5fでおそらくはキャラの半径の長さとなるようです。
273: 2022/10/11(火)11:11 ID:3C7yoYb1(1/2) AAS
パラメータの意味合ってる?
外部リンク[html]:docs.unity3d.com
colorの後のdurationというのはラインの長さではなく表示時間
短いほど更新が早くなるけどエディタが重くなる
0.5fというのは単にコライダーの大きさが1なんだと思われる
274: 2022/10/11(火)11:37 ID:KW5vQeqF(3/7) AAS
drawrayの場合は第二引数で長さを指定するようです。
raycastの場合は第三引数で長さを指定するようです。
そこは理解しています。
275(2): 2022/10/11(火)11:45 ID:3C7yoYb1(2/2) AAS
Vector2.down + new Vector2(0, -0.1f)
Vector2.downは定数で(0,-1)
だから結果は(0,-1.1f)
真下に長さ-1.1fのラインが出る
276: 2022/10/11(火)12:12 ID:2JPt9lFw(1) AAS
ごめん長さ1.1のラインね
意図してるのはこうじゃないの
var distance =0.1f
Vector2.down * distance
277(1): 野球マン 2022/10/11(火)12:35 ID:e+HL0Coi(1/2) AAS
やっぱりDebugのrayって直感的じゃないよね
俺も苦手だから滅多に使わない
ワンタッチで当たり判定を表示してくれればいいのに
278(1): 2022/10/11(火)13:30 ID:KW5vQeqF(4/7) AAS
>>277
うん 何故この程度の機能がないのか不思議
>>275
なるほど
ただ、長さは1.1みたいですけど、原点から発射されることを考えると1.6fくらいにしないとだめみたいです
可視化できれば良いんですがね、、、
279: 2022/10/11(火)14:01 ID:KW5vQeqF(5/7) AAS
>>278
?あれ 謎なことを書いてしまった
280: 2022/10/11(火)14:09 ID:KW5vQeqF(6/7) AAS
raycastのlengthの1fというのが何基準なのかわかりますか?
drawrayと同じ値にすると反応しなくなる
drarayの場合は0.1fで十分な長さだけども
281: 2022/10/11(火)14:42 ID:NZSCknk1(1/2) AAS
レイキャストもデバッグドローも長さの1はワールドのtransformの1の長さで基準は同じ。
結果が違うなら、それぞれへの値の渡し方か、結果を確認する方法の方にミスがあるんだと思う。
空のシーンでも作ってその部分だけ記述してテストしてみたら?
282: 2022/10/11(火)17:51 ID:KW5vQeqF(7/7) AAS
回答ありがとうございます。
同じに設定したつもりですが、どこか違うでしょうか?
drawrayではこのようにレイが出ていますが、raycastではヒットはしません。raycastの長さを1fにするとヒットします。
画像リンク
外部リンク:ideone.com
void FixedUpdate()
{
if (isHitToGround())
{
Debug.Log("hit");
}
Debug.DrawRay(transform.position, Vector2.down - new Vector2(0,0.1f),Color.white, 1f);
}
bool isHitToGround()
{//接地判定用のレイキャスト
RaycastHit2D raycastHit = Physics2D.Raycast(transform.position , Vector2.down, 0.1f, groundLayer);
return raycastHit.collider != null;
}
283(1): 2022/10/11(火)19:10 ID:NZSCknk1(2/2) AAS
>>275も書いてくれてるけど、デバッグドローの2つめの引数を
Vector2.down * 0.1f
にすればいいかと。
0.1はレイキャストの3つめの引数と同じ値です。
というか、できれば原点、方向、長さは変数にして、レイキャストに入れた値をデバッグドローにも使う、というようにしたほうがいいですよ。
284(1): 2022/10/11(火)19:10 ID:SAEwODDn(1/2) AAS
DOTweenって軽いらしいんだけどどこまで使っていいのかな?
2Dのゲームのダメージ数の表示、敵や味方のノックバック、攻撃モーション、攻撃エフェクトなんかの頻発する処理に使っても大丈夫なレベル?
全部自前で用意するのはしんどい…
285(1): 野球マン 2022/10/11(火)19:16 ID:e+HL0Coi(2/2) AAS
>>284
俺よく使ってるけど経験上そのうちノックバックと攻撃モーションでは
使いにくいな
というのも通常キャラには動作させるスクリプトを付けて手動で動かしてると
思うのだがそれにdotweenの動作をごちゃ混ぜにするとややこしくなる
俺がdotweenを使って楽なのはdotweenの動作で独立してる部分
286: 2022/10/11(火)23:49 ID:es9cxcgc(1) AAS
シェーダーのプロパティの値をスクリプトで変更したいんですけど、どうやったら出来ますか?(´・ω・`)
上下前次1-新書関写板覧索設栞歴
あと 716 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.012s