MELでシェーダー作成 1
ディフューズカラーに指定のテクスチャを貼っただけの基本的なLambert ShaderをMELで作成する際の記述をメモっておきます(当時ググってもピンポイントでは出てこなかったので)。
@dandymania_tw ようやくいけました! pic.twitter.com/mrM1QwSJIW
— moko (@moko_03_25) 2015, 5月 28
実際の中身はこちら。
「vfx_tex.png」というテクスチャをあらかじめ用意しておいて、それを使用するようにしています。
shadingNode -asShader lambert -name VFXlambert;
sets -renderable true -noSurfaceShader true -empty -name VFXlambertSG;
connectAttr -f VFXlambert.outColor VFXlambertSG.surfaceShader;shadingNode -asTexture file -name VFXfile;
setAttr -type "string" VFXfile.fileTextureName "vfx_tex.png";shadingNode -asUtility place2dTexture -name VFXplace2dTexture;
connectAttr -f VFXplace2dTexture.coverage VFXfile.coverage;
connectAttr -f VFXplace2dTexture.translateFrame VFXfile.translateFrame;
connectAttr -f VFXplace2dTexture.rotateFrame VFXfile.rotateFrame;
connectAttr -f VFXplace2dTexture.mirrorU VFXfile.mirrorU;
connectAttr -f VFXplace2dTexture.mirrorV VFXfile.mirrorV;
connectAttr -f VFXplace2dTexture.stagger VFXfile.stagger;
connectAttr -f VFXplace2dTexture.wrapU VFXfile.wrapU;
connectAttr -f VFXplace2dTexture.wrapV VFXfile.wrapV;
connectAttr -f VFXplace2dTexture.repeatUV VFXfile.repeatUV;
connectAttr -f VFXplace2dTexture.offset VFXfile.offset;
connectAttr -f VFXplace2dTexture.rotateUV VFXfile.rotateUV;
connectAttr -f VFXplace2dTexture.noiseUV VFXfile.noiseUV;
connectAttr -f VFXplace2dTexture.vertexUvOne VFXfile.vertexUvOne;
connectAttr -f VFXplace2dTexture.vertexUvTwo VFXfile.vertexUvTwo;
connectAttr -f VFXplace2dTexture.vertexUvThree VFXfile.vertexUvThree;
connectAttr -f VFXplace2dTexture.vertexCameraOne VFXfile.vertexCameraOne;
connectAttr VFXplace2dTexture.outUV VFXfile.uv;
connectAttr VFXplace2dTexture.outUvFilterSize VFXfile.uvFilterSize;
defaultNavigation -force true -connectToExisting -source VFXfile -destination VFXlambert.color; window -e -vis false
createRenderNodeWindow;
connectAttr -force VFXfile.outColor VFXlambert.color;
ノードの何の出力を何の入力に繋げたらいいのかは、まずハイパーシェードで実際にマテリアルを作ってみてシェーディングネットワークを開けば確認することができます。
それを参考に記述したらいけました。。
こちらの記事でもうちょっと補完しています。