スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MMDのアルファ出力問題

この問題はVer6.00以降からある問題でしたが、大きな問題でないので記事にしてませんでした。
(というか、書くのが面倒だったりしたのもありますw)
が、効果系や合成系にチャレンジする人や、Ver7.04でのアルファ出力改善を受けてしたためることにします。

■MMDからのAVI(並びに画像出力)における半透明処理
さて、標準付属モデルなどを使う場合には問題はありませんが、雑誌付録モデルやユーザーモデルの一部では半透過テクスチャなどを使ったモデルも多くなってきました。
モデルだけでなくアクセサリも半透過テクスチャなどを使うものがありますね。
普通に使う分にはまったく問題ありませんが、アルファ付きで出力する場合、ちょっとした罠があります。

Alfa01

よくご覧下さい。
キティラーの肩の後ろに…
ではなく、前髪にご注目下さい。背景をマゼンダ一色にしてますが、前髪部分にそのマゼンダが混じっていますね。
アルファ情報だけを表示するとこうなってます。

Alfa02

アルファ情報は、黒が完全透過、白が不透過です。なのでグレーの部分は半透過となる訳ですね。
アルファというのは、光の三原色であるRGB情報の他に、この透過用情報(黒?白の256段階)を第四の情報として動画・画像に埋め込んで合成などをしやすくするものです。
アルファ情報がない場合は、全面白アルファと同じで「まったく透過しません」となってる訳です。

さて、それはともかく、MMDでのアルファ出力はZ情報(奥行き)情報などは考慮されずにいます。また、描写順番などもMMD上の画面描写出力とは別なので、アルファ付きPNGやアルファ付き動画を出力するとこうなる訳ですね。
こういった理由で、半透過テクスチャを使ったモデルやアクセサリは、その物体の奥に何があろうとも半透過してしまう訳です。
ロングショットとかならいいですが、アップショットとかで背景を別途動かしている場合などは致命的ですね。
ちなみに、標準付属のステージでも半透過テクスチャはてんこもりです

Alfa03

こちらのアルファ情報はこうなってます
Alfa04

では、背景を別途合成する場合などはどうすればいいのでしょうか?
方法はいくつかありますが、そのうちのいくつかを紹介します。

1つ目は従来通りカラーマット(クロマキー・カラーキー)で抜く事です。Ver7.04の新機能を堪能できませんが、今までカラーマットで使用してた人には安心な方法です。

2つ目は、背景を加工後にMMDの背景AVIとして読み込み、モデルとあわせるという更にオーソドックスな方法です。

3つ目は、アルファ情報を加工する方法です。残念ながらNiVEでのやり方はまだ模索していません。紹介するのはAfterEffectsでの方法となりますが、似たような方法でNiVEでも出来るのではないかと踏んでます。
AE使いの人には既知の事ではあるでしょうが…w

使うのは「エフェクト」>「チャンネル」>「アルファレベル」プラグインです。

Alfa05

これの入力値、またはガンマを弄れば一発解決です。

Alfa06

白レベルを下げて半透過部分を潰してしまいます。
ですが、これをやると当然、影側の透過も変わってしまいます。

Alfa07
  ↓
Alfa08

白レベルを下げて潰してしまうと、当然影側のアルファも濃くなります。影側を維持したい場合は黒レベルも操作してみましょう。

Alfa09

影の濃さは元のままに近い状態にする事が出来ます。また前髪の透過は潰れたままなので綺麗に合成できるようになります。

Alfa10

影は半透過のまま、前髪に背景が透けてしまう問題は解決されます。
この数値設定はあくまでも今回の場合ですので、アクセサリやモデルによって設定は変わります。またかなり透過しているようなアクセサリと併用する時(場合によって影よりも薄い半透過設定されたもの)は、レベルやガンマを操作しても思うようにいかない場合があるでしょう。
その場合は、影のみ出力機能などを使ったり、アクセサリ毎に出力したりという形になります。

モデルと影を別途出力すると、物理演算結果が異なるといった場合も出てくるでしょうが、影を明確に写す場合というのはそう多くないので、若干の差異であるなら最終的な違和感はほぼ出ないかと思われます。
もしくは、VMD Viewにある物理演算結果のベイク機能(VMD出力機能)を使い、結果を固定させて使う手もあります。

今後、MMD側でこの問題が解決される可能性もあるかもしれませんが、ひとまずはこれらの方法で回避できます。
また、同じ方法ではありますが別途記事がありますので、そちらもご参照下さい。
にゃっぽん - pironさんの日記 - MMD7.04の書き出し問題と回避方法
http://v-nyappon.net/?m=pc&a=page_fh_diary&target_c_diary_id=815735

(外部公開されてますので、SNS非登録者も見れます)

■NiVEでの方法
教えていただいたので記述します。
NiVEで行うには、「レベル補正」プラグインが便利だそうです。
Alfa11(画像クリックで大きな画像が表示)
このレベル補正では、RGBだけでなくアルファ値も操作できるので、図のようにする事で透過具合が調整出来ます。
今回は直線ではなくカーブでやってみました。

使用前
Alfa12

使用後
Alfa13

これでNiVEでも安心ですね!
また、AEでは面倒な効果もNiVEだと楽なものも多く出てきていますので、AE持ってる人でもNiVEは便利かもしれません。
質感調整も場合によってはNiVEの方が扱い易く思った効果を出しやすい事もあるので、チャレンジしてみて下さい。
関連記事
スポンサーサイト

コメント

非公開コメント

NiVEですと

