作成者別アーカイブ: saitottammas

Unity Treeで桜を作れるか

標準

CG Cookieのコースで学んでUnity Treeを使いこなせるかチャレンジ

(紹介動画-Free)

https://cgcookie.com/lesson/introduction-44/

(ここから先は、自分用メモとして)

だいたいのセットは、スタンダードアセットの環境系(Environment)にそろっているので、そのパッケージをインポートしておく。

木全体:Seed(適当に)。Area Spread(枝葉の広がり範囲)。オフセット(地面下に伸ばしたいとき)

LODクオリティ(初期設定0.8程度 あげればクオリティハイ、下げればローポリ)

幹や枝の設定:曲がり具合、直径の減衰具合、太陽に向く具合、根本の広がりなど。

途中で枝が折れた表現も可能(マテリアルもそれ用のをつけることが出来る)。

:どれぐらいの位置にどれぐらいの分量の設定可能。

出来上がったツリーは、自動的に(?)プレファブ設定されているので、テライン上にブラシで配置することが可能。

あるいは、少ない花の絵のみで、こういうのも綺麗→木蓮とかコブシの木に最適かも。

 

風の影響範囲

create→3Dオブジェクト→Wind Zone

木の幹、枝、葉っぱへと風の影響を設定していく。

 

Unity Particle

標準

参考にさせていただいたスライド
http://sssslide.com/speakerdeck.com/unitydojo/21unitydao-chang-pateikurujiang-zuo

1.パーティクルシステムのモジュール

1)基本

Main

初期速度、大きさ、色など。調整時はLoopで行うとよい。
カーブデータはプリセットライブラリとして保存できる。ただし、元のアニメーションカーブとの互換性はない。
移動距離などで消すにはCollisionを使う工夫もあり(Lifetime Lossを1にすると衝突時に消える)

Emission

時間に依存して放出するTimeと距離に依存して放出するDistanceのオプションあり。距離に応じる場合は、Simulation SpaceをWorldにする。

2)移動

Shape

Skinned Mesh Rendererを使うことで、キャラクター全体からパーティクル放出可能。
Start Speedをマイナスにすると、その形状の内向きにパーティクルを出せる。

Velocity Over Lifetime

Limit Velocity over Lifetime

原則させたい場合有効。Dampenは減速率。

Inherit Velocity

MainモジュールがWorldスペースのとき有効。オブジェクト自体の速度をパーティクルに反映させるときに使う。(裾を引く光など?)

Force Over Lifetime

徐々に早くなるミサイルなど。

External Forces

風の範囲設定(Wind Zone)を使ったときに使う

3)色

Color Over Lifetime

時間によって色を変える場合。アルファとカラー別々にMax8つまで補完登録可能。

Color By Speed

4)大きさ

Size Over Lifetime

Size By Speed

5)回転

Rotation Over Lifetime

Rotation By Speed

6)イベント

Noise

Collision

Triggers

Sub Emitters

Birth(誕生時)、Collision(衝突時)、Death(消失時)の3つに、どのタイミングでサブパーティクルを出現させるか設定可能。

7)アニメーション・描画

Texture Sheet Animation

テクスチャのコマ画像などを順番に読み取り、変更させるスプライトアニメーションとして設定したい場合。升目の数は、2のべき乗。

Lights

Trails

Custom Data

Renderer

2.打ち上げ花火考察

(0)舞台

太陽(Directional Light)を回転上向きにして沈める(たとえば、回転X:-15、Y:180など)

(1)打ち上げ

①Particle Systemを新規作成【HANABI】。リセットしたのち回転X:-90に設定。
Mainパネル Start Lifetime 3, Start Speed 20, Gravitiy 0.5
Emissionパネル Rate:0.5
Shapeパネル Angle:5
Rendererパネル MaterialをParticle Firework

これで2秒に1回打ち上げられる(Emission レイトが0.5)

