🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

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

Unity3D

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

Unity

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

Q&A

解決済

4回答

9093閲覧

Unityでなるべく厳密な空気抵抗を実現する

porunnga

総合スコア5

C#

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

Unity3D

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

Unity

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

1グッド

0クリップ

投稿2019/09/14 14:24

空気抵抗を考えた落下シミュレーションをしたい

Unity上で空気抵抗を実装しようとすると、 Rigidbody.dragを変更すると思いますが、

これでは例えば平たい板のようなものが、ヒラヒラ落ちてくるような挙動にはなりません。
これはそもそもdragは空気抵抗ではなくて、その場に止まろうとする力だからだと思いますが、
空気抵抗をよりうまく計算させる方法などありますでしょうか?

この動画の蝶が落ちてくる様子(01:40)が、私が実装したい空気抵抗に似ていると思います。

動画内で 面積が大きいほど羽の受ける空気抵抗が大きくなるようにすると説明していますが、まさしくこれなのではないかと考えています。しかしUnity初心者かつ初歩力学しかわからないため、どうすればわからず質問させていただきました。
どうかよろしくお願いします。

退会済みユーザー👍を押しています

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

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

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

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

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

guest

回答4

0

すでに二つの回答が出ていますが、質問者様の正確なイメージも知りたいところです。

まず、平たい板のようなものが、ヒラヒラ落ちてくるような挙動 とありますが、これは自発的な運動をしない物体を想定します。
「ひらひら」 というと、「舞い落ちる」「揺れ動く」ように、上下だけでなく左右の運動も想定されます。
ひらひらを飛ばそう

本気でやろうとすると流体シミュレーションなるかと思いますが笑、簡易的にやるのであれば ikadzuchiさん のご回答をお借りして
・「揚力」+「物体の回転制御」
・「揚力」+「ランダムな方向転換」
などを考えました。
※ 揚力だけだと「ひらひら」はしなそうです。

一方、動画(01:40)の様子が、私が実装したい空気抵抗に似ている とありますが、この動画の場合は自発的に運動しています。
この場合、揚力はそこまで支配的にはならないかと思いますので、上記の方法より Zuishinさん の回答が参考になるかなと思います。
こちらも本気でやろうとすると流体シミュレーションなるかと思いますが笑
蝶型はばたき飛翔の力学的解析

最後に私の回答ですが、もし物理的に正確である必要がないのであればシミュレーションにこだわらず
・パーリンノイズや周期関数を利用してスクリプトを自作し「それっぽい動き」に調整する
・パーティクルを活用する
などが手取り早いかと思います。

パーリンノイズ
パーティクルで紙ふぶきを散らす

投稿2019/09/25 09:24

編集2019/09/25 09:24
Kapustin

総合スコア1186

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

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

ikadzuchi

2019/09/25 15:21

(初期状態が垂直か水平以外なら)揚力は横向きに働き、かつ物体を回転させるので、ひらひらすると思っています。
Zuishin

2019/09/25 15:29

無視した方がいいですよ。下手に論破したらこの後ずっと絡まれます。
guest

0

ベストアンサー

[Unity] 空気抵抗を独自に実装してみる

断面積を計算するのが面倒ですが、これができると板のような平べったい物体がひらひら舞い落ちる挙動などが実現できます。

ということなので、これが求めるものかと。

投稿2019/09/24 00:00

Zuishin

総合スコア28669

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

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

Zuishin

2019/09/24 00:18

リンク先の表現で「形が同じなら軽い物ほど遅く落ちる」という意味の表現がありますが、これは空気抵抗というより浮力と言う方が適当だと思います。大気中、水中などでは、密度によって上への力が生まれます。 ガリレオのピサの斜塔の実験が有名ですが、これは創作だという説があります。 http://bcl.sci.yamaguchi-u.ac.jp/~jun/home/170629-galilei/
ikadzuchi

2019/09/24 15:39

断面積に比例させるだけでは落ちる速度は変わりますがひらひら舞い落ちる挙動は再現できないと思います。 また、軽いものほど遅く落ちるのは人間スケールなら浮力より空気抵抗の方が支配的ではないかと感覚的には思うのですが、何か根拠となるデータなどありますか?
Zuishin

2019/09/24 15:53

形が同じなら空気抵抗は同じはずですが、違いますか? あなたの回答は揚力ということですが、揚力を求めるのに必要なパラメータを数え上げてください。どうなっていますか? また、断面積に比例させるだけというのはどこから来た言葉ですか?
Zuishin

2019/09/24 16:01

