巨大娘お尻見上げ画像を作りながら空気遠近エフェクトの使い方を紹介していきます。
レシピ
- 紅美鈴Ver2.00 Rev.B
- 街モブ
- 空色町ver1.52
- スカイドーム(優しい輝きの空) VOL.TP4
- お手軽空気遠近エフェクト
- pmotskin高速起動版
- PowerDOF
- ExcellentShadow2
モデルのサイズを変更
まず、100倍のサイズの美鈴を作ります。
- 『紅美鈴Ver2.00(ダンス水着-南半球な水着ハーフバックポニテハイヒールサンダル)_MMD904以降専用』を PmxEditor で開く
- 編集 → プラグイン → System → サイズ変更 でサイズを 100 倍にする
- PmxView のウィンドウにある T ボタンを押し、出てきたウィンドウをすぐ閉じる
- ファイル → 名前をつけて保存
街と空を読み込み
- 空色町を読み込んで、Si を 0.05 に設定
- スカイドームを読み込む
モデルを読み込み
- 100倍美鈴を読み込む
- エッジ太さを 0 に
- ポーズとカメラを決める
とりあえずこんな感じにしました。前景がほしいので電信柱のある場所にしています。
この状態では遠近感はそんなにありません。
スキンシェーダ
陰影が欲しいので d_pmotskin を以下のように割り当てます。
すると以下のようになります。お尻に陰影が強くつくので迫力が増しましたね!
空気遠近
素の状態の空気遠近エフェクトは距離感をパラメータで指定できません。 巨大娘画像を作るには距離感の指定が必要不可欠なのでエフェクトを改造して組み込んでしまいます。
FogOffScreen.fx をテキストエディタで開き、以下の箇所にコードを追加します。
// パラメーター // // ↓↓↓ これを追加 ↓↓↓ static float DistanceScaleFactor = (X == 0) ? 1.0 : X; // ↑↑↑ 追加ここまで ↑↑↑ // フォグの底(デフォルトは0) // 底より下は見えない float BottomFog = 0; // 滑らかさ // 大きいほど変化がなだらかになる。 // Xが手前、Yが奥 // デフォルトは(X,Y)=(1,2); // (X,Y)=(1,1)で変化が直線になる。 float2 FogParam = {1.0, 2.0}; // 透過度以下を切り捨て #define CLIP_ALPHA 0.1
また、同じファイルの In.PosW.w = distance(In.PosW.xyz,CameraPosition);
と書いてある行を In.PosW.w = distance(In.PosW.xyz,CameraPosition) * DistanceScaleFactor;
に置き換えます(2箇所あるので注意してください)
これで改造は終わりです。X パラメータで距離倍率を指定できます。例えば X に 5 を指定すると通常時の 5 倍の距離として空気遠近が計算されます。
改造した空気遠近青を読み込み、X を 4 に、Si を 0.5 に設定します。 また、このままだとスカイドームにまで空気遠近が適用されてしまうので、エフェクトファイル割り当ての texFog のタブで Dome_TP401.x のチェックを外しておきます。
この時点でこんな感じの画像になっています。距離感が出てますよね!
ExcellentShadow2
影を綺麗にするために ExcellentShadow2 を入れます。 この画像だと大して変化がありませんが、場合によってはかなり効きます。
影がギザギザになる場合は Si を大きくすればいいです。 今回は Si に 10 を指定します。
また、Tr の値を小さくすると影が濃くなります。 が、d_pmotskin を使っている場合は残念ながら濃くなりません。
PowerDOF
前景をぼかすために PowerDOF と PDOF_AutoFocus を入れます。 そのままだとぼかしが強すぎるので、Si に 0.1 を指定します。
逃げてる人
前景に人を配置すると絶望感が出てよいです。
美鈴を100倍にしたのと同じ方法で20分の1の男性モブを作り、それっぽいポーズを作って配置します。
仕上げ
このままだと空が寂しいので瓦礫を撒いたり煙を入れたりヘリを飛ばしたりといろいろやっていきます。 これらの作業を書いているといつまでたっても記事が終わらないのでバッサリ省略します。
以下が Twitter に投稿した画像です。お尻の影の付き方がちょっと変わっていますが、これは d_pmotskin を改造して影を濃くしているからです。d_pmotskin の改造は結構大変なので機会があれば別の記事で紹介しようと思います。
以上です。