②炎の軌跡作成用に
Sub EmittersのBirth追加【UCHIAGE】
Sub Emitter のマテリアルをParticle Fireworkに変更。
EmissionをRate over Timeを0にし、Rate over Distanveを30に設定

追跡する炎はStart Life time 1, Start Speed -1, Start Size0.4などに設定。
ShapeはConeにする。
これで、後ろに拡散するイメージが完成。

③Color over Lifetimeを使って、色が白→黄→オレンジと変化で設定

④Size over Lifetimeを使って、なだらかに凸カーブで最後がゼロになる曲線カーブを選択

(2)爆発(拡散する火花と煙)

①最初の【HANABI】パーティクルに、Sub EmissionをDeathのものを2つ追加【HIBANA】【KEMURI】

【HIBANA】Start Lifetimeを2つの定数の間(Random between 2 constants)に設定。0.8と1.0。
Start Speed 40-60。Gravity Modifier 3。
Emissionパネル Bursts追加。Min, Maxとも300に。
Limit Velocity Over Lifetimeを有効にし、Speedカーブを減速するものに変更。Dampen 0.1に。

ひとまず、ここまでで、飛び散る火花イメージ。

【KEMURI】Start Size 40。
3D Start Rotation Z軸 -180 180
Start Color のアルファ値 30
Emission Bursts。Min,Maxとも1に。
フェードインフェードアウト表現のため、Color Over Lifetimeのアルファ値を0→255→0 と変化。
Size over Lifetime 50%スタートで徐々に大きくなるカーブに。
Inherit Particle Color(元のパーティクルの色継承)をオフにし、独自にColor over Lifetimeで色をつける。

【HIBANA】を華やかに。Trailsパネルを有効にする。
Lifetime 0.6-1.0。Die with Particlesをオフに。Width over Trailを0.5。
Color over Trailでアルファ値を100に。

(3)消失(煌き)

①爆発後に起きる煌きを作成。【HIBANA】のSub Emitters→Deathに【KIRAMEKI】追加。
Start Lifetime 0.6-1。
Start Size 1-3。
Emission BurstsをMin,Maxとも1。
Velocity over Lifetimeを (-5,-5,-5),(5,5,5)でランダムに(風にやや流される感じが出る)
Color over Lifetimeでアルファを0,1,0,1,0,1,0とすばやく変化させて、点滅するイメージを出す。

 

Motion トレスのための手振れ補正(スタビライザ)Blenderで

標準

参考ビデオチュートリアル

 

1.モーションクリップエディタにする

2.Tツールシェルフ Trackタブ Clip→Prefetchを押す

Tracking Settings のMotion を LocRotに変更。MatchはPrevious frame にする。

Normalizeにもチェック。

3.Nプロパティ  2D Stabilization にチェック。

Marker Display のSearchをオン

4.クリップの一番最後(あるいは一番前)にタイムラインを設定し、MarkerをAdd(追加)する。

5.Tツールシェルフ一番下、Trackの前に(あるいは後ろに)ボタンをクリック。
Nプロパティ 2D Stabilizationに、画面のマーカーを選んで追加する(trackが追加される)

AutoScaleにもチェック。Stabilize Rotation にもtrackを追加。

6.Nプロパティにある、Display Stabilization にチェックをいれると手振れ補正した画面に変わる。

7.出力のために、ノードエディターウィンドウに変更する。

コンポジットにし、Use NodeとBack Dropをチェック。右Nプロパティに BackDrop設定があるので、Fitを押すか、Zoomを変更して画面でみやすく配置する。

インプット→Video Clipに変えて、Viewerにも出力。

間に、Stibilizeを検索して追加。クリップを選択する。

ムービーと同じサイズに出力するよう、サイズ調整し、H.264形式 mp4で出力。

 

 

Unity上でリアルタイムにダンスをさせたい!MMD変換でもいい。New

標準

2017/5/3 バージョン

こちらsimplestarさんの記事「UnityでMMDのPMXを表情モーフ付きでダンスするFBXとしてアセット利用する話」(2016-11-27)を参考に

