[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart10 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
897
(2): 名前は開発中のものです。 [] 2023/07/20(木) 11:55:26.71 ID:9aWAACKn(1/2) AAS
ちゃす 磁力について質問です
磁石を実現するアセットはあるようですが、デフォルトの機能でなんとか出来ないでしょうか?
やるとしたら、force系にマイナスの力をかけるというものです

雑な磁力でもいいのですがね
898: 名前は開発中のものです。 [sage] 2023/07/20(木) 17:42:26.96 ID:a+LXU3ni(1) AAS
>>897
高校物理の範囲で書けるんじゃないか?
899: 名前は開発中のものです。 [] 2023/07/20(木) 17:52:55.86 ID:9aWAACKn(2/2) AAS
やってないんですよ
擬似的になんとか
900: 名前は開発中のものです。 [] 2023/07/20(木) 17:58:22.84 ID:M5EOneZ2(1) AAS
風立ちぬのときは禁煙してたのにタバコ吸いたくなって劇場帰りに買ったぐらい美味そうだったのに
イマイキは何だ!あまりに不味そうで禁煙しちまうとこだったぜ!m9( ´ー`)y-~~ドーン!
901: 名前は開発中のものです。 [] 2023/07/21(金) 10:32:19.22 ID:Z+zOC6cO(1/3) AAS
>>897
ただ引き合うだけで良いのか、極性を考慮した動きが欲しいのかでも話が変わってきますが
とりあえず前者と仮定してお話しますね。
2DならPointEffectorがありますが、3Dならスクリプトが必須だと思います。

引きあうオブジェクトは両方Rigidbody(物理演算コンポーネント)とColliderを持ってる前提として、やることは大きく分けて4つです。

1.近くのオブジェクトのColliderを検出する
外部リンク[html]:docs.unity3d.com

2.検出したCollider(引き寄せる相手)がRigidbodyを持っているかチェックする
外部リンク[html]:docs.unity3d.com

3.引き合う力を計算する

4.AddForceで双方のRigidbodyに3で計算した力を加える
外部リンク[html]:docs.unity3d.com

これらの処理をFixedUpdateの中に記述すればOKです。
902
(1): 名前は開発中のものです。 [] 2023/07/21(金) 10:36:36.04 ID:Z+zOC6cO(2/3) AAS
3の手順だけちょっと複雑になるのでコード置いておきます。(動作確認はしてないのでミスってたらごめんなさい)
------------------------------------------------
以下はメンバ変数定義に書いてください。

//引き寄せる力
public float intensity = 10;
//引き寄せる最大距離
public float maxDistance = 10;
//自分のRigidbody
public Rigidbody myRigidbody;
------------------------------------------------
以下はFixedUpdateの中の3の処理(otherRigidbodyは2で取得した相手のRigidbodyが代入されてるものとする)

//座標の差分を計算
Vector3 diff = (otherRigidbody.position - myRigidbody.position);
//距離を計算
float distance = diff.magnitude;
//距離を0~1の範囲で正規化する(ついでに0~1の範囲外を捨てる)
float normalizedDistance = Mathf.Clamp01(distance / maxDistance);
//近くの時力が強くなるようにしたいので反転する
normalizedDistance = 1.0f - normalizedDistance;
//磁力は距離の二乗に反比例して減衰する
normalizedDistance = normalizedDistance * normalizedDistance;
//力の向きを計算
Vector3 direction = diff.normalized;
//力を計算する(向き*大きさ)
Vector3 force = direction * (normalizedDistance * intensity);

どうしても無理ってなったらまた聞いてください。
903
(1): 名前は開発中のものです。 [] 2023/07/21(金) 21:45:29.27 ID:/7F3Df0u(1) AAS
コライダーについて質問です
2dなのですが、コライダーをプレイ時に表示させるにはどうしたらいいでしょうか
window→analyse→physics debugger内にオンオフの項目がないようです、、、

>>902
ありがとうございます。
pointeffecterってまさにドンピシャの機能ですね
904
(1): 名前は開発中のものです。 [] 2023/07/21(金) 22:55:32.59 ID:Z+zOC6cO(3/3) AAS
>>903
残念ながらPhysicsDebugger自体は3D専用の機能ですが、
ProjectSettings->Physics2D->GernalSettings->Gizmosの項目で
AllCollidersを有効にすればGameViewのGizmoでも常に表示されるようになります。
905
(1): 名前は開発中のものです。 [] 2023/07/22(土) 06:12:54.80 ID:aFQJKiG2(1) AAS
質問です。
当たり判定の入れ方はAdd Component→Mesh Collider→Convex=凸をチェック
かと思うのですが、アセットによっては物体に対して正しく物理判定が
行われてない物があるので、自分で当たり判定を設定したいのですが、
どうすればいいでしょうか?

宜しくお願いします
906
(1): 名前は開発中のものです。 [] 2023/07/22(土) 14:18:50.58 ID:1sQon9ud(1/3) AAS
ScreenToWorldPointを使いたいのですが、Camera.main.ScreenToWorldPointとしてこの関数にアクセスすることが出来ると思います。これはデフォルトのカメラにアクセスしているようです。
ScreenToWorldPointを自分で追加したカメラから使えるでしょうか?

自分で追加したカメラのタグを「MainCamera」に設定し、カメラのx座標を少しずらしました
そして
print(Camera.main.transform.positon);
としてみましたが、位置は0,0,-10となります

これはデフォルトのカメラが読み込まれているようです
907
(1): 名前は開発中のものです。 [] 2023/07/22(土) 14:25:26.83 ID:1sQon9ud(2/3) AAS
>>904
どうも
allways show colliders可と思いますが、ここをオンにしても変わらないですね 諦めます(*´ω`*)
908
(1): 名前は開発中のものです。 [] 2023/07/22(土) 16:29:33.45 ID:wG4fwfG7(1/2) AAS
シーン内で使うRect Toolという
オブジェクトを線で囲って四隅が青の丸になってて
オブジェクトを移動できるやつなんですが
なぜか線の部分がオレンジになってしまいました。
元に戻すにはどうしたらいいでしょうか
909
(1): 名前は開発中のものです。 [] 2023/07/22(土) 18:52:01.07 ID:CjzYDVTE(1/4) AAS
>>907
そもそもGameViewのGizmoが無効になってるとかじゃないでしょうか?
GameViewの右上のGizmosボタンを押してみてください。
910: 名前は開発中のものです。 [] 2023/07/22(土) 18:54:42.64 ID:1sQon9ud(3/3) AAS
>>909
ありがとうございます
ほんまや(*´ω`*)見切れてました
911
(1): 名前は開発中のものです。 [] 2023/07/22(土) 19:04:51.45 ID:CjzYDVTE(2/4) AAS
>>905
「正しく物理判定が行われてない」というのは
「形状が一致度が不十分なので任意の形状の判定を付けたい」という意味でしょうか?
それともそもそもすり抜けてしまう等の症状ですか?
912: 名前は開発中のものです。 [] 2023/07/22(土) 19:14:00.41 ID:CjzYDVTE(3/4) AAS
>>906
シーン上にMainCameraタグが付いたオブジェクトが複数存在してしまっているのが根本的な原因かと思いますので、
デフォルトのカメラからタグを外してしまうのが早いかと思います。

それが出来ない事情があるのであれば、SerializeFieldを使用してInspectorで参照を設定するか
サービスロケーターパターン等を活用してカメラの情報をスクリプトに渡して下さい。
913
(1): 名前は開発中のものです。 [] 2023/07/22(土) 19:22:43.05 ID:CjzYDVTE(4/4) AAS
>>908
画面見ないことにはなんとも言えませんが、選択中のアウトライン表示とはまた違う感じでしょうか?
もしそれのことであればシーンビュー右上のGizmoメニューからSelection Outlineをオフにすれば無くなります。
914: 名前は開発中のものです。 [] 2023/07/22(土) 23:59:59.93 ID:wG4fwfG7(2/2) AAS
>>913
これでした
ありがとうございます
915: 名前は開発中のものです。 [] 2023/07/23(日) 12:15:47.92 ID:o5q3w3gH(1) AAS
3dプロジェクトは作成されるまで時間かかりますね。
916: 名前は開発中のものです。 [] 2023/07/23(日) 13:38:21.13 ID:a1F9qNXb(1/3) AAS
クルマのインジェクタ故障で交換修理に8万ほどかかるんですが、これは普通は保険でなんとかするものなんですか?自賠責保険とかいうやつ?
917
(1): 名前は開発中のものです。 [] 2023/07/23(日) 20:08:28.65 ID:L7J/1zBC(1) AAS
>>911
例えば洋式のトイレだと、この方法だと便座に対して平行・平に物理が引かれているんです。
元来水が流れる穴までは空洞になっているに。
なので「形状が一致度が不十分」って事なので、自分で物理判定を作れたら作りたいなと。
918
(1): 名前は開発中のものです。 [] 2023/07/23(日) 20:43:32.70 ID:EjVBE2B/(1/2) AAS
>>917
物理演算で"動かない側"が複雑な形状なのであれば単にConvexのチェックを外すだけで大丈夫です。

物理演算で動くものを複雑な衝突形状にしたいのであれば凸形状を組み合わせて近似する必要があります。
外部のモデリングツールかProBuilderで凸形状を複数作って組み合わせることで実現できるかと思います。
919
(1): 名前は開発中のものです。 [sage] 2023/07/23(日) 20:51:42.72 ID:a1F9qNXb(2/3) AAS
質問ですけど
スキン変形でアニメーションしている物体に、同じスキン変形を追従するメッシュコライダーを付加できますか
それとも球やカプセルで変形を近似しますか
920
(1): 名前は開発中のものです。 [] 2023/07/23(日) 21:09:45.11 ID:EjVBE2B/(2/2) AAS
>>919
基本はボーンにカプセルを付けて近似することになります。

一応MeshRenderer.BakeMeshを使う方法(重いので非推奨)や、
ComputeShaderとMeshAPIを使用する方法もあります。
外部リンク:qiita.com
921: 名前は開発中のものです。 [sage] 2023/07/23(日) 21:21:01.36 ID:a1F9qNXb(3/3) AAS
>>920
なるほど~
ありがとうございました
1-
あと 81 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.014s