3Dエフェクト:風

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Ma

3Dエフェクト:風

#1

投稿記事 by Ma » 15年前

ども、いつもお世話になっています。

今回、3Dでの強風のエフェクトの表現方法のアイディアをいただけたらと思っております。

環境は、
 VC++2008 Express
 DXライブラリ 3.0f
 Windows 7 (念のため)
です。
現在持っている(画像、動画系)素材作成用ソフトは、
 PhotoShop CS4
 メタセコイア
 SAI
ぐらいです。

スモークみたいな表現ができたら最強ですが、おそらく簡単にはできないのである程度立体感がなくてもOKです。
今のところ、3Dオブジェクトにテクスチャをずらして描画することで、一直線に進む風はなんとなく表現できています。(3.0fからの新機能)
(2Dアニメ的風の表現)

問題は、曲がる風(どこかの角を曲がって通るような強風。)、の表現です。
3Dオブジェクトにアニメーションをアタッチするとできるかなって思っていますが、ほかに割と簡単な方法がありますか?

もしアニメーションがベストなら、アニメーション作成は未経験なのでおすすめのアニメーション作成ソフトがありましたら勧めてください。

Justy

Re:3Dエフェクト:風

#2

投稿記事 by Justy » 15年前

 どこで吹く風とか、その強さとか、ずっと吹いている風なのかとかシチュエーション合わせて
演出プランを考える必要がありますが、風そのものを表示するより風を感じさせるエフェクト
というのはどうでしょう?


 例えば曲がる角が通路だったら

・ 風の音と周囲の物体との接触音(カメラの向きに合わせて音量やパンポットを調整)
・ (瞬間的な風なら)曲がり角の奥の窓からこちら側の窓の順番で時間差をつけて窓がかたかた揺らす
・ キャラの髪や服がなびく、キャラが風の向きに押される
・ 曲がり角に貼ってあるポスターに風の圧力がかかっているようなアニメーションをつける(或いは飛んでいく)
・ 強風が吹いた瞬間に近くの蝋燭の火がなびき、消える
・ 細かい複数のゴミが曲がり角で一度壁にぶつかり、そのまま道沿いにこちらに転がってくる

とか。



> 3Dオブジェクトにテクスチャをずらして描画することで、一直線に進む風はなんとなく表現できています

 ピンとこないのですが、これってマンガ的表現のスピード線を UVアニメーションでつけている、
ということですか?



> アニメーション作成

 テストしてみないとDXライブラリで使えるかどうかわかりませんが、Blenderとかどうでしょう?

blender.org - Home
http://www.blender.org/

Blender.jp - Blender Japanese Website
http://blender.jp/

Ma

Re:3Dエフェクト:風

#3

投稿記事 by Ma » 15年前

>・ 風の音と周囲の物体との接触音(カメラの向きに合わせて音量やパンポットを調整)
あぁ、まだやってませんでした!
とてもありがたいアイディアありがとうございます。

ところで、多数の音を3D空間で表現する場合は、やはり音が出る場所をリストか何かに登録、
視点からの距離で音の再生を判断、その後顔の向きでパンの指定、という形でしょうか。


>ピンとこないのですが、これってマンガ的表現のスピード線を UVアニメーションでつけている、
ということですか?

そういうことです。


>・ 細かい複数のゴミが曲がり角で一度壁にぶつかり、そのまま道沿いにこちらに転がってくる
これは、やってありました。

ほかのアドバイスもありがとうございます。
火はなさそうですが、ポスターとか窓は検討してみます!
キャラについては、キャラクター描くのが面倒でファーストパーソン視点にしてあるため避けます。

どうやら、アニメーションを回避できそうなので、まずはアニメなしでたいおうして必要が出たら
またBlenderに目を通してみます。

ありがとうございました。

Justy

Re:3Dエフェクト:風

#4

投稿記事 by Justy » 15年前


> やはり音が出る場所をリストか何かに登録、
> 視点からの距離で音の再生を判断、その後顔の向きでパンの指定、という形でしょうか

 リストはそもそもサウンドを鳴らすためのシステム側の方で「現在再生中の音リスト」を
持っているはずなので、その中に3Dサウンドにするかどうかのフラグを持たせ、
3Dサウンドにするなら音源座標など(*1)の必要な情報も一緒にもたせてあげればいいかと思います。

 次にリスナー位置からの距離(*2)で調整するのは基本は音量(*3)です。
 勿論計算の結果音量が0だった場合、再生を止めることもあるでしょうが、
それは何の音かで止めないこともあります。
 例えば川のせせらぎとかの環境音系は音量0なら止めて、反対に舞踏会の音楽とかは
(キャラが部屋を出て聞こえなくなっても)そのまま再生し続ける、とか。
 どちらかに統一してもいいですが、そのあたりは仕様と相談です。

 で、パンポットは音源とリスナー位置と向きの具合で決めます。
 リスナーの位置は大抵はカメラの位置と向きですが、FPSならカメラも顔も事実上同じなので
それでも問題はないと思います。



*1 通常はグローバルパラメータを見にいくとしても、必要に応じて個別に減衰率とか最小音量とかを
設定・調整できるようにしておくと後々便利かも。

*2 基本は距離で判定しますが、音源とリスナーとの間に遮蔽物がある場合や音源がある程度の
大きさを持っている場合は少し工夫が必要です。

*3 ドップラー効果とかも入れることがあります。

Ma

Re:3Dエフェクト:風

#5

投稿記事 by Ma » 15年前

>リストはそもそもサウンドを鳴らすためのシステム側の方で「現在再生中の音リスト」を 持っているはずなので
DXライブラリなら、サウンドハンドルをリストしていく事になりますよね。

>遮蔽物がある場合や音源がある程度の 大きさを持っている場合
うー、たしかに、面倒そうですね。
幸い今はこの心配はありませんでした。(遮蔽物がないので)

>*3 ドップラー効果とかも入れることがあります。
まさに物理のオンパレードですね。
ついに物理スキルをプログラミングに応用できます^^


また問題が起きたらよろしくお願いします。

ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る