1. Stereoarts Homepage さんのページでMMD4Mecanim (Beta) の最新版を入手

 

現在バージョン→2017/04/23 Unity 5.6 / 2017.1 への対応, その他不具合修正

MMD4Mecanim_Beta_20170423.zip

チュートリアル(基本編・応用編)がついているのでそれを参照する

解凍フォルダ中に、 MMD4Mecanim.unitypackage というUnity用パッケージがあるので、それをUnityプロジェクトにインポートする。

利用制限→WebPlayerでの利用不可。

 

2.MMDモデルの準備

 

Tda式アペンドミクさんが好きなので →作者様ブログ http://u16hp.blog134.fc2.com/

→配布場所(読んでね.txtを読むこと) https://bowlroll.net/file/4576

モデルフォルダの中身を、assetsフォルダに置く。(上の、MMD4Mecanimフォルダと同じ場所)

自動的に、(モデル名).MMD4Mecanimファイルが出来上がっている

それをクリックし、規約に同意する。

 

3.モーションを準備

上記MMD4Mecanimフォルダにも歩きVMDは用意されている。

かっこいいダンスないかなーと、男性舞踊 花鳥風月http://sdrv.ms/14OJMjb
(o2さん作 動画http://www.nicovideo.jp/watch/sm8397088)

こちらをダウンロード。

VMDファイルをMMD4Mevanimパネルの指定場所にドラッグ

 

4.変換作業

MMD4Mecanim設定パネルのprocessボタンをクリックし、しばらく待つと、プレファブ形式のミクさんが出来ている。

シーンにドラッグして、設定を初期化する。

rigは、generateのままでないとVMDの再現性が低い。(humanoidリグだと不足設定などが出てくる)

5.Animator Controllerの作成

新規Animator Controllerを作成し、それをミクさんにアタッチして開く。

Animatorウィンドウが開くので、先ほど変換したMikuさんモデル内のモーションデータ(.vmd)をドラッグ。

このコントローラをインスペクタ上で指定する

 

6.オーディオソースの貼り付け

 

オーディオクリップは、wav形式が無難AVIUtlなどのソフトで変換可能。

(音声あり。注意。NHKクリエイティブライブラリーより 初音ミクの音楽 (C)DropBox「流星DANCE」)
そのほかは、Youtubeの解説に書いてあります。

 

7.オリジナルアニメ→ビデオトレス

 

やってみると難しいトレス。いろいろ調べた結果。。。。

(1)Torsoは回転させず、位置あわせに使う。

(2)300フレーム程度(2x8カウントぐらい)をひとまとまりとして作っていく。

(3)根性。。。

がコツのようです。。。

「http://www.nicovideo.jp/watch/sm17450893 モーショントレスのコツ(百舌谷 さん)

■トレースの工程
1. 動画の準備#0:41
2. カメラと初期ポーズを動画に合わせる#1:13
3. センター仮打ち#1:50
4. 足IK#2:30 (①完全に設置②かかとが離れる③一番高い場所④つま先設置⑤かかと設置)
5. 上半身、下半身、頭、首、センター#4:22
6. 足、足首#7:05
7. 肩、腕、ひじ、手首、指#7:57
8. 3~7を繰り返す
9. 目や表情をつけて完成

※追記:仮センターは頭の先端のみを見て判断し打ちます。」

Blenderの場合は、ビデオシーケンスエディターに音楽を置いて作業できるので便利(読み込みは、.wav形式のみかも。AVIUtlで変換可能)

8.お借りしたものたちでリアルタイムモーション(たーのしー♪)

モデルは tda式アペンドミクさん
スクリプトは、StereoartsさんのMMD4Mecanim
モーションは、百舌谷さんの 4つをBlenderのアニメーションコントローラで接続
音楽は、NHKクリエイティブライブラリ 初音ミクの音楽 (C)DropBox「流星DANCE」

作業画面イメージ

画面キャプチャ(Fraps)によるリアルタイムプレイ画面