それと、断面積というのはリンク先の言葉ですが、数式から見るにこれは物体の代表面積のことです。ベルヌーイの定理を説明するのによく断面図が描かれますから、おそらくここからのイメージに引きずられているのでしょう。
ikadzuchi

2019/09/24 16:50

> 形が同じなら空気抵抗は同じはずですが、違いますか? そう思いますが、それが何でしょうか。 > 揚力を求めるのに必要なパラメータを数え上げてください。どうなっていますか? 密度、流速、翼の面積と、迎え角の関数になっている揚力係数ですかね。どうと言われても何を答えればよいのでしょう。 > 断面積に比例させるだけというのはどこから来た言葉ですか? 「空気抵抗を独自に実装してみる」のページの式の変数らしきものを拾ったものです…が相対速度を見落としていました。ただ、ひらひら舞い落ちる挙動は再現できないことに変わりはありません。 > 断面積というのはリンク先の言葉ですが、数式から見るにこれは物体の代表面積のことです。 断面積と呼ぶのが正しいかどうかは分かりませんが、とりあえず指しているものは分かるので大丈夫です。 浮力だとする根拠となるデータは無いということでよろしいですか?
Zuishin

2019/09/24 17:19

え? なぜわからないのかわからないんですが。 どういうことでしょう? 揚力に翼の面積が必要ということですよね? この面積のことですよ? 断面積というのは恐らく書き間違いだろうと書いていますが。 そこまでわかったのなら、おしいところでしたね。 それと密度。なぜ密度が出てくるかもよく考えてください。 それとリンク先の最後の数式をよく見てください。 見たことがありませんか? そうですか。 これでひらひら落ちないなら、あなたの回答も間違っていることになりますが。
Zuishin

2019/09/24 17:21 編集

はい、やり直し。もう一度パラメーターとにらめっこしてくださいね。 そうすればデータがあるのがおぼろげにでもわかるかもしれません。
ikadzuchi

2019/09/25 00:41

なんであなたは私の疑問に答えず私はあなたの無節操に出すクイズに答えなきゃならないんでしょう。 > なぜわからないのかわからないんですが。 なにに対しての発言でしょうか。 > 揚力に翼の面積が~おしいところでしたね。 ひょっとして当該サイトの「断面積」は「翼の面積」を指すというお考えでしょうか。進行方向からの投影面積だと思いますが。 > それと密度。なぜ密度が出てくるかもよく考えてください。 なぜ? > リンク先の最後の数式を~あなたの回答も間違っていることになりますが。 揚力と空気抵抗の抗力が同じものだと言いたいのですか? > そうすればデータがあるのがおぼろげにでもわかるかもしれません。 データとは何のことですか?
Zuishin

2019/09/25 00:43

> また、軽いものほど遅く落ちるのは人間スケールなら浮力より空気抵抗の方が支配的ではないかと感覚的には思うのですが、何か根拠となるデータなどありますか? むしろこれを否定するデータがありますか? 人間サイズというのがどこから出てきたのか知りませんが(ヒラヒラ落ちる板とか蝶の話だったはず)、人間サイズで人間形の風船と人間が空気中で落下して同じ速度で落ちるはずがないと感覚的に思うんですが。 これらが同じ速度で落ちるデータがあるなら示してください。 なんなら空気抵抗が風船より大きくなるよう、ハンデとして人間は傘を持っても結構です。
Zuishin

2019/09/25 00:44

という話についてこられないようなので、質問することで勉強してもらっています。
ikadzuchi

2019/09/25 01:33

> 否定するデータがありますか? ありません。あれば出すところです。 > 人間サイズ 人間スケールと言ったのは(人間ちょうどと取られても問題ないですが)人間とかけ離れた1mmや1km、1gや1ktでない程度の話です。 > 同じ速度で落ちるはずがない そうですね。それが(風船よりもっと重い場合含み)浮力か抗力・揚力かが私の疑問です。 > という話についてこられないようなので そりゃあなたが私の話を理解せずに頭の中だけで考えた話にはついて行きようがありません。
Zuishin

2019/09/25 01:34

いや、空気中で浮力が働くというのは常識です。私の頭の中だけで考えた話ではありません。
Zuishin

2019/09/25 01:40

人間スケールの蝶の話などだれもしていないと思いますが、なぜそのスケールに限定したのかも意味がわかりません。
ikadzuchi

2019/09/25 02:20

質問は無いようなのでこれで終わります。
Zuishin

2019/09/25 02:22

ようやく理解できましたか。結構なことです。
ikadzuchi

2019/09/25 15:25 編集

