Maya_to_Unity工作流程

***************************注意事项****************************

1、maya的place2Dtexture不起作用,只能使用pbs节点的uv调整(只能调整scale、offect),所以贴图的rotate只能使用uv工具进行调整:

 

2、Unity项目第一步将色彩空间设置为liner:

 

3、灯光材质与area光源优劣区别:

①下图所示只有灯光材质可以将场景照亮,但是计算速度较慢(但灯光材质可以加上posteffect可以实现bloom效果!)

②area光源一般模拟自然天光源来使用(一般情况室内,只有环境球不足以不足以照亮整个室内场景,所以要在每个窗户使用area模拟窗口的入射天光),此外area的计算速度快一点?

 

****************************Maya_to_Unity流程****************************

1、maya场景设置

①maya的单位为厘米、unity为米(每个单元格),所以可以在maya中进行匹配缩放,再导入unity中(unity中scale比较慢)

②maya的pbs材质的贴图一定要使用非中文路径(所以工程文件应该也是非中文路径)

③可以借助unityToMaya的接口工具进行联动操作

2、maya模型调整:

①尽量合并材质球,减少drawCall数量

②不要出现长三角面,不利于uinty优化

③贴图的选择不要使用placeTexture2D旋转(对于PBS材质无效,maya的PBS材质不识别贴图的placeTexture2D信息),而是要使用UV工具进行旋转。

⑤UV工具可以使用:automatic、best等投射方式(便捷快速)

⑥玻璃材质标注为glass前缀(目前无法使用mel使用transparent模式切换),进行后期手工处理

 

3、将材质转换为PBS材质:

①使用以下mel进行转换:

string $a[] = `ls -sl`;

//if( $ssel[0]=="") return;

string $ss;

for($ss in $a)

{

    shadingNode -asShader StingrayPBS -name ("StingrayPBS"+$ss);

    sets -renderable true -noSurfaceShader true -empty -name ("StingrayPBS"+$ss+"SG");

    setAttr ("StingrayPBS"+$ss+".initgraph") true;

    connectAttr -f ("StingrayPBS"+$ss+".outColor") ("StingrayPBS"+$ss+"SG"+".surfaceShader");

    setAttr ("StingrayPBS"+$ss+".use_normal_map") 1;

      

    string $incomeNode1[]=`  listConnections -d off -s on $ss`;

    print  $incomeNode1;

    if($incomeNode1[0]!="")

    {

        //打开use_color_map贴图

        setAttr ("StingrayPBS"+$ss+".use_color_map") 1;

        //取消链接;   

        disconnectAttr ($incomeNode1[0]+".outColor") ($ss+".color");

       // connectAttr -f ($incomeNode1[0]+".outColor") blinn1.color;

        //建立链接

        //setAttr ("StingrayPBS"+$ss+".use_color_map") 1;

        connectAttr -f ($incomeNode1[0]+".outColor") ("StingrayPBS"+$ss+".TEX_color_map");

       //设置坐标

        string $file[]=`  listConnections -d off -s on  ("StingrayPBS"+$ss+".TEX_color_map")`;

        string $uv[]=`  listConnections -d off -s on  ($file[0]+".uvCoord")`;

        float $repeatU = `getAttr ($uv[0]+".repeatU")`;

        float $repeatV= `getAttr ($uv[0]+".repeatV")`;

        float $offsetU= `getAttr ($uv[0]+".offsetU")`;

        float $offsetV=`getAttr ($uv[0]+".offsetV")`;

       

        setAttr ("StingrayPBS"+$ss+".uv_offsetX") $offsetU;

        setAttr ("StingrayPBS"+$ss+".uv_offsetY") $offsetV;

        setAttr ("StingrayPBS"+$ss+".uv_scaleX") $repeatU;

        setAttr ("StingrayPBS"+$ss+".uv_scaleY") $repeatV;         

    }

    else

    {

        vector $color=` getAttr ($ss+".color") ` ;

        float $x1=$color.x;

        float $y1=$color.y;

        float $z1=$color.z;

        setAttr ("StingrayPBS"+$ss+".base_color") -type double3 $x1  $y1  $z1 ;

    }             

    //根据材质球选择面,然后替换为新的材质球

    hyperShade -objects $ss ;  //根据材质选择面

    sets -e -forceElement  ("StingrayPBS"+$ss+"SG");  //将新的材质球赋予选择的面

}

 

