アウトプットしないと死んじゃう病なものですから

マリエルさんセットのエフェクトエラーメッセージ対応

2020/08/02 13:00 投稿

  • タグ:
  • MMD
  • MikuMikuDance
  • マリエルさんセット
  • マリエル
忘れないうちに、記事に起こしておきますね!

MMDに読み込んだとたんに、「ふおおおおお!」となったマリエルさんセット。
画面だけではわからない魅力があるので、ぜひぜひ、多くのMMDerさんに体験して頂きたい✨✨✨

配布動画はこちらです✨


配布から9年とは信じられないクォリティ…



しかしですね、添付の説明書の通りに読み込んだのですが、このようなエラーメッセージが出てしまいます。
対処方法を調べたので、書いておきますね!
解説もいろいろ書いてありますが、「わからない!」という方は、ピンクの文字のところだけ読んでも、対応できると思います。



↑この画像を元にして、ディスコードの質問部屋で質問してみました!
エラーメッセージの赤アンダーラインに該当するのが、
右のソースコードの赤で指定した部分です。
同じ名称の定義が二回繰り返されています。
ファイル名は、GetNormal.fxです。

さすが!ディスコード。歴史的理由も踏まえて、教えていただけました!

このエラーメッセージは、
初期の頃は出ていなかったのですが、
MMEが32bit版から64bit版になった時に、
出てくるようになったそうです。

対処方法としては、
GetNormal.fx
を開いて、

二回定義されている「MainTec」の片方を、
違う名称に変えるだけです。
私は、片方を、「MainTecSs」としました。


そして、あともう一つ、違うエラーが出てきます。
それは、ネット検索で解決しました。
Caeru.E型様のTweetです。情報発信に感謝!

WaterLightController.fx
の下記青字部分で、エラーが出ます。

// 輪郭描画用テクニック
technique EdgeTec < string MMDPass = "edge"; > {
pass DrawEdge {

}
}
// Z値プロット用テクニック
technique ZplotTec < string MMDPass = "zplot"; > {
}
// 影描画用テクニック
technique ShadowTec < string MMDPass = "shadow"; > {
}
technique MainTec < string MMDPass = "object_ss";> {
}


この記述も、32bit版の頃はEdgeTechの内容が空文だと、
MMD本来のエッジ処理が適応される仕様だったらしいのですが、
64bit版からは、DirectXの仕様で空文記述はエラーとなるそうです。

既に意味が無い処理ならば、コメントアウトでいいかな~と、
(他にもっといい対処があれば、ご連絡頂ければ更新します。)

対応として、私は、WaterLightController.fxの、
該当部分をコメントアウトしました。
行の先頭に、「//」を入れます。(半角ですよ)

但し、エラーメッセージは消えますが、水面の表示が変わります。
もっといい解決策が見つかったら、こちらにまた追記したいと思います。

// technique EdgeTec < string MMDPass = "edge"; > {
// pass DrawEdge {
//
// }
//}

↑わかりやすくする為に、赤くしてみました。

どちらも、32bit版から、64bit版へ移行した際に、
エラーメッセージが出るようになったわけですね!



ほんとうに素敵なセットなので、是非、多くの皆様に体験して頂きたいです✨
この記事が、お役に立ちますように✨✨✨


コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事