薪が出来たので今度は煙を作ります。
あっとその前に(=▽=;
エミッタがゲームに使えるかどうか、ゲームプログラマーをしている弟くんに聞いてみたんですけど、やはりそのままじゃ使えないという回答を頂きました。
でも全然使えないって訳じゃなくて、何らかの形で出力してプログラマーさんの方で解析できるような形にしてくれないとダメだそうです。
CINEMA4Dでモデリングしてデータをほいって渡せば、直ぐゲーム上で動くのかなと思ったらそうじゃないんですね
たぶんこの辺は、保存形式が関係してくると思うんですけど、まだそこまで勉強してないのでこれから分かる事なんだろうな~と思います。
後聞いてて面白かったのが、デザイナーさんの中にはパーティクルを使いすぎて重たいデータを持って来られる方がたま~にいらっしゃるみたいで、その事でプログラマーさんとデザイナーさんとの間でちょいちょいもめたりする事があるらしいです。
デザイナーさんが熱い思いで「こうしたいんだっ!」て思っても、プログラマーさん側から「NO!」って言われたらダメなんですね。
素人の私にはよく分からないゲームの仕事の決まり事・・・なるほどためになりました。
---------------------------------------------------------------
・・・とまあ余談はこれくらいにして、早速煙を作っていきます。
まずシュミレートからエミッタを選択します。
ビューにエミッタが表示されますが、このままのサイズだと大きすぎるので、薪の大きさくらいにエミッタのサイズを縮めます。
属性マネージャのエミッタタブをクリックして、X方向の大きさとY方向の大きさを10cmくらいに変えます。
エミッタのサイズは後からでも変えられるので、とりあえず10cmくらいにしておきます。
エミッタタイプはパーティクルを発射する形です。
種類は”ピラミッド”と”円錐”があります。
水平噴射角度と垂直噴射角度は、エミッタからパーティクルを発射する角度を水平、垂直何度にするかという事を設定します。
これらの機能も煙を飛ばした時に調整出来るので、写真の設定のままでOKです。
エミッタの大きさが小さくなったところで、座標マネージャの角度Pを90°に設定して適用をクリックして薪の下に設置します。
煙の出る位置をイメージする為、アニメーションの再生をクリックして確認してみます。
するとY軸方向にパーティクルの線が飛びますので、それを見ながら移動ツールを使って煙の出る位置を調整します。
これでエミッタの設置は完了です。
----------------------------------------------------------------------------
次に煙を作ります。
平面オブジェクトを選択して、属性マネージャの幅と高さを6cm、幅方向と高さ方向の分割数を1にして”編集可能にする”をクリックします。
そして座標マネージャの角度Pを90°に設定して適用をクリックします。
オブジェクトマネージャの平面オブジェクトのファイル名を”煙”に変えて、エミッタオブジェクトにドラッグして子にします。
これでこのオブジェクトがパーティクルとして発射されるようになります。
しかしこの状態でアニメーションの再生をクリックしてビューを見ても、オブジェクトが飛ぶ様子を確認する事は出来ません。
そこで属性マネージャのパーティクルタブを選択して”エディタにオブジェクトを表示”にチェックをつけます。
これでアニメーションの再生をクリックすると、エミッタからたくさん発射されるパーティクルの煙をエディタビューで確認する事が出来ます。
但し、非常に複雑なオブジェクトや容量の多いオブジェクトを作って飛ばすと、それだけ画像処理に時間がかかりますからパーティクルの速度も遅くなります。
重さが気になる場合はチェックを外して、その時によって表示するかしないか使い分けた方がいいかもしれません。
とりあえずこれで煙オブジェクトをパーティクルとして飛ばす事は出来ました。
他の設定は後からする事にして、早速BP UV Editでオブジェクトを展開し色を塗っていきます。
-------------------------------------------------------------------------------------
ペイントセットアップウィザードをクリックして、エミッタと煙オブジェクト以外のオブジェクトは全て選択しない状態にして”次>>”をクリックしていきます。
ステップ3のマテリアルオプションの設定のところで、テクスチャサイズを変えます。
現在の設定は写真の赤枠の通りになっています。
しかしこのテクスチャサイズのまま設定を終了させて、UV展開された後ブラシで色を塗ろうとすると・・・
このようにピクセルが非常に荒くなってしまいます。
写真のブラシサイズは4に設定していますが、この荒さです。
これだとPhotoshopにファイルを持って行った時にアルファ抜きもしずらいですし、色を塗っても何を塗ってるんだかさっぱり分かりません。
う~んと実は(==;テクスチャのサイズについては、私もまだはっきり分かっていないところがありまして、正直いつも自分が設定しているテクスチャサイズが正しいのか正しくないのかはっきりしません。
。
いつも「きれいに塗れたらOK~。」くらいの感覚でテクスチャのサイズを決めているので、実際ゲーム上で使うデータはどのくらいのサイズにしているのか分かりません。
この辺はもう少し追求して調べる必要があるな~と思っているので、今後ももう少し勉強ていきたいと思います。
ですからこれから作るテクスチャのサイズに関しては曖昧な所があるので、あまり情報を鵜呑みにしないで見てくださいね(=▽=;
さて話は戻りますが、テクスチャの設定で”最小”と”最大”というところがありましたが、ヘルプを読むと最小は一番小さなオブジェクトのテクスチャサイズを決め、最大は一番大きなテクスチャのサイズを決めると書いてあります。
テクスチャのピクセルが荒くなるのは、このサイズが原因だと思うので変えてみたいと思います。
ステップ3に”自動マップサイズの補間”というのがあります。
そのチェックを外すと、テクスチャのサイズの表示が赤枠のように変わります。
ヘルプで確認すると、自動マップサイズの補間は、テクスチャを作った時に異なったオブジェクト間のサイズ関係を計算すると書いてありました。
今回のオブジェクトは平面で非常に簡単な形状なので、この方法でテクスチャを作ってみました。
テクスチャのサイズを決める時に色々数値を変えて、色を塗ってみて、まあまあきれいに見えるサイズを調べていったら”512”くらいが丁度よかったので、幅と高さのパラメータに512と設定して終了をクリックしました。
これでテクスチャのサイズの幅と高さが同じピクセルになったので、最初の設定よりはドットもそんなに荒くないので塗りやすくなりました。
ちなみに設定数値を1024×1024にするとテクスチャのサイズは3MB、3072×3072だと12MBになりました。
後は”テクスチャを保存”を選択して、TIFF形式でファイル名を”煙.tif”にして保存します。
---------------------------------------------------------------------------
次にPhotoshopを開き、煙.tifのファイルを開きます。
ブラシで煙を描き、後は以前小枝を作った時と同じようにアルファチャンネルを作って保存します。
今度はCINEMA4Dに戻り、マテリアル編集にある煙のマテリアルを編集します。
マテリアルの基本タグにあるスペキュラのチェックを外して、アルファにチェックをつけます。
そして、カラーとアルファの”テクスチャ”に”煙1.tif”のファイルを読み込みます。
アルファチャンネルのプレビュに煙のテクスチャが読み込まれたら、背景の色を抜いていきます。
まずは”画像の濃度を使う”のチェックを外します。
そしてマテリアルプレビュの煙の背景(明るいグレー部分)にマウスのポインタを持っていき、Ctrlキーを押したままクリックします。
すると背景のグレーがズボッと抜けます。
抜きが甘い時は、切り抜く色と切り抜く範囲を使って調整します。
これで煙の部分だけ抜く事が出来るはずです。
ここでプレビュを作成をクリックしてどうなるか見てみます。
煙は出ていますがスピードがやたら速くて、オブジェクトの数もまばらなのでまったく煙らしい動きになっていません。
しかも煙が1枚絵のようになっていて光を完全に遮断しているので、影も非常に不自然に見えます。
そこで煙をもっと煙らしく見せる為に、パティキュラの設定とマテリアルの設定を変えていきます。
--------------------------------------------------------------------------------
今の設定のままだと、煙のオブジェクトが照明の光を通さない状態になっているので、アルファチャンネルの”透過”にチェックをつけます。
オブジェクトを透過させると光が通るので、だいぶ煙っぽく見えます。
透過タブを選択したら”透過”のパラメーターを80%に設定します。
するとプレビュのマテリアルがその設定数値の状態で透過します。
次にオブジェクトマネージャのエミッタを選択して、属性マネージャのパーティクルタブを選択します。
このパーティクルの設定数値を変えて煙らしい動きに近づけていきます。
エディタでの出現率は、ビューでエミッタから1秒間に発射されるパーティクルの数を設定する事が出来ます。
レンダリングの出現率はレンダリングで表示されるパーティクルの数です。
これを15に設定します。
噴射開始時間は、パーティクルが発射される時間を設定します。
このパラメータを0Fにします。
噴射終了時間は終了する時間の設定です。
このパラメータを90Fにします。
アニメーションのタイムケージを確認してみると、最初が0F最後が90Fになっています。
つまり90フレームのアニメーションが作れるという事になります。
これを踏まえて寿命のパラメーターを設定します。
寿命は、パーティクルがエミッタから発射されて消えるまでの時間を設定出来ます。
今回の場合は時間をめいっぱい使いたいので90Fに設定します。
その後ろにあるばらつきは、この寿命の長さのばらつきを%で与えるか設定出来ます。
例えば0%の場合、パーティクルは設定した寿命で消えてしまいます。
それ以上になるとばらつきが%の設定値によって段々大きくばらつきます。
次に速度の設定をします。
速度はパーティクルがエミッタから発射されるスピードを設定します。
今回は煙なので、もくもくとゆっくり上る感じにしたいので速度は15cmにしました。
これで1秒間に15cm進むという事になります。
ちなみにパーティクルの速度は、発射される白い線を見ると速度の違いが分かります。
写真左が速度15cmにして発射したもの、そして右が速度を150cmにしたものです。
このように速度が遅くなるとパーティクルの線は短くなり、速くなると長くなります。
ですから”エディタにオブジェクトを表示”の設定をしなくても、線を見ただけでオブジェクトの流れも速さもよく分かります。
最後に最終スケールを2に設定します。
最終スケールは、パーティクルが発射されて消滅するためのスケールを設定します。
発射された時のスケールが1ですので、それ以上の数値になるとパーティクルが大きくなりますし、1以下にするともちろん小さくなります。
これで全ての設定が終わりました。
----------------------------------------------------------------------
プレビューを作成で動きを確認してみると・・・・
焚き火から煙もくもく!
完成~(>▽<)/
「何か煙の形がちゃちいぞ~っ!」と言うお叱りの言葉を頂きそうですが(=▽=;
それはきっと私の煙の描き方が下手なのと、アルファ抜きがあまり上手に抜けていないからかもしれません。
ごめんなさい。
おおおお・・・・(T△T)
YouTubeで海外の動画チュートリアルを見ていると、みなさんCINEMA4D StudioのPyroClusterというシェーダを使って煙を作っている人が多かったです。
下の写真はデモ版のStudioから撮ったものですが、右の白い雲みたいなのがPyroClusterです。
これはCINEMA4D用のプラグインで、これをエミッタに適用して属性マネージャの”設定”で種類を選ぶと、リアルな雲や炎なんかが簡単に出来ます。
写真左はPyroCluster(ボリュームトレーサ)と言って、ヘルプによると効果のレンダリング方法やどこでレンダリングするかをコントロールするものだそうです。
動画ではこれを環境オブジェクトに適用させて使っていました。
試しにこの機能を使って作った煙がこちら↓
このプラグインいいな~・・・。
残念ながらPrimeにはこのプラグインは入っていませんので、こういう機能が欲しい方はそのプラグインが入っているものを買った方がいいかもしれませんね(^^;