②转换完以后进行材质的preset设置(但是此操作会打断colorTexture)

③使用以下脚本进行colorTexture的链接;并将placeTexture2D的信息转换到PBS的UVoffset、Uvscale上

/********补充:防止设置preset后colormap勾选被去掉,UV被重置的问题*******/

string $a[] = `ls -sl`;

//if( $sssel[0]=="") return;

string $ss;

for($ss in $a)

{       

    string $file[]=`  listConnections -d off -s on  ($ss+".TEX_color_map")`;

    if($file[0]!="")

    {

        //打开use_color_map贴图

        setAttr ($ss+".use_color_map") 1;

       

       //设置坐标

        string $uv[]=`  listConnections -d off -s on  ($file[0]+".uvCoord")`;

        float $repeatU = `getAttr ($uv[0]+".repeatU")`;

        float $repeatV= `getAttr ($uv[0]+".repeatV")`;

        float $offsetU= `getAttr ($uv[0]+".offsetU")`;

        float $offsetV=`getAttr ($uv[0]+".offsetV")`;

       

        setAttr ($ss+".uv_offsetX") $offsetU;

        setAttr ($ss+".uv_offsetY") $offsetV;

        setAttr ($ss+".uv_scaleX") $repeatU;

        setAttr ($ss+".uv_scaleY") $repeatV;         

    }

}

 

5、场景中添加其他物体:

①添加灯光:maya中可以添加spot、point灯光(一般用作人工光,如灯具):

②可以添加背景,使用png贴图(边缘进行虚化)

 

6、导出fbx(导出fbx到贴图所在路径比较好)

①将glass的PBS材质手工设置为transparent模式

②导出之前注意maya(厘米)与unity(米)的空间单位(如有缩放,尽量在maya中进行,unity缩放比较慢)

 

7、Unity导入

①先导入贴图

②将fbx导入到贴图的目录

一定要勾选产生光子图UV,否则后期烘焙贴图会出错!(材质贴图是UV0)

 

⑤如果想在Unity中对物体的材质进行调整,要将材质进行extract:

 

8、对Unity导入模型进行修正:

①透明材质,要使用alpha通道进行透明度的调整:

②玻璃要做成有厚度的,否则单面只有一个面可见

 

9、Unity灯光技巧:

①首先使用一盏directlight作为日光,自然光只让他来产生阴影,此灯只是产生阴影而已

②环境球的曝光度,对场景间接光的提升不是很明显,对反射环境图的亮度有有作用:

如果不想在增加灯光数量、亮度的情况下提升间接光的亮度,可以使用下面的参数,非常好!

 

⑤室内场景的户外天光,使用area放置在玻璃上进行模拟(去掉阴影投射)

⑥室内灯:

室内人工光灯(灯泡,灯具,小范围的照明):使用spot、point灯,但是大面的柔和室内光不建议使用

室内大面的照明使用area(数量不能多,面积不要太大)

室内的灯带使用发光材质制作(既要照明,又要看到灯光本体,就要使用发光材质)

 

10、灯光探头、反射探头

①灯光探头,在需要有动态物体活动的区域,且需要表现细腻的光影空间时使用,可以在动态物体活动区域密集的阵列式排布(简单点)

②反射探针,可以每个空间一个(把墙体排除),或在需要反射实际物体的空间中进行进行设置

 

11、场景光子图初步计算:

可以使用substractive(直接光、间接光都烘焙)、Baked indirect(只烘焙间接光)

 

12、最终烘焙使用以下参数:

AO可以烘焙,也可以使用posteffect进行后期处理

 

13、后期可以是posteffct进行处理:

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值