あなたに何を言っても無駄だと理解できましたので低評価しました。
ikadzuchi

2019/09/26 15:32

浮力と空気抵抗のどちらが支配的か調べました。 こちら http://skomo.o.oo7.jp/f28/hp28_62.htm の式と こちら https://keisan.casio.jp/exec/user/1367383425 の計算機でよく一致したのでたぶん正しいと思います。 例えば直径10cmの球で浮力(~0.65g重)が空気抵抗に勝る速度はだいたい1.6m/s以下の低速域でした。 予想よりは少々浮力が強かったですが、玉を落とす実験など考えた場合やはり空気抵抗が支配的と言ってよいでしょう。少なくとも空気抵抗というより浮力と言う方が適当ということはありません。
Zuishin

2019/09/26 15:49

「形が同じ二つの物が落下する時に軽い物ほど遅く落ちる理由」が空気抵抗だと? どういう計算でそうなったんですか?
Zuishin

2019/09/26 15:49

> リンク先の表現で「形が同じなら軽い物ほど遅く落ちる」という意味の表現がありますが、これは空気抵抗というより浮力と言う方が適当だと思います。
Zuishin

2019/09/26 15:57

例えば比重が空気と同じ物は落ちてこないわけですが、これは浮力でなく空気抵抗と言った方がいいんですか? 空気より軽いものは上に向かって動くので下向きの抗力が働くわけですが、これはどう説明するんですか?
Zuishin

2019/09/26 16:34

返事がないようですが、「あなたが私にいくら言っても無駄な理由」が、あなたの理解力の低さに起因するものだとわかったなら、それは私に責任のあることではないので、低評価を解除してください。
ikadzuchi

2019/09/27 14:34

> どういう計算でそうなったんですか? 理由として考えられる浮力と空気抵抗による力を比較し、広い範囲で空気抵抗が支配的とわかりました。 > 例えば比重が空気と同じ物は落ちてこない それはもちろん浮力です。低速域では浮力だと言っています。 > 空気より軽いものは上に向かって動くので下向きの抗力が働く そうですね。何を説明すればよいのですか? > 返事がないようですが 頭の異常な方との会話は疲れるので、返答のためには精神状態の良い時を選ぶ必要があり時間が掛かります。 また、今朝返答を打っていたところ操作ミスにより消えたので今になりました。 > あなたの理解力の低さに起因するものだとわかったなら あなたに何を言っても無駄なのは、 あなたは自分が理解できない内容にはまともに返答しないにも関わらず、新たに論点をずらして私に無駄な質問を続けるためです。 どうあっても私が返事しないことにしたいんでしょうね。
Zuishin

2019/09/27 14:49

へえ。ご苦労様です。
porunnga

2019/10/02 14:32 編集

返信が遅れてしまい申し訳ありません。 色々挑戦してみましたが、上記ホームページを通して頑張ってみようと思います。 ありがとうございます。議論ありがとうございます。
guest

0

ググったら
木の葉の落下運動の2次元シミュレーション
というのを見つけました.

この中の式(2)と(3)だけを2次元で実装したみたら,とりあえず,下図の軌跡が得られました.
(随分と簡単な式なので厳密ではないのでしょうけど,適当に乱数で揺らぎを与えたりすればそれらしくなるかも…?)

イメージ説明

投稿2019/09/26 01:56

fana

総合スコア11985

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

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

0

dragは空気抵抗ではなくて、その場に止まろうとする力だからだと思います

空気抵抗はその場に止まろうとする力だと思いますが…
たぶん必要なのは揚力ですね。
揚力の計算方法について検索してみると、どうも揚力(や抗力)は実験的に求められているようです。
こちらなど参考になりそうです。
http://edom18.hateblo.jp/entry/2019/01/14/172956


航空力学が思いのほか理解が難しく手間取ってしまいましたが揚力(と抗力)でひらひらするシミュレーションが書けました。
flat plate airfoilだかthin airfoilだかのあたりの情報を適当に混ぜて、
・揚力はsin(2θ) (失速での落ち込みは無視)
・抗力はcos(2θ)+1
・圧力中心は失速前は前端から1/4、失速後は中央
という計算にしています。適当なわりにはなかなかそれらしい結果が出たと思います。
https://codepen.io/ikadzuchi/pen/KKKPgEq
揚力ひらひら1 揚力ひらひら2

投稿2019/09/23 23:45

編集2019/10/03 14:14
ikadzuchi

総合スコア3047

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

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

Zuishin

2019/09/25 15:27

同じ理由で低評価しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問