「レベル補正」プラグインを使えばアルファチャンネルをトーンカーブで操作できますよー。

http://gyazo.com/eb70a9ebfb0d95ff624963c64dc386aa.png

かんなさんの画像のようにアルファチャンネルのみを表示させる方法はちょっとわからなかったので、
黒→透過のグラデ画像の下にマゼンタイメージを置いたものです。

トーンカーブでアルファとRGB,YUV,HLSを個別にいじれます。
これと半透明キーはマジで神プラグイン。

さあ、追記を書く作業に入るんだ!

Re: NiVEですと

>pencilerさん
久々にNiVEとプラグインをDLしなおしてみました。1.84ですが。
で記事を追加させて頂きましたです。情報ありがとですよ~!

No title

初めまして。べすといいます。よろしくお願いします。
いきなりですが、質問(お願い?)があるのですが・・・

NiVEで、「Hufyuvで可逆圧縮したアルファチャンネル情報を保存してある動画(ちゃんと半透明の部分は透過して裏にあるものが見えている状態)」を試してみたのですが、未圧縮で24bitRGB出力しても(またはHufyuvでも)レベル補正処理が正しく適用されません・・・(´・ω・`)
宜しければかんなさんのNiVEでのやり方の詳細を教えていただけないでしょうか・・・?

また、それ以前の低レベルな質問で申し訳ないのですが、上と同じ動画で、レベル補正操作画面で背景の色を変えることもできないのですが・・・一体どうすればいいのでしょうか(`;ω;´)

Re: No title

> べすさん

> NiVEで、「Hufyuvで可逆圧縮したアルファチャンネル情報を保存してある動画(ちゃんと半透明の部分は透過して裏にあるものが見えている状態)」を試してみたのですが、未圧縮で24bitRGB出力しても(またはHufyuvでも)レベル補正処理が正しく適用されません・・・(´・ω・`)
> 宜しければかんなさんのNiVEでのやり方の詳細を教えていただけないでしょうか・・・?

基本的なやり方はエントリーにある通りですので、他に特別な事はやっていません。
また状況やデータを見ないと何とも言えない部分があったり、環境によっても詳細が違ってくる事もあるので…。
ちなみに、透過付きのデータの場合は24bitではなく32bitになるはずです
(R 8bit + G 8bit + B 8bit + Alfa 8bit = 32bit ですね)
また、レベル補正がちゃんとNiVEの目的レイヤーに登録されているかどうかもチェックしてみてください。

> また、それ以前の低レベルな質問で申し訳ないのですが、上と同じ動画で、レベル補正操作画面で背景の色を変えることもできないのですが・・・一体どうすればいいのでしょうか(`;ω;´)

これもいまひとつ質問の意図が分からないのですが…背景は背景レイヤーにレベル補正がきちんとかかってますでしょうか?

No title

>かんなさん
お返事ありがとうございます^^;

>透過付きのデータの場合は24bitではなく32bitになるはず
・・・
・・・・・・
・・・・・・・・・ッ!?
そういえば・・・そうでしたね・・・
NiVEでいつも「32bitではアルファチャンネルが正しく保存されない可能性があります」
なんていう警告が出るもんだから勘違いしてました・・・
しかし一応32bitでもやってみたのですが、やはりなぜか出来ない・・・

チャンネルは「透明」を選んであります。
モードはyuvの他に、RGBも選択してみたりもしましたが、効果がありませんでした・・・

やはり元の動画を可逆圧縮でやってしまったのがいけなかったのですかね。
無圧縮の素材で試してみることにします。

>質問の意図
>背景は背景レイヤーにレベル補正がきちんとかかってますでしょうか?
操作画面で、「背景色」のボタンを押した先の色選択ウィンドウで、
デフォルトの黒から青やピンクなどの効果が分かりやすい色に変えたかったのです。

背景レイヤー・・・もしかして・・・アルファチャンネル付きで保存した一つの動画に、透過レイヤーが複数存在したりするのですか・・・?もしそうなら、かかってないと思いますすみませんm(_ _)m

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

Re: No title

可逆圧縮のコーデックもUt Videoのように32bit対応のもあれば、24bitのみのもの、さらにRGBじゃなくYUVのみのものとかもるので、まぁ…ややこしいですねw
また、NiVEも1.8世代ならアルファ対応してますが、NiVE2βなどはまだアルファには対応してないと思いましたので。もしかしたらその辺りかな?

レイヤーに関しては、どういう風にレイヤーとエフェクトを組んでるかによって変わってきますので、少なくとも作業のスクショなどを見ないと何ともいえまちぇん

No title

以前アルファチャンネルについていろいろアホな質問をしてしまったべすです。
いろいろ弄り続けて、問題の原因がようやく分かりました。
アルファ付き動画をNiVEに読み込む際、通常のVFWInputを使っていたことが原因でした。

DSVideoInputやVFWInput(32bit ARGB Video Only)で読み込まないとそもそも透過情報が認識されないのでした(ノ∀`)

何ていうか・・・ほんとサーセン(´・ω・`)

恐ろしく初歩的なミスでわざわざ報告するほどのことではないかも知れませんが、一応^^;
プロフィール

かんな

Author:かんな
ニコニコ動画などでMMD動画をうpしてるしがないユーザーの一人。
ブロマガ版みくだん
連絡先:mikudan3939葱gmail.com
(葱を半角@に変換してください)

カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
Twitter
MMD関連物
カテゴリー
最近の記事
ブログ内検索
リンク
RSSフィード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。