質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

2139閲覧

頂点アルファをMAYAからUnityに反映したい

tori0623

総合スコア7

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2018/04/27 12:12

Unityでゲーム開発を行っております。MAYAとUnityの連携について質問があります。

MAYAでテクスチャに対して頂点アルファを付けているモデリングデータを作成し、FBX出力されたデータをUnityで読み込んだ時に、テクスチャがそのまま表示されており頂点アルファが反映されません。ネットで調査したところ、Unity標準シェーダーでは頂点アルファは対応していないことが分かったのですが、具体的な対応方法を見つけることができませんでした。
シェーダーの書き方もしくはAssetを使った対応方法などでも構いませんので教えていただけませんでしょうか。

補足情報(FW/ツールのバージョンなど)

MAYA2017
Unity2017.3.0f3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Standard shader with vertex colors | Unity Forumに投稿されているものは、落とす影までちゃんと正しい形になっている点などが興味深いと思いますが、いかがでしょうか。

ただ、GitHub - H-man/UnityVertexColorsにある改変バージョンをWindows版2017.4.1f1、DirectX 11で試してみたところ、'FragmentSetup': cannot convert from 'half4[3]' to 'float4[3]'などと文句を言われてしまいました。
仕方ないので、UnityVC.cgincを下記のように書き換えてみたところ、とりあえず動作するようになりました。

HLSL

1/* 2Unity Standard Vertex Color Shader for Unity 2017.1.1f1 3(original by defaxer) 4*/ 5 6#ifndef UNITY_VC_INCLUDED 7#define UNITY_VC_INCLUDED 8 9// half4配列で受け取ったtangentToWorldをfloat4配列に変えてFragmentSetupに渡し、受け取った結果を返す 10inline FragmentCommonData FragmentSetupCustom(inout float4 i_tex, float3 i_eyeVec, half3 i_viewDirForParallax, half4 tangentToWorld[3], float3 i_posWorld) { 11 float4 tangentToWorldF[3]; 12 tangentToWorldF[0] = tangentToWorld[0]; 13 tangentToWorldF[1] = tangentToWorld[1]; 14 tangentToWorldF[2] = tangentToWorld[2]; 15 return FragmentSetup(i_tex, i_eyeVec, i_viewDirForParallax, tangentToWorldF, i_posWorld); 16} 17 18// FRAGMENT_SETUP、FRAGMENT_SETUP_FWDADDで上記FragmentSetupCustomを使わせる 19#undef FRAGMENT_SETUP 20#define FRAGMENT_SETUP(x) FragmentCommonData x = FragmentSetupCustom(i.tex, i.eyeVec, IN_VIEWDIR4PARALLAX(i), i.tangentToWorldAndPackedData, IN_WORLDPOS(i)); 21#undef FRAGMENT_SETUP_FWDADD 22#define FRAGMENT_SETUP_FWDADD(x) FragmentCommonData x = FragmentSetupCustom(i.tex, i.eyeVec, IN_VIEWDIR4PARALLAX_FWDADD(i), i.tangentToWorldAndLightDir, IN_WORLDPOS_FWDADD(i)); 23 24// 以降のコードは変更なし

投稿2018/04/27 22:10

Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tori0623

2018/04/30 01:44

ご回答有り難うございます。 教えていただきましたGitHubに公開されているシェーダーを使ったところ 正しく頂点アルファが表示されました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問