//---------------------------------------------------------------------------
//  nnMaterialAttributeEditTool.mel
//
//  Copyright (C) 2002 - 2009 SEGA Corporation CS R&D Support Department
//  All Rights Reserved.
//
//  Module  : nnMaterialAttributeEditTool
//  File    : nnMaterialAttributeEditTool.mel
//  Create  : 2004/03/30
//  Modify  : 2004/05/13 : XBox版SPECULAR MAP追加
//          : 2004/05/27 : Diable Fogging追加
//          :            : GC版Texture StageにSPECULAR MAP追加
//          :            : GC,Xbox版Texture StageにSPECULAR2,ADD,SUBTRACT追加
//          : 2004/06/18 : Light Stage追加
//          : 2004/06/29 : Xbox ２面ライティングオプション対応
//          : 2004/07/12 : nnVertexColorが表示されていなかった不具合修正。
//          :            : 2SIDE LIGHTINNGオプション追加前のデータに設定
//          :            : できなかった不具合修正。
//          : 2004/08/11 : PS2 αテスト失敗時の処理にAUTO追加
//          : 2004/09/13 : Xbox Texture StageにAUTO追加
//          :            : Xbox Texture Filter関連属性の追加
//          : 2004/10/19 : Xbox Texture Stageの設定の不具合修正
//          : 2005/03/02 : Lindberg用属性対応
//          : 2005/03/16 : 多機種対応
//          : 2005/04/27 : Lindbergh用属性 User Profile対応
//          :            : PSP用属性対応
//  Version : 0.97.00
//  Note    : nnMaterialAttributeEditTool
//
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Static Area
//---------------------------------------------------------------------------

// NN Material Attributeバージョン情報
global string $nnMaterialAttributeEditToolVersion	= "0.97.00";

// window
global int $nnMainWindowWidth				= 600;
global int $nnMainWindowHeight				= 1000;
// layout
global int $nnMainLayoutWidth;
global int $nnMainLayoutHeight;
global int $nnLayoutWidth;
global int $nnCommonLayoutHeight			= 280;
global int $nnPS2LayoutHeight				= 100;
global int $nnGCLayoutHeight				= 410;
global int $nnXBLayoutHeight				= 410;
global int $nnLBLayoutHeight				= 410;
global int $nnPSPLayoutHeight				= 410;
// rowLayout
global int $nnItemColPos					= 470;
global int $nnUpdateChkboxColPos;
global int $nnUnitColPos1					= 422;
global int $nnUnitColPos2					= 188;
global int $nnOutputTypeColPos1				= 285;
global int $nnOutputTypeColPos2				= 145;
global int $nnOutputTypeColPos3				= 100;

global int $nnLabelWidth					= 180;
global int $nnFieldWidth					= 280;

global int $nnColumWidth2					= 80;
global int $nnColumWidth3;

// Texture
global int $nnTexItemColPos;
global int $nnTexUnitColPos1;
global int $nnTexUnitColPos2;
global int $nnTexLayoutWidth;

global int $nnTexLabelWidth;
global int $nnTexFieldWidth;
global int $nnTexUpdateChkboxColPos;

global int $nnTexColumWidth2				= 80;
global int $nnTexColumWidth3;

global int $nnPS2TexLayoutHeight			= 600;
global int $nnGCTexLayoutHeight				= 600;
global int $nnXBTexLayoutHeight				= 600;
global int $nnPSPTexLayoutHeight			= 600;

global string $nnUnitChar					= "Update (On/Off)";

global string $nnBeforeUserData;

global string $nnCommonMatFiledTable[];			// 共通マテリアル属性フィールドテーブル
global string $nnPS2MatFiledTable[];			// PlayStatin2マテリアル属性フィールドテーブル
global string $nnPS2TexFiledTable[];			// PlayStatin2テクスチャ属性フィールドテーブル
global string $nnGCMatFiledTable[];				// GAMECUBEマテリアル属性フィールドテーブル
global string $nnGCTexFiledTable[];				// GAMECUBEテクスチャ属性フィールドテーブル
global string $nnXBMatFiledTable[];				// Xboxマテリアル属性フィールドテーブル
global string $nnXBTexFiledTable[];				// Xboxテクスチャ属性フィールドテーブル
global string $nnLBMatFiledTable[];				// Lindberghマテリアル属性フィールドテーブル
global string $nnPSPMatFiledTable[];			// PSPマテリアル属性フィールドテーブル
global string $nnPSPTexFiledTable[];			// PSPテクスチャ属性フィールドテーブル

global string $nnPS2AlphaBlendPresetTable[];	// AlphaBlending presetMode変換テーブル

//---------------------------------------------------------------------------
// Function
//---------------------------------------------------------------------------

// NN PS2 プラグインロード情報取得
global proc int mtnPS2GetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNPS2"`        ||
				 `pluginInfo -query -loaded "MAYA2011x64toNNPS2"`     ||
				 `pluginInfo -query -loaded "MAYA2012toNNPS2"`        ||
				 `pluginInfo -query -loaded "MAYA2012x64toNNPS2"`     );
	return $info;
}
// NN GC プラグインロード情報取得
global proc int mtnGCGetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNGC"`         ||
				 `pluginInfo -query -loaded "MAYA2012toNNGC"`         );
	return $info;
}
// NN DirectX G1.1  プラグインロード情報取得
global proc int mtnXBGetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNXB"`         ||
				 `pluginInfo -query -loaded "MAYA2011x64toNNXB"`      ||
				 `pluginInfo -query -loaded "MAYA2012toNNXB"`         ||
				 `pluginInfo -query -loaded "MAYA2012x64toNNXB"`      );
	return $info;
}
// NN Lindberghプラグインロード情報取得
global proc int mtnLBGetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNLB"`         ||
				 `pluginInfo -query -loaded "MAYA2011x64toNNLB"`      ||
				 `pluginInfo -query -loaded "MAYA2012toNNLB"`         ||
				 `pluginInfo -query -loaded "MAYA2012x64toNNLB"`      );
	return $info;
}

// NN PSPプラグインロード情報取得
global proc int mtnPSPGetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNPSP"`        ||
				 `pluginInfo -query -loaded "MAYA2011x64toNNPSP"`     ||
				 `pluginInfo -query -loaded "MAYA2012toNNPSP"`        ||
				 `pluginInfo -query -loaded "MAYA2012x64toNNPSP"`     );
	return $info;
}
// NN XENONプラグインロード情報取得
global proc int mtnXENONGetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNXB360"`      ||
				 `pluginInfo -query -loaded "MAYA2011x64toNNXB360"`   ||
				 `pluginInfo -query -loaded "MAYA2012toNNXB360"`      ||
				 `pluginInfo -query -loaded "MAYA2012x64toNNXB360"`   );
	return $info;
}
// NN PS3プラグインロード情報取得
global proc int mtnPS3GetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNPS3"`        ||
				 `pluginInfo -query -loaded "MAYA2011x64toNNPS3"`     ||
				 `pluginInfo -query -loaded "MAYA2012toNNPS3"`        ||
				 `pluginInfo -query -loaded "MAYA2012x64toNNPS3"`     );
	return $info;
}

// NN DirectX G2.0プラグインロード情報取得
global proc int mtnDXG2GetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNDXG2"`       ||
				 `pluginInfo -query -loaded "MAYA2011x64toNNDXG2"`    ||
				 `pluginInfo -query -loaded "MAYA2012toNNDXG2"`       ||
				 `pluginInfo -query -loaded "MAYA2012x64toNNDXG2"`    );

// NN OpenGL ES 1.1プラグインロード情報取得
global proc int mtnGLES11GetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNGLES20"`     ||
				 `pluginInfo -query -loaded "MAYA2011x64toNNGLES20"`  ||
				 `pluginInfo -query -loaded "MAYA2012toNNGLES20"`     ||
				 `pluginInfo -query -loaded "MAYA2012x64toNNGLES20"`  );

	return $info;
}
// NN OpenGL ES 2.0プラグインロード情報取得
global proc int mtnGLES20GetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNGLES20"`     ||
				 `pluginInfo -query -loaded "MAYA2011x64toNNGLES20"`  ||
				 `pluginInfo -query -loaded "MAYA2012toNNGLES20"`     ||
				 `pluginInfo -query -loaded "MAYA2012x64toNNGLES20"`  );

	return $info;
}
// NN VITAプラグインロード情報取得
global proc int mtnVITAGetPluginInfoMayaNNExporter()
{
	int $info = (`pluginInfo -query -loaded "MAYA2011toNNVITA"`      ||
				 `pluginInfo -query -loaded "MAYA2011x64toNNVITA"`   ||
				 `pluginInfo -query -loaded "MAYA2012toNNVITA"`      ||
				 `pluginInfo -query -loaded "MAYA2012x64toNNVITA"`   );

	return $info;
}

//---------------------------------------------------------------------------
//  関数名 : nnMaterialAttributeEditTool
//  機　能 : NN用マテリアル属性の一括設定。
//  書　式 : global proc nnMaterialAttributeEditTool()
//  引　数 : なし
//
//  戻り値 : なし
//  説　明 : NN用マテリアル属性の一括設定をします。
//---------------------------------------------------------------------------
global proc nnMaterialAttributeEditTool()
{
	global int $nnMainWindowWidth;
	global int $nnMainWindowHeight;
	global int $nnMainLayoutWidth;
	global int $nnMainLayoutHeight;

	int $nnps2    = mtnPS2GetPluginInfoMayaNNExporter();
	int $nngc     = mtnGCGetPluginInfoMayaNNExporter();
	int $nnxb     = mtnXBGetPluginInfoMayaNNExporter();
	int $nnlb     = mtnLBGetPluginInfoMayaNNExporter();
	int $nnpsp    = mtnPSPGetPluginInfoMayaNNExporter();
	int $nnx360   = mtnXENONGetPluginInfoMayaNNExporter();
	int $nnps3    = mtnPS3GetPluginInfoMayaNNExporter();
	int $nndxg2   = mtnDXG2GetPluginInfoMayaNNExporter();
	int $nngles11 = mtnGLES11GetPluginInfoMayaNNExporter();
	int $nngles20 = mtnGLES20GetPluginInfoMayaNNExporter();
	int $nnvita   = mtnVITAGetPluginInfoMayaNNExporter();

	if( !( $nnps2 + $nngc + $nnxb + $nnlb + $nnpsp + $nnx360 + $nnps3 + $nndxg2 + $nngles11 + $nngles20 + $nnvita ) ) {
		warning( "nnMaterialAttributeEditTool : NN Exporter plugin is unloaded ---- \n" );
		return;
	}

	mtnInitStaticArea();

	mtnCalcLayoutSize();

	// GUI用テンプレート作成
	mtnCreateAllMaterialAttributeDialogTemplate();

	// windowがすでにある場合は一度削除
	if ( `window -exists MTN_MaterialAttributeEditToolWindow` ){
		deleteUI -window MTN_MaterialAttributeEditToolWindow;
	}

	// MTN_MaterialAttributeEditTool作成
	window
		-title					`mtnGetTitleName`
		-menuBar				true
		-width					$nnMainWindowWidth
		-height					$nnMainWindowHeight
		-resizeToFitChildren	true
		-sizeable				true
		MTN_MaterialAttributeEditToolWindow;

	// GUI用テンプレートをセット
	setUITemplate -pushTemplate MTN_AllMaterialAttributeTemplate;

	// MTN_MaterialAttributeEditToolWindowにメニューバーを追加
	mtnMakeLayoutAllMaterialAttributeMenu ( "MTN_MaterialAttributeEditToolWindow" );

	int $testMainLayoutWidth = $nnMainLayoutWidth + 10;

	formLayout
		-width	$nnMainLayoutWidth
		MTN_MaterialAttributeEditToolMainFormLayout;
		paneLayout
			-width			$testMainLayoutWidth
			-height 		$nnMainLayoutHeight
			-configuration	"horizontal2"
			-paneSize		1 100 90
			-paneSize		2 100 10
			MTN_MaterialAttributeEditToolMainPainLayout;

			// NNアトリビュート設定領域
			mtnMakeLayoutMaterialAttribute("MTN_MaterialAttributeEditToolMainPainLayout");

			// 実行ボタン領域
			mtnMakeLayoutExecuteBotton( "MTN_MaterialAttributeEditToolMainPainLayout" );

		// ]] paneLayout
		setParent ..;
	// ]] formLayout
	setParent ..;

	formLayout
		-edit
		// MTN_MaterialAttributeEditToolMainPainLayout
		-attachForm		MTN_MaterialAttributeEditToolMainPainLayout 	top		5
		-attachForm		MTN_MaterialAttributeEditToolMainPainLayout 	left	5
		-attachNone		MTN_MaterialAttributeEditToolMainPainLayout 	bottom
		-attachForm		MTN_MaterialAttributeEditToolMainPainLayout 	right	5
		MTN_MaterialAttributeEditToolMainFormLayout;

	// テンプレート終了
	setUITemplate -popTemplate MTN_AllMaterialAttributeTemplate;

	// ウィンドウを表示
	showWindow MTN_MaterialAttributeEditToolWindow;
}

//---------------------------------------------------------------------------//
//---------------------------------------------------------------------------//
//					メニュー定義関連									 	 //
//---------------------------------------------------------------------------//
//---------------------------------------------------------------------------//
//---------------------------------------------------------------------------//
//  関数名 : mtnInitStaticArea
//  機　能 : 静的領域の初期化
//  書　式 : global proc mtnInitStaticArea()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : 静的領域の初期化をします。。
//---------------------------------------------------------------------------
global proc mtnInitStaticArea()
{
	global string $nnCommonMatFiledTable[];			// 共通マテリアル属性フィールドテーブル
	global string $nnPS2MatFiledTable[];			// PlayStatin2マテリアル属性フィールドテーブル
	global string $nnPS2TexFiledTable[];			// PlayStatin2テクスチャ属性フィールドテーブル
	global string $nnGCMatFiledTable[];				// GAMECUBEマテリアル属性フィールドテーブル
	global string $nnGCTexFiledTable[];				// GAMECUBEテクスチャ属性フィールドテーブル
	global string $nnXBMatFiledTable[];				// Xboxマテリアル属性フィールドテーブル
	global string $nnXBTexFiledTable[];				// Xboxテクスチャ属性フィールドテーブル
	global string $nnLBMatFiledTable[];				// Lindberghマテリアル属性フィールドテーブル
	global string $nnPSPMatFiledTable[];			// PSPマテリアル属性フィールドテーブル
	global string $nnPSPTexFiledTable[];			// PSPテクスチャ属性フィールドテーブル

	global string $nnPS2AlphaBlendPresetTable[];	// AlphaBlending presetMode変換テーブル


	$nnCommonMatFiledTable = {
	//	項目名						初期値			フィールドタイプ
		"nnDoubleSidePolygon",		"NONE",			"optionMenuGrp",
		"nnIgnoreLight",			"0",			"checkBoxGrp",
		"nnDisableFogging",			"0",			"checkBoxGrp",
		"nnAlphaFlag",				"AUTO",			"optionMenuGrp",
		"nnSpecularType",			"AUTO",			"optionMenuGrp",
		"nnSortKey",				"100",			"intFieldGrp",
		"nnCallBack",				"0",			"checkBoxGrp",
		"nnUserData",				"0x00000000",	"textField",
		"nnSpecularLevel",			"0.0",			"floatSliderGrp",
		"nnSpecularGlossiness",		"0.0",			"floatSliderGrp",
		"nnVertexColor",			"0",			"checkBoxGrp"
	};

	$nnPS2MatFiledTable = {
	//	項目名						初期値			フィールドタイプ
		"nnPS2TextureAlpha0",		"0",			"intSliderGrp",
		"nnPS2TextureAlpha1",		"128",			"intSliderGrp"
	};

	// PlayStatin2テクスチャ属性フィールドテーブル
	$nnPS2TexFiledTable = {
	//	項目名						初期値１		初期値２		フィールドタイプ
		"nnPS2BlendMode",			"AUTO",			"AUTO",			"optionMenuGrp",
		"nnPS2UsePalette",			"0",			"0",			"checkBoxGrp",
		"nnPS2PaletteBank",			"0",			"0",			"intSliderGrp",
		"nnPS2EnviromentMap",		"0",			"0",			"checkBoxGrp",
		"nnPS2UClamp",				"AUTO",			"AUTO",			"optionMenuGrp",
		"nnPS2VClamp",				"AUTO",			"AUTO",			"optionMenuGrp",
		"nnPS2TexColComponent",		"AUTO",			"AUTO",			"optionMenuGrp",
		"nnPS2AlphaBlendingPreset",	"INTER_AS",		"INTER_AS",		"optionMenuGrp",
		"nnPS2AlphaBlendingA",		"SRC COLOR",	"SRC COLOR",	"optionMenuGrp",
		"nnPS2AlphaBlendingB",		"DEST COLOR",	"DEST COLOR",	"optionMenuGrp",
		"nnPS2AlphaBlendingC",		"SRC ALPHA",	"SRC ALPHA",	"optionMenuGrp",
		"nnPS2AlphaBlendingFix",	"0",			"0",			"intSliderGrp",
		"nnPS2AlphaBlendingD",		"DEST COLOR",	"DEST COLOR",	"optionMenuGrp",
		"nnPS2ManualColorClamp",	"0",			"0",			"checkBoxGrp",
		"nnPS2ColorClampRGB",		"0",			"0",			"intSliderGrp",
		"nnPS2ColorClampA",			"0",			"0",			"intSliderGrp",
		"nnPS2AlphaTest",			"1",			"1",			"checkBoxGrp",
		"nnPS2AlphaTestMode",		"GREATER",		"GREATER",		"optionMenuGrp",
		"nnPS2ManualAlphaRef",		"0",			"0",			"checkBoxGrp",
		"nnPS2AlphaRefData",		"0",			"0",			"intSliderGrp",
		"nnPS2AlphaFailMode",		"AUTO",			"AUTO",			"optionMenuGrp",
		"nnPS2DstAlphaTest",		"0",			"0",			"checkBoxGrp",
		"nnPS2DstAlphaTestMode",	"ALPHA0",		"ALPHA0",		"optionMenuGrp",
		"nnPS2ZBufferTest",			"1",			"1",			"checkBoxGrp",
		"nnPS2ZBufferTestMode",		"GREATER EQUAL","GREATER EQUAL","optionMenuGrp",
		"nnPS2ZBufferUpdate",		"1",			"1",			"checkBoxGrp",
		"nnPS2ManualMipmap",		"0",			"0",			"checkBoxGrp",
		"nnPS2MipmapLCM",			"0",			"0",			"optionMenuGrp",
		"nnPS2MipmapL",				"0",			"0",			"optionMenuGrp",
		"nnPS2MipmapK0",			"0",			"0",			"intSliderGrp",
		"nnPS2MipmapK1",			"0",			"0",			"intSliderGrp"
	};

	// AlphaBlending presetMode変換テーブル
	$nnPS2AlphaBlendPresetTable = {
		"CUSTOM",		"A",	"B",	"C",	"FIX",	"D",	// 0
		"NOP",			"0",	"2",	"2",	"128",	"2",	// 1
		"INTER_AS",		"0",	"1",	"0",	"0",	"1",	// 2
		"INTER_AD",		"0",	"1",	"1",	"0",	"1",	// 3
		"INTER_FIX",	"0",	"1",	"2",	"-1",	"1",	// 4
		"RINTER_AS",	"1",	"0",	"0",	"0",	"0",	// 5
		"RINTER_AD",	"1",	"0",	"1",	"0",	"0",	// 6
		"RINTER_FIX",	"1",	"0",	"2",	"-1",	"0",	// 7
		"ADD",			"0",	"2",	"2",	"128",	"1",	// 8
		"ADD_CS_FIX",	"0",	"2",	"2",	"-1",	"1",	// 9
		"ADD_CD_FIX",	"1",	"2",	"2",	"-1",	"0",	// 10
		"ADD_CS_AS",	"0",	"2",	"0",    "0",	"1",	// 11
		"ADD_CD_AS",	"1",	"2",	"0",	"0",	"0",	// 12
		"ADD_CS_AD",	"0",	"2",	"1",	"0",	"1",	// 13
		"ADD_CD_AD",	"1",	"2",	"1",	"0",	"0",	// 14
		"SUB_CS",		"2",	"0",	"2",	"128",	"1",	// 15
		"SUB_CD",		"2",	"1",	"2",	"128",	"0",	// 16
		"SUB_CS_FIX",	"2",	"0",	"2",	"-1",	"1",	// 17
		"SUB_CD_FIX",	"2",	"1",	"2",	"-1",	"0",	// 18
		"SUB_CS_AS",	"2",	"0",	"0",	"0",	"1",	// 19
		"SUB_CD_AS",	"2",	"1",	"0",	"0",	"0",	// 20
		"SUB_CS_AD",	"2",	"0",	"1",	"0",	"1",	// 21
		"SUB_CD_AD",	"2",	"1",	"1",	"0",	"0",	// 22
		"MUL_CS_AS",	"0",	"2",	"0",	"0",	"2",	// 23
		"MUL_CS_AD",	"0",	"2",	"1",	"0",	"2",	// 24
		"MUL_CS_FIX",	"0",	"2",	"2",	"-1",	"2",	// 25
		"MUL_CD_AS",	"1",	"2",	"0",	"0",	"2",	// 26
		"MUL_CD_AD",	"1",	"2",	"1",	"0",	"2",	// 27
		"MUL_CD_FIX",	"1",	"2",	"2",	"-1",	"2"		// 28
	};

	// GAMECUBEマテリアル属性フィールドテーブル
	$nnGCMatFiledTable = {
	//	項目名						初期値			フィールドタイプ
		"nnGCUVMode",				"AUTO",			"optionMenuGrp",
		"nnGCAlphaBlendingMode",	"BLEND",		"optionMenuGrp",
		"nnGCAlphaBlendingSrc",		"SRCALPHA",		"optionMenuGrp",
		"nnGCAlphaBlendingDst",		"INVSRCALPHA",	"optionMenuGrp",
		"nnGCAlphaBlendingLogic",	"NOOP",			"optionMenuGrp",
		"nnGCVtxColTexEmulate",		"0",			"checkBoxGrp",
		"nnGCAlphaCompMode0",		"GREATER",		"optionMenuGrp",
		"nnGCAlphaCompMode1",		"ALWAYS",		"optionMenuGrp",
		"nnGCManualAlphaRef",		"0",			"checkBoxGrp",
		"nnGCAlphaRefData0",		"0",			"intSliderGrp",
		"nnGCAlphaRefData1",		"0",			"intSliderGrp",
		"nnGCAlphaCompOperand",		"AND",			"optionMenuGrp",
		"nnGCZBufferComp",			"0",			"checkBoxGrp",
		"nnGCZBufferCompMode",		"LESS EQUAL",	"optionMenuGrp",
		"nnGCZBufferUpdate",		"0",			"checkBoxGrp",
		"nnGCZBufferCompLoc",		"AUTO",			"optionMenuGrp"
	};

	// GAMECUBEテクスチャ属性フィールドテーブル
	$nnGCTexFiledTable = {
	//	項目名						初期値１		初期値２		初期値３		初期値４		フィールドタイプ
		"nnGCBlendMode",			"MODULATE",		"DECAL2",		"DECAL2",		"DECAL2",		"optionMenuGrp",
		"nnGCUsePalette",			"0",			"0",			"0",			"0",			"checkBoxGrp",
		"nnGCPaletteBank",			"0",			"0",			"0",			"0",			"intSliderGrp",
		"nnGCEnviromentMap",		"0",			"0",			"0",			"0",			"checkBoxGrp",
		"nnGCUClamp",				"AUTO",			"AUTO",			"AUTO",			"AUTO",			"optionMenuGrp",
		"nnGCVClamp",				"AUTO",			"AUTO",			"AUTO",			"AUTO",			"optionMenuGrp",
		"nnGCLightBlend",			"0",			"0",			"0",			"0",			"checkBoxGrp"
	};

	// Xboxマテリアル属性フィールドテーブル
	$nnXBMatFiledTable = {
	//	項目名						初期値			フィールドタイプ
		"nnXBUVMode",				"AUTO",			"optionMenuGrp",
		"nnXBAlphaBlendingOperate",	"ADD",			"optionMenuGrp",
		"nnXBAlphaBlendingSrc",		"SRCALPHA",		"optionMenuGrp",
		"nnXBAlphaBlendingDst",		"INVSRCALPHA",	"optionMenuGrp",
		"nnAlphaBlendingConstColor","0x00000000",	"textField",
		"nnXBAlphaBlendingLogic",	"NONE",			"optionMenuGrp",
		"nnXBAlphaTest",			"1",			"checkBoxGrp",
		"nnXBAlphaTestMode",		"GREATER",		"optionMenuGrp",
		"nnXBManualAlphaRef",		"0",			"checkBoxGrp",
		"nnXBAlphaRefData",			"0",			"intSliderGrp",
		"nnXBZBufferComp",			"1",			"checkBoxGrp",
		"nnXBZBufferCompMode",		"LESS EQUAL",	"optionMenuGrp",
		"nnXBZBufferUpdate",		"1",			"checkBoxGrp"
	};

	// Xboxテクスチャ属性フィールドテーブル
	$nnXBTexFiledTable = {
	//	項目名						初期値１				初期値２				初期値３				初期値４				フィールドタイプ
		"nnXBBlendMode",			"AUTO",					"AUTO",					"AUTO",					"AUTO",					"optionMenuGrp",
		"nnXBLightStage",			"0",					"0",					"0",					"0",					"checkBoxGrp",
		"nnXBEnviromentMap",		"0",					"0",					"0",					"0",					"checkBoxGrp",
		"nnXBUClamp",				"AUTO",					"AUTO",					"AUTO",					"AUTO",					"optionMenuGrp",
		"nnXBVClamp",				"AUTO",					"AUTO",					"AUTO",					"AUTO",					"optionMenuGrp",
		"nnXBLODBias",				"0.0",					"0.0",					"0.0",					"0.0",					"floatSliderGrp",
		"nnXBMaxMipLevel",			"0",					"0",					"0",					"0",					"intFieldGrp",
		"nnXBFilterMode",			"0",					"0",					"0",					"0",					"checkBoxGrp",
		"nnXBMagFilterMode",		"NEAREST",				"NEAREST",				"NEAREST",				"NEAREST",				"optionMenuGrp",
		"nnXBMinFilterMode",		"LINEAR MIPMAP NEAREST","LINEAR MIPMAP NEAREST","LINEAR MIPMAP NEAREST","LINEAR MIPMAP NEAREST","optionMenuGrp"
	};

	// Lindberghマテリアル属性フィールドテーブル
	$nnLBMatFiledTable = {
	//	項目名						初期値				フィールドタイプ
		"nnLBUserProfile",			"NONE",				"optionMenuGrp",
		"nnLBBlendFlag",			"1",				"checkBoxGrp",
		"nnLBBlendSrcFactorRGB",	"SRC ALPHA",		"optionMenuGrp",
		"nnLBBlendDstFactorRGB",	"1 - (SRC ALPHA)",	"optionMenuGrp",
		"nnLBBlendFuncSeparate",	"0",				"checkBoxGrp",
		"nnLBBlendSrcFactorA",		"SRC ALPHA",		"optionMenuGrp",
		"nnLBBlendDstFactorA",		"1 - (SRC ALPHA)",	"optionMenuGrp",
		"nnLBBlendConstColor",		"0x00000000",		"textField",
		"nnLBBlendLogicFlag",		"0",				"checkBoxGrp",
		"nnLBBlendLogicOperation",	"NOOP",				"optionMenuGrp",
		"nnLBAlphaTest",			"1",				"checkBoxGrp",
		"nnLBManualSetting",		"0",				"checkBoxGrp",
		"nnLBAlphaTestMode",		"GREATER",			"optionMenuGrp",
		"nnLBManualAlphaRef",		"0",				"intSliderGrp",
		"nnLBZBufferComp",			"1",				"checkBoxGrp",
		"nnLBDepthCompFunction",	"LESS EQUAL",		"optionMenuGrp",
		"nnLBDepthWriting",			"1",				"checkBoxGrp",
		"nnLBRWriting",				"1",				"checkBoxGrp",
		"nnLBGWriting",				"1",				"checkBoxGrp",
		"nnLBBWriting",				"1",				"checkBoxGrp",
		"nnLBAWriting",				"1",				"checkBoxGrp"
	};

	// PSPマテリアル属性フィールドテーブル
	$nnPSPMatFiledTable = {
	//	項目名						初期値				フィールドタイプ
		"nnPSPBlendFlag",			"1",				"checkBoxGrp",
		"nnPSPBlendOperand",		"ADD",				"optionMenuGrp",
		"nnPSPBlendParamA",			"SRC ALPHA",		"optionMenuGrp",
		"nnPSPBlendColorA",			"0x00000000",		"textField",
		"nnPSPBlendParamB",			"1 - (SRC ALPHA)",	"optionMenuGrp",
		"nnPSPBlendColorB",			"0x00000000",		"textField",
		"nnPSPBlendLogic",			"0",				"checkBoxGrp",
		"nnPSPBlendLogicOperand",	"NOOP",				"optionMenuGrp",
		"nnPSPAlphaTest",			"1",				"checkBoxGrp",
		"nnPSPAlphaTestFunc",		"GREATER",			"optionMenuGrp",
		"nnPSPManualAlphaTestRef",	"0",				"checkBoxGrp",
		"nnPSPAlphaTestRef",		"0",				"intSliderGrp",
		"nnPSPDepthTest",			"1",				"checkBoxGrp",
		"nnPSPDepthTestFunc",		"GREATER",			"optionMenuGrp",
		"nnPSPPixelMask",			"0x00000000",		"textField",
		"nnPSPAlphaTestMask",		"0x00000000",		"textField",
		"nnPSPDepthTestMask",		"1",				"checkBoxGrp"
	};

	// PSPテクスチャ属性フィールドテーブル
	$nnPSPTexFiledTable = {

	//	項目名						初期値１					フィールドタイプ
		"nnPSPBlendMode",			"MODULATE",					"optionMenuGrp",
		"nnPSPTexEnvColor",			"0x00000000",				"textField",
		"nnPSPEnviromentMap",		"0",						"checkBoxGrp",
		"nnPSPSeparateSpecular",	"0",						"checkBoxGrp",
		"nnPSPColorDouble",			"0",						"checkBoxGrp",
		"nnPSPWrapTypeU",			"AUTO",						"optionMenuGrp",
		"nnPSPWrapTypeV",			"REPEAT",					"optionMenuGrp",
		"nnPSPLODType",				"REPEAT",					"optionMenuGrp",
		"nnPSPLODOffset",			"0.0",						"floatSliderGrp",
		"nnPSPLODSlope",			"0.3",						"floatSliderGrp",
		"nnPSPLODMaxLevel",			"0",						"intSliderGrp"
/*************
	//	項目名						初期値１				初期値２				フィールドタイプ
		"nnPSPBlendMode",			"MODULATE",				"DECAL",				"optionMenuGrp",
		"nnPSPTexEnvColor",			"0x00000000",			"0x00000000",			"textField",
		"nnPSPEnviromentMap",		"0",					"0",					"checkBoxGrp",
		"nnPSPSeparateSpecular",	"0",					"0",					"checkBoxGrp",
		"nnPSPColorDouble",			"0",					"0",					"checkBoxGrp",
		"nnPSPWrapTypeU",			"AUTO",					"AUTO",					"optionMenuGrp",
		"nnPSPWrapTypeV",			"AUTO",					"AUTO",					"optionMenuGrp",
		"nnPSPLODType",				"AUTO",					"AUTO",					"optionMenuGrp",
		"nnPSPLODOffset",			"0.0",					"0.0",					"floatSliderGrp",
		"nnPSPLODSlope",			"0.3",					"0.3",					"floatSliderGrp",
		"nnPSPLODMaxLevel",			"0.3",					"0.3",					"intSliderGrp"
*************/
	};
}
//---------------------------------------------------------------------------//
//  関数名 : mtnCalcLayoutSize
//  機　能 : レイアウト用のサイズの計算。
//  書　式 : global proc mtnCalcLayoutSize()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : レイアウト用のサイズの計算します。
//---------------------------------------------------------------------------
global proc mtnCalcLayoutSize()
{
	// window
	global int $nnMainWindowWidth;
	global int $nnMainWindowHeight;
	// layout
	global int $nnMainLayoutWidth;
	global int $nnMainLayoutHeight;
	global int $nnLayoutWidth;
	global int $nnCommonLayoutHeight;
	global int $nnPS2LayoutHeight;
	global int $nnGCLayoutHeight;
	global int $nnXBLayoutHeight;
	// rowLayout
	global int $nnItemColPos;
	global int $nnUpdateChkboxColPos;
	global int $nnUnitColPos1;
	global int $nnUnitColPos2;
	global int $nnOutputTypeColPos1;
	global int $nnOutputTypeColPos2;
	global int $nnOutputTypeColPos3;
	global int $nnColumWidth2;
	global int $nnColumWidth3;

	global int $nnLabelWidth;
	global int $nnFieldWidth;

	global int $nnTexUnitColPos1;
	global int $nnTexUnitColPos2;
	global int $nnTexLayoutWidth;

	global int $nnTexItemColPos;
	global int $nnTexLabelWidth;
	global int $nnTexFieldWidth;
	global int $nnTexUpdateChkboxColPos;

	global int $nnTexColumWidth2;
	global int $nnTexColumWidth3;

	$nnMainLayoutWidth			= $nnMainWindowWidth - 50;
	$nnMainLayoutHeight			= $nnMainWindowHeight - 200;
	$nnLayoutWidth				= $nnMainLayoutWidth - 20;

	$nnUpdateChkboxColPos		= $nnLayoutWidth - $nnItemColPos;

	$nnTexUnitColPos1			= $nnUnitColPos1 - 12;
	$nnTexUnitColPos2			= $nnUnitColPos2 - 10;
	$nnTexLayoutWidth			= $nnLayoutWidth - 10;

	$nnTexItemColPos			= $nnItemColPos - 11;
	$nnTexLabelWidth			= $nnLabelWidth - 10;
	$nnTexFieldWidth			= $nnItemColPos - $nnTexLabelWidth - 10;
	$nnTexUpdateChkboxColPos	= $nnTexLayoutWidth - $nnItemColPos - 20;

	$nnColumWidth3 = ($nnItemColPos-($nnLabelWidth+$nnColumWidth2))/2;

	$nnTexColumWidth3 = ($nnTexItemColPos-($nnTexLabelWidth+$nnTexColumWidth2))/2;

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutMaterialAttribute
//  機　能 : AllMaterialAttributeマテリアル属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutMaterialAttribute( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : AllMaterialAttributeマテリアル属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutMaterialAttribute( string $parent )
{
	global int	$nnMainLayoutWidth;
	global int	$nnMainLayoutHeight;
	int			$nnps2  = mtnPS2GetPluginInfoMayaNNExporter();
	int			$nngc   = mtnGCGetPluginInfoMayaNNExporter();
	int			$nnxb   = mtnXBGetPluginInfoMayaNNExporter();
	int			$nnlb   = mtnLBGetPluginInfoMayaNNExporter();
	int			$nnpsp  = mtnPSPGetPluginInfoMayaNNExporter();
	int			$nnx360 = mtnXENONGetPluginInfoMayaNNExporter();
	int			$nnps3  = mtnPS3GetPluginInfoMayaNNExporter();
	int 		$nndxg2 = mtnDXG2GetPluginInfoMayaNNExporter();
	if( $nnx360 || $nnps3 || $nndxg2 )	$nnlb = true;

	setParent $parent;

	// frameLayout
	frameLayout
		-width			$nnMainLayoutWidth
		-height			$nnMainLayoutHeight
		-label			"NN Material Attribute"
		MTN_AllMaterialAttributeFrameLayout;
	// scrollLayout
	scrollLayout
		-width			$nnMainLayoutWidth
		-height			$nnMainLayoutHeight
		MTN_AllMaterialAttributeScrollLayout;

	formLayout MTN_AllMaterialAttributeFormLayout;
	setParent ..;

	mtnMakeLayoutOutputType( "MTN_AllMaterialAttributeFormLayout" );
	mtnMakeLayoutCommonMaterial( "MTN_AllMaterialAttributeFormLayout" );
	mtnMakeLayoutPS2Material( "MTN_AllMaterialAttributeFormLayout" );
	mtnMakeLayoutGCMaterial( "MTN_AllMaterialAttributeFormLayout" );
	mtnMakeLayoutXBMaterial( "MTN_AllMaterialAttributeFormLayout" );
	mtnMakeLayoutLBMaterial( "MTN_AllMaterialAttributeFormLayout" );
	mtnMakeLayoutPSPMaterial( "MTN_AllMaterialAttributeFormLayout" );

	formLayout
		-edit
		// MTN_CommonMaterialLayout
		-attachForm		MTN_OutputTypeLayout 			top		5
		-attachForm		MTN_OutputTypeLayout 			left	5
		-attachNone		MTN_OutputTypeLayout 			bottom
		-attachForm		MTN_OutputTypeLayout 			right	5
		// MTN_CommonMaterialLayout
		-attachControl	MTN_CommonMaterialLayout		top		5	MTN_OutputTypeLayout
		-attachForm		MTN_CommonMaterialLayout 		left	5
		-attachNone		MTN_CommonMaterialLayout 		bottom
		-attachForm		MTN_CommonMaterialLayout 		right	5
		MTN_AllMaterialAttributeFormLayout;

	if( $nnps2 ) {
		formLayout
			-edit
			// MTN_PS2MaterialLayout
			-attachControl	MTN_PS2MaterialLayout	top		5	MTN_CommonMaterialLayout
			-attachForm		MTN_PS2MaterialLayout	left	5
			-attachNone		MTN_PS2MaterialLayout	bottom
			-attachForm		MTN_PS2MaterialLayout	right	5
			MTN_AllMaterialAttributeFormLayout;
		if( $nngc ) {
			formLayout
				-edit
				// MTN_GCMaterialLayout
				-attachControl	MTN_GCMaterialLayout	top		5	MTN_PS2MaterialLayout
				-attachForm		MTN_GCMaterialLayout	left	5
				-attachNone		MTN_GCMaterialLayout	bottom
				-attachForm		MTN_GCMaterialLayout	right	5
				MTN_AllMaterialAttributeFormLayout;
			if( $nnxb ) {
				formLayout
					-edit
					// MTN_XBMaterialLayout
					-attachControl	MTN_XBMaterialLayout	top		5	MTN_GCMaterialLayout
					-attachForm		MTN_XBMaterialLayout	left	5
					-attachNone		MTN_XBMaterialLayout	bottom
					-attachForm		MTN_XBMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
			}
			if( $nnlb ) {
				formLayout
					-edit
					// MTN_LBMaterialLayout
					-attachControl	MTN_LBMaterialLayout	top		5	MTN_XBMaterialLayout
					-attachForm		MTN_LBMaterialLayout	left	5
					-attachNone		MTN_LBMaterialLayout	bottom
					-attachForm		MTN_LBMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
			}
			if( $nnpsp ) {
				formLayout
					-edit
					// MTN_PSPMaterialLayout
					-attachControl	MTN_PSPMaterialLayout	top		5	MTN_LBMaterialLayout
					-attachForm		MTN_PSPMaterialLayout	left	5
					-attachNone		MTN_PSPMaterialLayout	bottom
					-attachForm		MTN_PSPMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
			}
		}
		else if( $nnxb ){
			formLayout
				-edit
				// MTN_XBMaterialLayout
				-attachControl	MTN_XBMaterialLayout	top		5	MTN_PS2MaterialLayout
				-attachForm		MTN_XBMaterialLayout	left	5
				-attachNone		MTN_XBMaterialLayout	bottom
				-attachForm		MTN_XBMaterialLayout	right	5
				MTN_AllMaterialAttributeFormLayout;
			if( $nnlb ) {
				formLayout
					-edit
					// MTN_LBMaterialLayout
					-attachControl	MTN_LBMaterialLayout	top		5	MTN_XBMaterialLayout
					-attachForm		MTN_LBMaterialLayout	left	5
					-attachNone		MTN_LBMaterialLayout	bottom
					-attachForm		MTN_LBMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
			}
			if( $nnpsp ) {
				formLayout
					-edit
					// MTN_PSPMaterialLayout
					-attachControl	MTN_PSPMaterialLayout	top		5	MTN_LBMaterialLayout
					-attachForm		MTN_PSPMaterialLayout	left	5
					-attachNone		MTN_PSPMaterialLayout	bottom
					-attachForm		MTN_PSPMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
			}
		}
		else if( $nnlb ){
			formLayout
				-edit
				// MTN_LBMaterialLayout
				-attachControl	MTN_LBMaterialLayout	top		5	MTN_PS2MaterialLayout
				-attachForm		MTN_LBMaterialLayout	left	5
				-attachNone		MTN_LBMaterialLayout	bottom
				-attachForm		MTN_LBMaterialLayout	right	5
				MTN_AllMaterialAttributeFormLayout;
			if( $nnpsp ) {
				formLayout
					-edit
					// MTN_PSPMaterialLayout
					-attachControl	MTN_PSPMaterialLayout	top		5	MTN_LBMaterialLayout
					-attachForm		MTN_PSPMaterialLayout	left	5
					-attachNone		MTN_PSPMaterialLayout	bottom
					-attachForm		MTN_PSPMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
			}
		}
		else if( $nnpsp ){
			formLayout
				-edit
				// MTN_PSPMaterialLayout
				-attachControl	MTN_PSPMaterialLayout	top		5	MTN_PS2MaterialLayout
				-attachForm		MTN_PSPMaterialLayout	left	5
				-attachNone		MTN_PSPMaterialLayout	bottom
				-attachForm		MTN_PSPMaterialLayout	right	5
				MTN_AllMaterialAttributeFormLayout;
		}
	}
	else {
		if( $nngc ) {
			formLayout
				-edit
				// MTN_GCMaterialLayout
				-attachControl	MTN_GCMaterialLayout	top		5	MTN_CommonMaterialLayout
				-attachForm		MTN_GCMaterialLayout	left	5
				-attachNone		MTN_GCMaterialLayout	bottom
				-attachForm		MTN_GCMaterialLayout	right	5
				MTN_AllMaterialAttributeFormLayout;
			if( $nnxb ) {
				formLayout
					-edit
					// MTN_XBMaterialLayout
					-attachControl	MTN_XBMaterialLayout	top		5	MTN_GCMaterialLayout
					-attachForm		MTN_XBMaterialLayout	left	5
					-attachNone		MTN_XBMaterialLayout	bottom
					-attachForm		MTN_XBMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
				if( $nnlb ) {
					formLayout
						-edit
						// MTN_LBMaterialLayout
						-attachControl	MTN_LBMaterialLayout	top		5	MTN_XBMaterialLayout
						-attachForm		MTN_LBMaterialLayout	left	5
						-attachNone		MTN_LBMaterialLayout	bottom
						-attachForm		MTN_LBMaterialLayout	right	5
						MTN_AllMaterialAttributeFormLayout;
				}
				if( $nnpsp ) {
					formLayout
						-edit
						// MTN_PSPMaterialLayout
						-attachControl	MTN_PSPMaterialLayout	top		5	MTN_LBMaterialLayout
						-attachForm		MTN_PSPMaterialLayout	left	5
						-attachNone		MTN_PSPMaterialLayout	bottom
						-attachForm		MTN_PSPMaterialLayout	right	5
						MTN_AllMaterialAttributeFormLayout;
				}
			}
			else if( $nnlb ) {
				formLayout
					-edit
					// MTN_LBMaterialLayout
					-attachControl	MTN_LBMaterialLayout	top		5	MTN_GCMaterialLayout
					-attachForm		MTN_LBMaterialLayout	left	5
					-attachNone		MTN_LBMaterialLayout	bottom
					-attachForm		MTN_LBMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
				if( $nnpsp ) {
					formLayout
						-edit
						// MTN_PSPMaterialLayout
						-attachControl	MTN_PSPMaterialLayout	top		5	MTN_LBMaterialLayout
						-attachForm		MTN_PSPMaterialLayout	left	5
						-attachNone		MTN_PSPMaterialLayout	bottom
						-attachForm		MTN_PSPMaterialLayout	right	5
						MTN_AllMaterialAttributeFormLayout;
				}
			}
			else if( $nnpsp ){
				formLayout
					-edit
					// MTN_PSPMaterialLayout
					-attachControl	MTN_PSPMaterialLayout	top		5	MTN_GCMaterialLayout
					-attachForm		MTN_PSPMaterialLayout	left	5
					-attachNone		MTN_PSPMaterialLayout	bottom
					-attachForm		MTN_PSPMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
			}
		}
		else if( $nnxb ){
			formLayout
				-edit
				// MTN_XBMaterialLayout
				-attachControl	MTN_XBMaterialLayout	top		5	MTN_CommonMaterialLayout
				-attachForm		MTN_XBMaterialLayout	left	5
				-attachNone		MTN_XBMaterialLayout	bottom
				-attachForm		MTN_XBMaterialLayout	right	5
				MTN_AllMaterialAttributeFormLayout;
			if( $nnlb ) {
				formLayout
					-edit
					// MTN_LBMaterialLayout
					-attachControl	MTN_LBMaterialLayout	top		5	MTN_XBMaterialLayout
					-attachForm		MTN_LBMaterialLayout	left	5
					-attachNone		MTN_LBMaterialLayout	bottom
					-attachForm		MTN_LBMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
				if( $nnpsp ) {
					formLayout
						-edit
						// MTN_PSPMaterialLayout
						-attachControl	MTN_PSPMaterialLayout	top		5	MTN_LBMaterialLayout
						-attachForm		MTN_PSPMaterialLayout	left	5
						-attachNone		MTN_PSPMaterialLayout	bottom
						-attachForm		MTN_PSPMaterialLayout	right	5
						MTN_AllMaterialAttributeFormLayout;
				}
			}
			else if( $nnpsp ){
				formLayout
					-edit
					// MTN_PSPMaterialLayout
					-attachControl	MTN_PSPMaterialLayout	top		5	MTN_XBMaterialLayout
					-attachForm		MTN_PSPMaterialLayout	left	5
					-attachNone		MTN_PSPMaterialLayout	bottom
					-attachForm		MTN_PSPMaterialLayout	right	5
					MTN_AllMaterialAttributeFormLayout;
			}
		}
		else if( $nnlb ){
			formLayout
				-edit
				// MTN_LBMaterialLayout
				-attachControl	MTN_LBMaterialLayout	top		5	MTN_CommonMaterialLayout
				-attachForm		MTN_LBMaterialLayout	left	5
				-attachNone		MTN_LBMaterialLayout	bottom
				-attachForm		MTN_LBMaterialLayout	right	5
				MTN_AllMaterialAttributeFormLayout;
				if( $nnpsp ) {
					formLayout
						-edit
						// MTN_PSPMaterialLayout
						-attachControl	MTN_PSPMaterialLayout	top		5	MTN_LBMaterialLayout
						-attachForm		MTN_PSPMaterialLayout	left	5
						-attachNone		MTN_PSPMaterialLayout	bottom
						-attachForm		MTN_PSPMaterialLayout	right	5
						MTN_AllMaterialAttributeFormLayout;
				}
		}
		else if( $nnpsp ){
			formLayout
				-edit
				// MTN_PSPMaterialLayout
				-attachControl	MTN_PSPMaterialLayout	top		5	MTN_CommonMaterialLayout
				-attachForm		MTN_PSPMaterialLayout	left	5
				-attachNone		MTN_PSPMaterialLayout	bottom
				-attachForm		MTN_PSPMaterialLayout	right	5
				MTN_AllMaterialAttributeFormLayout;
		}
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutOutputType
//  機　能 : 出力タイプレイアウトの定義。
//  書　式 : global proc mtnMakeLayoutOutputType( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : 出力タイプレイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutOutputType( string $parent )
{
	global int $nnLayoutWidth;
	global int $nnOutputTypeColPos1;
	global int $nnOutputTypeColPos2;
	global int $nnOutputTypeColPos3;

	setParent $parent;

	// frameLayout [[
	frameLayout
		-width			$nnLayoutWidth
		-height			50
		-marginWidth	5
		-marginHeight	5
		-label 			""
		-borderVisible	false
		MTN_OutputTypeLayout;

		// columnLayout
		columnLayout
			MTN_OutputTypeLayout;
			// rowLayout [[
			rowLayout
				-numberOfColumns	2;
				radioButtonGrp
					-label					"Update Target"
					-columnOffset3			0 15 0
					-columnWidth3 			$nnOutputTypeColPos1 $nnOutputTypeColPos2 $nnOutputTypeColPos3
					-numberOfRadioButtons	2
					-labelArray2			"  Selected Material  " "  All  Material  "
					-select 				1
					MTN_OutputType;
			// ]] rowLayout
			setParent ..;
		// ]] columnLayout
		setParent ..;
	setParent ..;
}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutCommonMaterial
//  機　能 : AllMaterialAttribute共通マテリアル属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutCommonMaterial( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : AllMaterialAttribute共通マテリアル属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutCommonMaterial( string $parent )
{
	global int		$nnLayoutWidth;
	global int		$nnCommonLayoutHeight;
	global int		$nnItemColPos;
	global int		$nnUpdateChkboxColPos;
	global int		$nnUnitColPos1;
	global int		$nnUnitColPos2;
	global string	$nnUnitChar;
	global int		$nnLabelWidth;
	global int		$nnFieldWidth;
	global int		$nnColumWidth2;
	global int		$nnColumWidth3;
	global string	$nnCommonMatFiledTable[];

	int $nnxb		= mtnXBGetPluginInfoMayaNNExporter();

	setParent $parent;

	// frameLayout [[
	frameLayout
		-width			$nnLayoutWidth
		-height			$nnCommonLayoutHeight
		-collapsable	true
//		-collapse		false
		-marginWidth	5
		-marginHeight	5
		-label 			"Common Material Attributes"
		-borderVisible	true
		-borderStyle	"etchedIn"
		MTN_CommonMaterialLayout;

		// columnLayout
		columnLayout
			MTN_CommonMaterialCommonMaterialLayout;
//----------------------------------------------------------------------------
//			Unit
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnUnitColPos1 $nnUnitColPos2;
				text	-label		"";
				text	-label		$nnUnitChar;
			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnDoubleSidePolygon
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label 			"Double Side Polygon"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_DoubleSidePolygon;
					menuItem -label "NONE"				-data 0;
					menuItem -label "DOUBLE SIDE"		-data 1;
					menuItem -label "DUPLICATE"			-data 2;
					menuItem -label "2 SIDE LIGHTINNG"	-data 3 nn2SideLightingMenuItem;
				setParent -menu ..;

				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value			"NONE"
					MTN_DoubleSidePolygon;

				// Xbox以外で2 SIDE LIGHTINNGを選択時は、DUPLICATEに設定
				if( !$nnxb ) {
					if( `optionMenuGrp -query -select MTN_DoubleSidePolygon` == 4 ) {
						mtnSetInputFieldData( $nnCommonMatFiledTable[0],
										 	  2,
										 	  $nnCommonMatFiledTable[2] );
					}
				}

				menuItem -edit -enable $nnxb nn2SideLightingMenuItem;

				mtnCreateUpdateCheckBox( "nnDoubleSidePolygon", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnIgnoreLight
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label 				"Ignore Light"
					-columnWidth2 		$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					MTN_IgnoreLight;

				mtnCreateUpdateCheckBox( "nnIgnoreLight", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnDisableFogging
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label 				"Disable Fogging"
					-columnWidth2 		$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					MTN_DisableFogging;

				mtnCreateUpdateCheckBox( "nnDisableFogging", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnAlphaFlag
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label 			"Alpha Mode"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_AlphaFlag;
					menuItem -label "AUTO"			-data 0;
					menuItem -label "OPAQUE"		-data 1;
					menuItem -label "TRANSPARENT"	-data 2;
					menuItem -label "PUNCH THROUGH"	-data 3;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					MTN_AlphaFlag;

				mtnCreateUpdateCheckBox( "nnAlphaFlag", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnSpecularType
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label 			"Specular Type"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_SpecularType;
					menuItem -label "AUTO"	-data 0;
					menuItem -label "ON"	-data 1;
					menuItem -label "OFF"	-data 2;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					MTN_SpecularType;

				mtnCreateUpdateCheckBox( "nnSpecularType", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
// 			nnSortKey
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				intFieldGrp
					-label			"Sort Key"
					-columnWidth2 	$nnLabelWidth 60
					MTN_SortKey;
				// デフォルト値をセット
				intFieldGrp
					-edit
					-value1 100
					MTN_SortKey;

				mtnCreateUpdateCheckBox( "nnSortKey", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnCallBack
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label 				"Call Back"
					-columnWidth2 		$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					MTN_CallBack;

				mtnCreateUpdateCheckBox( "nnCallBack", false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
// 			nnUserData
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				int	$textColumWidth3 = $nnItemColPos - $nnLabelWidth - $nnColumWidth2;
				rowLayout
					-numberOfColumns	3
					-columnWidth3		$nnLabelWidth $nnColumWidth2 $textColumWidth3
					-columnOffset3		0 5 0
					-columnAlign3		right center left
					MTN_UserDataRowLayout;
					text
						-label "User Data";
					textField
						-text	"0x00000000"
						-changeCommand ( "mtnInputDataNumericCheck nnUserData" )
						-receiveFocusCommand ( "mtnTempInputDataSave nnUserData" )
						MTN_UserData;
					text
						-label "HEX ( 0x======== ) / DEC ( ======== )";
				setParent ..;

				mtnCreateUpdateCheckBox( "nnUserData", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnSpecularLevel
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				floatSliderGrp
					-label			"Specular Level"
					-columnWidth3	$nnLabelWidth $nnColumWidth2 $nnColumWidth3
					-minValue		0
					-maxValue		1
					-precision 		6
					-value			0.0
					MTN_SpecularLevel;

				mtnCreateUpdateCheckBox( "nnSpecularLevel", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnSpecularGlossiness
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				floatSliderGrp
					-label			"Specular Glossiness"
					-columnWidth3	$nnLabelWidth $nnColumWidth2 $nnColumWidth3
					-minValue		0
					-maxValue		1
					-precision 		6
					-value			0.0
					MTN_SpecularGlossiness;

				mtnCreateUpdateCheckBox( "nnSpecularGlossiness", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnVertexColor
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label 				"Vertex Color"
					-columnWidth2 		$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					MTN_VertexColor;

				mtnCreateUpdateCheckBox( "nnVertexColor", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			End
//----------------------------------------------------------------------------
		// ]] columnLayout
		setParent ..;
		// ]] frameLayout
	setParent ..;
}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutPS2Material
//  機　能 : AllMaterialAttributemtn PlayStation2マテリアル属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutPS2Material( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : AllMaterialAttribute PlayStation2マテリアル属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutPS2Material( string $parent )
{
	global int $nnLayoutWidth;
	global int $nnPS2LayoutHeight;
	global int $nnItemColPos;
	global int $nnUpdateChkboxColPos;
	global int $nnUnitColPos1;
	global int $nnUnitColPos2;
	global string $nnUnitChar;
	global int $nnLabelWidth;
	global int $nnFieldWidth;
	global int $nnColumWidth2;
	global int $nnColumWidth3;

	setParent $parent;

	// frameLayout [[
	frameLayout
		-width			$nnLayoutWidth
//		-height			$nnPS2LayoutHeight
		-collapsable	true
//		-collapse		true
		-marginWidth	5
		-marginHeight	5
		-label 			"PlayStation2 Material Attributes"
		-borderVisible	true
		-borderStyle	"etchedIn"
		MTN_PS2MaterialLayout;

		// columnLayout
		columnLayout
			MTN_PS2MaterialColumnLayout;
//----------------------------------------------------------------------------
//			Unit
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnUnitColPos1 $nnUnitColPos2;
				text	-label		"";
				text	-label		$nnUnitChar;
			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2TextureAlpha0
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				intSliderGrp
					-label			"Texture Alpha Palette 0"
					-columnWidth3	$nnLabelWidth $nnColumWidth2 $nnColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					MTN_PS2TextureAlpha0;

				mtnCreateUpdateCheckBox( "nnPS2TextureAlpha0", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//		 	nnPS2TextureAlpha1
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				intSliderGrp
					-label			"Texture Alpha Palette 1"
					-columnWidth3	$nnLabelWidth $nnColumWidth2 $nnColumWidth3
					-minValue		0
					-maxValue		255
					-value			128
					MTN_PS2TextureAlpha1;

				mtnCreateUpdateCheckBox( "nnPS2TextureAlpha1", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			End
//----------------------------------------------------------------------------
		// ]] columnLayout
		setParent ..;
	// ]] frameLayout
	setParent ..;

	mtnMakeLayoutTextureAttributePS2( "MTN_PS2MaterialColumnLayout" );

	// GUIの表示設定を変更
	int $nnps2 = mtnPS2GetPluginInfoMayaNNExporter();
	frameLayout
		-edit
		-collapse		true
		-visible		$nnps2
		MTN_PS2MaterialLayout;

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutTextureAttributePS2
//  機　能 : PlayStation2用テクスチャ属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutTextureAttributePS2( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : PlayStation2用テクスチャ属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutTextureAttributePS2( string $parent )
{
	global int $nnMainLayoutWidth;
	global int $nnMainLayoutHeight;

	setParent $parent;

	formLayout MTN_TextureAttributePS2FormLayout;
	setParent ..;

	int		$i;
	for( $i=1; $i<3; $i++) {
		mtnMakeLayoutTextureAttributePS2Layout( "MTN_TextureAttributePS2FormLayout", $i );
	}

	formLayout
		-edit
		// MTN_TextureAttribute1Layout_PS2
		-attachForm		MTN_PS2TextureAttribute1Layout 	top		5
		-attachForm		MTN_PS2TextureAttribute1Layout 	left	5
		-attachNone		MTN_PS2TextureAttribute1Layout 	bottom
		-attachForm		MTN_PS2TextureAttribute1Layout 	right	5
		// MTN_PS2TextureAttribute2Layout
		-attachControl	MTN_PS2TextureAttribute2Layout	top		5	MTN_PS2TextureAttribute1Layout
		-attachForm		MTN_PS2TextureAttribute2Layout 	left	5
		-attachNone		MTN_PS2TextureAttribute2Layout 	bottom
		-attachForm		MTN_PS2TextureAttribute2Layout 	right	5
		MTN_TextureAttributePS2FormLayout;

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutTextureAttributePS2Layout
//  機　能 : PlayStation2用テクスチャ属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutTextureAttributePS2Layout( string $parent, int $texNo )
//  引　数 : string $parent : 親のレイアウト名
//         : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : PlayStation2用テクスチャ属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutTextureAttributePS2Layout( string $parent, int $texNo )
{
	global int $nnTexLayoutWidth;
	global int $nnPS2TexLayoutHeight;
	global int $nnTexItemColPos;
	global int $nnTexLabelWidth;
	global int $nnTexFieldWidth;
	global int $nnTexUpdateChkboxColPos;

	global int $nnTexUnitColPos1;
	global int $nnTexUnitColPos2;
	global string $nnUnitChar;
	global int $nnTexColumWidth2;
	global int $nnTexColumWidth3;

	string $frameLayoutName;
	string $attrName;

	string $labelTable[] = {
		"PlayStation2 Texture1(Bottom) Attributes",
		"PlayStation2 Texture2(Top) Attributes"
	};

	setParent $parent;

	$frameLayoutName	= 	"MTN_PS2TextureAttribute";
	$frameLayoutName	+=	$texNo;
	$frameLayoutName	+=	"Layout";

	// frameLayout [[
	frameLayout
		-width			$nnTexLayoutWidth
//		-height			$nnPS2TexLayoutHeight
		-collapsable	true
//		-collapse		true
		-marginWidth	5
		-marginHeight	5
		-label 			$labelTable[$texNo-1]
		-borderVisible	true
		-borderStyle	"etchedIn"
		$frameLayoutName;

		$attrName	= 	"MTN_PS2TextureAttribute";
		$attrName	+=	$texNo;
		$attrName	+=	"ColumnLayout";

		// columnLayout
		columnLayout
			$attrName;
//----------------------------------------------------------------------------
//			Unit
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexUnitColPos1 $nnTexUnitColPos2;
				text	-label		"";
				text	-label		$nnUnitChar;
			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2BlendMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2BlendMode";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Blend Mode"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "AUTO"			-data 0;
					menuItem -label "MODULATE"		-data 1;
					menuItem -label "DECAL"			-data 2;
					menuItem -label "HIGHLIGHT"		-data 3;
					menuItem -label "HIGHLIGHT2"	-data 4;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2BlendMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPS2UsePalette
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2UsePalette";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Use Palette"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnPS2UsePaletteStatusEvent " + $texNo )
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2UsePalette"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2PaletteBank
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2PaletteBank";
				$attrName	+=	$texNo;

				intSliderGrp
					-label			"Palette Bank"
					-columnWidth3	$nnTexLabelWidth $nnTexColumWidth2 $nnTexColumWidth3
					-minValue		0
					-maxValue		63
					-value			0
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2PaletteBank"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPS2EnviromentMap
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2EnviromentMap";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Enviroment Map"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2EnviromentMap"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPS2UClamp
//----------------------------------------------------------------------------
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2UClamp";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Wrap Type U"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "AUTO"		-data 0;
					menuItem -label "CLAMP"		-data 1;
					menuItem -label "REPEAT"	-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2UClamp"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2VClamp
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2VClamp";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Wrap Type V"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "AUTO"		-data 0;
					menuItem -label "CLAMP"		-data 1;
					menuItem -label "REPEAT"	-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2VClamp"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPS2TexColComponent
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2TexColComponent";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Texture Color Component"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "AUTO"	-data 0;
					menuItem -label "RGB"	-data 1;
					menuItem -label "RGBA"	-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2TexColComponent"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
// 			nnPS2AlphaBlendingPreset
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2AlphaBlendingPreset";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Alpha Blending Preset"
					-changeCommand ( "mtnPS2SetAlphaBlendingFromPreset " + $texNo )
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "CUSTOM"		-data 0;
					menuItem -label "NOP"			-data 1;
					menuItem -label "INTER_AS"		-data 2;
					menuItem -label "INTER_AD"		-data 3;
					menuItem -label "INTER_FIX"		-data 4;
					menuItem -label "RINTER_AS"		-data 5;
					menuItem -label "RINTER_AD"		-data 6;
					menuItem -label "RINTER_FIX"	-data 7;
					menuItem -label "ADD"			-data 8;
					menuItem -label "ADD_CS_FIX"	-data 9;
					menuItem -label "ADD_CD_FIX"	-data 10;
					menuItem -label "ADD_CS_AS"		-data 11;
					menuItem -label "ADD_CD_AS"		-data 12;
					menuItem -label "ADD_CS_AD"		-data 13;
					menuItem -label "ADD_CD_AD"		-data 14;
					menuItem -label "SUB_CS"		-data 15;
					menuItem -label "SUB_CD"		-data 16;
					menuItem -label "SUB_CS_FIX"	-data 17;
					menuItem -label "SUB_CD_FIX"	-data 18;
					menuItem -label "SUB_CS_AS"		-data 19;
					menuItem -label "SUB_CD_AS"		-data 20;
					menuItem -label "SUB_CS_AD"		-data 21;
					menuItem -label "SUB_CD_AD"		-data 22;
					menuItem -label "MUL_CS_AS"		-data 23;
					menuItem -label "MUL_CS_AD"		-data 24;
					menuItem -label "MUL_CS_FIX"	-data 25;
					menuItem -label "MUL_CD_AS"		-data 26;
					menuItem -label "MUL_CD_AD"		-data 27;
					menuItem -label "MUL_CD_FIX"	-data 28;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "INTER_AS"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2AlphaBlendingPreset"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2AlphaBlendingA
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2AlphaBlendingA";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Alpha Blending A"
					-changeCommand ( "mtnPS2SetPresetFromAlphaBlending " + $texNo )
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "SRC COLOR"		-data 0;
					menuItem -label "DEST COLOR"	-data 1;
					menuItem -label "ZERO"			-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "SRC COLOR"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2AlphaBlendingA"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2AlphaBlendingB
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2AlphaBlendingB";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Alpha Blending B"
					-changeCommand ( "mtnPS2SetPresetFromAlphaBlending " + $texNo )
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "SRC COLOR"		-data 0;
					menuItem -label "DEST COLOR"	-data 1;
					menuItem -label "ZERO"			-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "DEST COLOR"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2AlphaBlendingB"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2AlphaBlendingC
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2AlphaBlendingC";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Alpha Blending C"
					-changeCommand	( "mtnPS2AlphaBlendingCStatusEvent " + $texNo +";"+"mtnPS2SetPresetFromAlphaBlending " + $texNo)
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "SRC ALPHA"		-data 0;
					menuItem -label "DEST ALPHA"	-data 1;
					menuItem -label "FIX"			-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "SRC ALPHA"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2AlphaBlendingC"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2AlphaBlendingFix
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2AlphaBlendingFix";
				$attrName	+=	$texNo;

				intSliderGrp
					-label			"Alpha Blending Fix"
					-changeCommand ( "mtnPS2SetPresetFromAlphaBlending " + $texNo )
					-columnWidth3	$nnTexLabelWidth $nnTexColumWidth2 $nnTexColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2AlphaBlendingFix"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2AlphaBlendingD
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2AlphaBlendingD";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Alpha Blending D"
					-changeCommand ( "mtnPS2SetPresetFromAlphaBlending " + $texNo )
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "SRC COLOR"  -data 0;
					menuItem -label "DEST COLOR" -data 1;
					menuItem -label "ZERO"		 -data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "DEST COLOR"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2AlphaBlendingD"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
// 			nnPS2ManualColorClamp
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2ManualColorClamp";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Manual Color Clamp"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnPS2ManualColorClampStatusEvent " + $texNo )
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			off
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2ManualColorClamp"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2ColorClampRGB
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2ColorClampRGB";
				$attrName	+=	$texNo;

				intSliderGrp
					-label			"Color Clamp RGB"
					-columnWidth3	$nnTexLabelWidth $nnTexColumWidth2 $nnTexColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2ColorClampRGB"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2ColorClampA
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2ColorClampA";
				$attrName	+=	$texNo;

				intSliderGrp
					-label			"Color Clamp A"
					-columnWidth3	$nnTexLabelWidth $nnTexColumWidth2 $nnTexColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2ColorClampA"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPS2AlphaTest
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2AlphaTest";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Alpha Test"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnPS2AlphaTestStatusEvent " + $texNo )
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			on
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2AlphaTest"+$texNo, false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//	 		nnPS2ManualAlphaRef
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2ManualAlphaRef";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Manual Alpha Reference Data"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnPS2ManualAlphaRefStatusEvent " + $texNo )
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			off
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2ManualAlphaRef"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2AlphaTestMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2AlphaTestMode";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Alpha Test Mode"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "ALWAYS"		-data 1;
					menuItem -label "LESS"			-data 2;
					menuItem -label "LESS EQUAL"	-data 3;
					menuItem -label "EQUAL"			-data 4;
					menuItem -label "GREATER EQUAL"	-data 5;
					menuItem -label "GREATER"		-data 6;
					menuItem -label "NOT EQUAL"		-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "GREATER"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2AlphaTestMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//	 		nnPS2AlphaRefData
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2AlphaRefData";
				$attrName	+=	$texNo;

				intSliderGrp
					-label			"Alpha Reference Data"
					-columnWidth3	$nnTexLabelWidth $nnTexColumWidth2 $nnTexColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2AlphaRefData"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//	 		nnPS2AlphaFailMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2AlphaFailMode";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Alpha Test Mode"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "KEEP"		-data 0;
					menuItem -label "FB_ONLY"	-data 1;
					menuItem -label "ZB_ONLY"	-data 2;
					menuItem -label "RGB_ONLY"	-data 3;
					menuItem -label "AUTO"		-data 4;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2AlphaFailMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPS2DstAlphaTest
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2DstAlphaTest";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Destination Alpha Test"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnPS2DstAlphaTestStatusEvent " + $texNo )
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			off
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2DstAlphaTest"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2DstAlphaTestMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2DstAlphaTestMode";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Alpha Test Mode"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "ALPHA0"	-data 0;
					menuItem -label "ALPHA1"	-data 1;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "ALPHA0"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2DstAlphaTestMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPS2ZBufferTest
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2ZBufferTest";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Z Buffer Test"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnPS2ZBufferTestStatusEvent " + $texNo )
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			on
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2ZBufferTest"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2ZBufferTestMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2ZBufferTestMode";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Z Buffer Test Mode"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "ALWAYS"		-data 1;
					menuItem -label "GREATER EQUAL"	-data 2;
					menuItem -label "GREATER"		-data 3;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "GREATER EQUAL"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2ZBufferTestMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPS2ZBufferUpdate
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2ZBufferUpdate";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Z Buffer Update"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			on
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2ZBufferUpdate"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPS2ManualMipmap
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2ManualMipmap";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Manual Mipmap Parameter"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnPS2ManualMipmapStatusEvent " + $texNo )
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			off
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2ManualMipmap"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPS2MipmapLCM
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2MipmapLCM";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"LCM"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnPS2MipmapLCMStatusEvent " + $texNo )
					$attrName;
					menuItem -label "0"		-data 0;
					menuItem -label "1"		-data 1;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "0"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2MipmapLCM"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPS2MipmapL
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2MipmapL";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"L (LCM=0)"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "0"		-data 0;
					menuItem -label "1"		-data 1;
					menuItem -label "2"		-data 2;
					menuItem -label "3"		-data 3;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "0"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2MipmapL"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPS2MipmapK0
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2MipmapK0";
				$attrName	+=	$texNo;

				intSliderGrp
					-label			"K (LCM=0)"
					-columnWidth3	$nnTexLabelWidth $nnTexColumWidth2 $nnTexColumWidth3
					-minValue		-2048
					-maxValue		2047
					-value			0
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2MipmapK0"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPS2MipmapK1
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PS2MipmapK1";
				$attrName	+=	$texNo;

				intSliderGrp
					-label			"K (LCM=1)"
					-columnWidth3	$nnTexLabelWidth $nnTexColumWidth2 $nnTexColumWidth3
					-minValue		0
					-maxValue		6
					-value			0
					$attrName;

				mtnCreateUpdateCheckBox( "nnPS2MipmapK1"+$texNo, false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			End
//----------------------------------------------------------------------------
		// ]] columnLayout
		setParent ..;
	// ]] frameLayout
	setParent ..;

	// GUIの表示設定を変更
	int $nnps2 = mtnPS2GetPluginInfoMayaNNExporter();
	frameLayout
		-edit
		-collapse		true
		-visible		$nnps2
		$frameLayoutName;

	mtnPS2UsePaletteStatusEvent( $texNo );
	mtnPS2SetAlphaBlendingFromPreset( $texNo );
	mtnPS2AlphaBlendingCStatusEvent( $texNo );
	mtnPS2ManualColorClampStatusEvent( $texNo );
	mtnPS2AlphaTestStatusEvent( $texNo );
	mtnPS2DstAlphaTestStatusEvent( $texNo );
	mtnPS2ZBufferTestStatusEvent( $texNo );
	mtnPS2ManualMipmapStatusEvent( $texNo );
}

//---------------------------------------------------------------------------//
//					PlayStation2テクスチャメニューイベント処理			 	 //
//---------------------------------------------------------------------------//
//---------------------------------------------------------------------------
//  関数名 : mtnPS2UsePaletteStatusEvent
//  機　能 : UsePaletteの状態変化後の処理。
//  書　式 : global proc mtnPS2UsePaletteStatusEvent( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 :  UsePaletteの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2UsePaletteStatusEvent( int $texNo )
{

	string	$usePaletteAttrName		= "nnPS2UsePalette"  + $texNo;
	string	$paletteBankAttrName	= "nnPS2PaletteBank" + $texNo;

	int $value	= (int)(mtnGetFieldData( $usePaletteAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $paletteBankAttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $paletteBankAttrName, $value );
}

//---------------------------------------------------------------------------
//  関数名 : mtnPS2SetAlphaBlendingFromPreset
//  機　能 : AlphaBlendingPresetの状態変化後の処理。
//  書　式 : global proc mtnPS2SetAlphaBlendingFromPreset( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 :  AlphaBlendingPresetの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2SetAlphaBlendingFromPreset( int $texNo )
{
	global string $nnPS2AlphaBlendPresetTable[];
	int $value;

	string	$presetName			= "MTN_PS2AlphaBlendingPreset"	+ $texNo;
	string	$aBlendAName		= "MTN_PS2AlphaBlendingA"		+ $texNo;
	string	$aBlendBName		= "MTN_PS2AlphaBlendingB"		+ $texNo;
	string	$aBlendCName		= "MTN_PS2AlphaBlendingC"		+ $texNo;
	string	$aBlendDName		= "MTN_PS2AlphaBlendingD"		+ $texNo;
	string	$aBlendFixName		= "MTN_PS2AlphaBlendingFix"		+ $texNo;
	string	$aBlendFixAttrName	= "nnPS2AlphaBlendingFix"		+ $texNo;

	string $preset		= mtnGetFieldData( "nnPS2AlphaBlendingPreset"+$texNo, "optionMenuGrp" );
//	string $preset		= `optionMenuGrp -query -value $presetName`;

	// "CUSTOM"なら何もしない
	if( $preset != "CUSTOM" ) {
		int $i;
		for( $i = 6; $i < size($nnPS2AlphaBlendPresetTable); $i += 6 ) {
			// プリセットと一致したら対応するアルファブレンディングの値をセット
			if( $preset == $nnPS2AlphaBlendPresetTable[$i] ) {
				// AlphaBlending Aをセット
				optionMenuGrp -edit -select ((int)$nnPS2AlphaBlendPresetTable[$i+1]+1) $aBlendAName;
				// AlphaBlending Bをセット
				optionMenuGrp -edit -select ((int)$nnPS2AlphaBlendPresetTable[$i+2]+1) $aBlendBName;
				// AlphaBlending Cをセット
				optionMenuGrp -edit -select ((int)$nnPS2AlphaBlendPresetTable[$i+3]+1) $aBlendCName;
				// AlphaBlending Cが"FIX"のばあいはAlphaBlending Fixのenableをtrueにする。
				if( ((int)$nnPS2AlphaBlendPresetTable[$i+3]) == 2 ) {
//					intSliderGrp  -edit -enable true $aBlendFixName;
					mtnSetEnableDataFiled( $aBlendFixAttrName, "intSliderGrp", true );
					// AlphaBlending Fixが"FIX"でなければ、FIX値をセット
					if( ((int)$nnPS2AlphaBlendPresetTable[$i+4]) == -1 ) {
						intSliderGrp  -edit  -value 0 $aBlendFixName;
					}
					else {
						intSliderGrp  -edit  -value ((int)$nnPS2AlphaBlendPresetTable[$i+4]) $aBlendFixName;
					}
					mtnSetEnableUpdateCheckBox( $aBlendFixAttrName, true );
				}
				// AlphaBlending Cが"FIX"でなければAlphaBlending Fixのコントロールのenableをfalseにする。
				else {
					mtnSetEnableDataFiled( $aBlendFixAttrName, "intSliderGrp", false );
					mtnSetEnableUpdateCheckBox( $aBlendFixAttrName, false );
				}
				// AlphaBlending Dをセット
				optionMenuGrp -edit -select ((int)$nnPS2AlphaBlendPresetTable[$i+5]+1) $aBlendDName;
			}
		}
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnPS2SetPresetFromAlphaBlending
//  機　能 : AlphaBlendingの状態変化後の処理。
//  書　式 : global proc mtnPS2SetPresetFromAlphaBlending( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 :  AlphaBlendingの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2SetPresetFromAlphaBlending( int $texNo )
{
	global string $nnPS2AlphaBlendPresetTable[];
	int $value;

	string	$presetName			= "MTN_PS2AlphaBlendingPreset"	+ $texNo;

	int $valueA   = (int)(mtnGetInputFieldData( "nnPS2AlphaBlendingA"+$texNo, 	"optionMenuGrp" ));
	int $valueB   = (int)(mtnGetInputFieldData( "nnPS2AlphaBlendingB"+$texNo, 	"optionMenuGrp" ));
	int $valueC   = (int)(mtnGetInputFieldData( "nnPS2AlphaBlendingC"+$texNo, 	"optionMenuGrp" ));
	int $valueFix = (int)(mtnGetInputFieldData( "nnPS2AlphaBlendingFix"+$texNo,	"intSliderGrp" ));
	int $valueD   = (int)(mtnGetInputFieldData( "nnPS2AlphaBlendingD"+$texNo, 	"optionMenuGrp" ));

	// テーブルのアルファブレンディング値と比較
	for( $i = 6; $i < size($nnPS2AlphaBlendPresetTable); $i += 6 ) {
		// Fix値が"Fix"の時は比較しない
		if( ((int)$nnPS2AlphaBlendPresetTable[$i+4]) == -1 ) {
			if( $valueA == ((int)$nnPS2AlphaBlendPresetTable[$i+1]) &&
				$valueB == ((int)$nnPS2AlphaBlendPresetTable[$i+2]) &&
				$valueC == ((int)$nnPS2AlphaBlendPresetTable[$i+3]) &&
				$valueD == ((int)$nnPS2AlphaBlendPresetTable[$i+5])	) {

				// テーブルと一致したら対応するプリセットをセット
				mtnSetFieldData( "nnPS2AlphaBlendingPreset"+$texNo,
								 $nnPS2AlphaBlendPresetTable[$i],
								 "optionMenuGrp" );
//				optionMenuGrp -edit -value $nnPresetModeTable[$i] $presetName;
				return;
			}
		}
		else {
			if( $valueA   == ((int)$nnPS2AlphaBlendPresetTable[$i+1])	&&
				$valueB   == ((int)$nnPS2AlphaBlendPresetTable[$i+2])	&&
				$valueC   == ((int)$nnPS2AlphaBlendPresetTable[$i+3])	&&
				$valueFix == ((int)$nnPS2AlphaBlendPresetTable[$i+4])	&&
				$valueD   == ((int)$nnPS2AlphaBlendPresetTable[$i+5])	) {

				// テーブルと一致したら対応するプリセットをセット
				mtnSetFieldData( "nnPS2AlphaBlendingPreset"+$texNo,
								 $nnPS2AlphaBlendPresetTable[$i],
								 "optionMenuGrp" );
//				optionMenuGrp -edit -value $nnPresetModeTable[$i] $presetName;
				return;
			}
		}
	}
	// テーブルと一致しなければ"CUSTOM"をセット
	mtnSetFieldData( "nnPS2AlphaBlendingPreset"+$texNo,
					 "CUSTOM",
					 "optionMenuGrp" );
//	optionMenuGrp -edit -value "CUSTOM" $grpName;

}

//---------------------------------------------------------------------------
//  関数名 : mtnPS2AlphaBlendingCStatusEvent
//  機　能 : AlphaBlendingCの状態変化後の処理。
//  書　式 : global proc mtnPS2AlphaBlendingCStatusEvent( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 :  AlphaBlendingCの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2AlphaBlendingCStatusEvent( int $texNo )
{
	string	$alphaBlendCAttrName	= "nnPS2AlphaBlendingC"    + $texNo;
	string	$alphaBlendFixAttrName	= "nnPS2AlphaBlendingFix"  + $texNo;

	string $value	= mtnGetFieldData( $alphaBlendCAttrName, "optionMenuGrp" );

	if( $value == "FIX" ) {
		mtnSetEnableDataFiled( $alphaBlendFixAttrName, "intSliderGrp", true );
		mtnSetEnableUpdateCheckBox( $alphaBlendFixAttrName, true );
	}
	else {
		mtnSetEnableDataFiled( $alphaBlendFixAttrName, "intSliderGrp", false );
		mtnSetEnableUpdateCheckBox( $alphaBlendFixAttrName, false );
	}
}
//---------------------------------------------------------------------------
//  関数名 : mtnPS2ManualColorClampStatusEvent
//  機　能 : ManualColorClampの状態変化後の処理。
//  書　式 : global proc mtnPS2ManualColorClampStatusEvent( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : ManualColorClampの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2ManualColorClampStatusEvent( int $texNo )
{
	string	$manualColorClampAttrName	= "nnPS2ManualColorClamp"	+ $texNo;
	string	$colorRGBClampAttrName		= "nnPS2ColorClampRGB" 		+ $texNo;
	string	$colorAlampAttrName			= "nnPS2ColorClampA" 		+ $texNo;

	int $value	= (int)(mtnGetFieldData( $manualColorClampAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $colorRGBClampAttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $colorRGBClampAttrName, $value );

	mtnSetEnableDataFiled( $colorAlampAttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $colorAlampAttrName, $value );
}

//---------------------------------------------------------------------------
//  関数名 : mtnPS2AlphaTestStatusEvent
//  機　能 : PS2AlphaTestの状態変化後の処理。
//  書　式 : global proc mtnPS2AlphaTestStatusEvent( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : PS2AlphaTestの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2AlphaTestStatusEvent( int $texNo )
{
	string	$alphaTestAttrName		= "nnPS2AlphaTest"		+ $texNo;
	string	$manualAlphaRefAttrName	= "nnPS2ManualAlphaRef"	+ $texNo;
	string	$alphaTestModeAttrName	= "nnPS2AlphaTestMode"	+ $texNo;
	string	$alphaRefDataAttrName	= "nnPS2AlphaRefData"	+ $texNo;
	string	$alphaFailModeAttrName	= "nnPS2AlphaFailMode"	+ $texNo;

	int $value1	= (int)(mtnGetFieldData( $alphaTestAttrName, "checkBoxGrp" ));
	int $value2	= (int)(mtnGetFieldData( $manualAlphaRefAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $manualAlphaRefAttrName, "checkBoxGrp", $value1 );
	mtnSetEnableUpdateCheckBox( $manualAlphaRefAttrName, $value1 );
	if( $value1 == 0 ) {
		mtnSetInputFieldData( $manualAlphaRefAttrName, "0", "checkBoxGrp" );
	}

	mtnSetEnableDataFiled( $alphaTestModeAttrName, "optionMenuGrp", ($value1*$value2) );
	mtnSetEnableUpdateCheckBox( $alphaTestModeAttrName, ($value1*$value2) );
	if( ($value1*$value2) == 0 ) {
		mtnSetInputFieldData( $alphaTestModeAttrName, "6", "optionMenuGrp" );
	}

	mtnSetEnableDataFiled( $alphaRefDataAttrName, "intSliderGrp", ($value1*$value2) );
	mtnSetEnableUpdateCheckBox( $alphaRefDataAttrName, ($value1*$value2) );
	if( ($value1*$value2) == 0 ) {
		mtnSetInputFieldData( $alphaRefDataAttrName, "0", "intSliderGrp" );
	}

	mtnSetEnableDataFiled( $alphaFailModeAttrName, "optionMenuGrp", $value1 );
	mtnSetEnableUpdateCheckBox( $alphaFailModeAttrName, $value1 );

}

//---------------------------------------------------------------------------
//  関数名 : mtnPS2ManualAlphaRefStatusEvent
//  機　能 : PS2ManualAlphaRefの状態変化後の処理。
//  書　式 : global proc mtnPS2ManualAlphaRefStatusEvent( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : PS2ManualAlphaRefの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2ManualAlphaRefStatusEvent( int $texNo )
{
	string	$manualAlphaRefAttrName	= "nnPS2ManualAlphaRef"	+ $texNo;
	string	$alphaTestModeAttrName	= "nnPS2AlphaTestMode"	+ $texNo;
	string	$alphaRefDataAttrName	= "nnPS2AlphaRefData"	+ $texNo;

	int $value	= (int)(mtnGetFieldData( $manualAlphaRefAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $alphaTestModeAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaTestModeAttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaTestModeAttrName, "6", "optionMenuGrp" );
	}

	mtnSetEnableDataFiled( $alphaRefDataAttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaRefDataAttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaRefDataAttrName, "0", "intSliderGrp" );
	}
}

//---------------------------------------------------------------------------
//  関数名 : mtnPS2DstAlphaTestStatusEvent
//  機　能 : PS2DstAlphaTestの状態変化後の処理。
//  書　式 : global proc mtnPS2DstAlphaTestStatusEvent( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : PS2DstAlphaTestの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2DstAlphaTestStatusEvent( int $texNo )
{

	string	$dstAlphaTestAttrName		= "nnPS2DstAlphaTest"		+ $texNo;
	string	$dstAlphaTestModeAttrName	= "nnPS2DstAlphaTestMode"	+ $texNo;

	int $value	= (int)(mtnGetFieldData( $dstAlphaTestAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $dstAlphaTestModeAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $dstAlphaTestModeAttrName, $value );
}

//---------------------------------------------------------------------------
//  関数名 : mtnPS2ZBufferTestStatusEvent
//  機　能 : PS2ZBufferTestの状態変化後の処理。
//  書　式 : global proc mtnPS2ZBufferTestStatusEvent( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : PS2ZBufferTestの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2ZBufferTestStatusEvent( int $texNo )
{
	string	$zBufferTestAttrName		= "nnPS2ZBufferTest"		+ $texNo;
	string	$zBufferTestModeAttrName	= "nnPS2ZBufferTestMode"	+ $texNo;
//	string	$zBufferUpdateAttrName		= "nnPS2ZBufferUpdate"		+ $texNo;

	int $value	= (int)(mtnGetFieldData( $zBufferTestAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $zBufferTestModeAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $zBufferTestModeAttrName, $value );

//	mtnSetEnableDataFiled( $zBufferUpdateAttrName, "checkBoxGrp", $value );
//	mtnSetEnableUpdateCheckBox( $zBufferUpdateAttrName, $value );
}

//---------------------------------------------------------------------------
//  関数名 : mtnPS2ManualMipmapStatusEvent
//  機　能 : PS2ManualMipmapの状態変化後の処理。
//  書　式 : global proc mtnPS2ManualMipmapStatusEvent( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : PS2ManualMipmapの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2ManualMipmapStatusEvent( int $texNo )
{
	string	$manualMipMapAttrName	= "nnPS2ManualMipmap"		+ $texNo;
	string	$mipmapLCMAttrName		= "nnPS2MipmapLCM"			+ $texNo;
	string	$mipmapLAttrName		= "nnPS2MipmapL"			+ $texNo;
	string	$mipmapK0AttrName		= "nnPS2MipmapK0"			+ $texNo;
	string	$mipmapK1AttrName		= "nnPS2MipmapK1"			+ $texNo;

	int $value	= (int)(mtnGetFieldData( $manualMipMapAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $mipmapLCMAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $mipmapLCMAttrName, $value );

	mtnSetEnableDataFiled( $mipmapLAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $mipmapLAttrName, $value );

	mtnSetEnableDataFiled( $mipmapK0AttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $mipmapK0AttrName, $value );

	mtnSetEnableDataFiled( $mipmapK1AttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $mipmapK1AttrName, $value );

	if( $value ) mtnPS2MipmapLCMStatusEvent( $texNo );
}

//---------------------------------------------------------------------------
//  関数名 : mtnPS2MipmapLCMStatusEvent
//  機　能 : PS2MipmapLCMの状態変化後の処理。
//  書　式 : global proc mtnPS2MipmapLCMStatusEvent( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : PS2MipmapLCMの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPS2MipmapLCMStatusEvent( int $texNo )
{
	string	$mipmapLCMAttrName	= "nnPS2MipmapLCM"	+ $texNo;
	string	$mipmapLAttrName	= "nnPS2MipmapL"	+ $texNo;
	string	$mipmapK0AttrName	= "nnPS2MipmapK0"	+ $texNo;
	string	$mipmapK1AttrName	= "nnPS2MipmapK1"	+ $texNo;

	string $value	= mtnGetFieldData( $mipmapLCMAttrName, "optionMenuGrp" );

	if( $value == "0" ) {
		mtnSetEnableDataFiled( $mipmapLAttrName, "optionMenuGrp", true );
		mtnSetEnableUpdateCheckBox( $mipmapLAttrName, true );

		mtnSetEnableDataFiled( $mipmapK0AttrName, "intSliderGrp", true );
		mtnSetEnableUpdateCheckBox( $mipmapK0AttrName, true );

		mtnSetEnableDataFiled( $mipmapK1AttrName, "intSliderGrp", false );
		mtnSetEnableUpdateCheckBox( $mipmapK1AttrName, false );
	}
	else {
		mtnSetEnableDataFiled( $mipmapLAttrName, "optionMenuGrp", false );
		mtnSetEnableUpdateCheckBox( $mipmapLAttrName, false );

		mtnSetEnableDataFiled( $mipmapK0AttrName, "intSliderGrp", false );
		mtnSetEnableUpdateCheckBox( $mipmapK0AttrName, false );

		mtnSetEnableDataFiled( $mipmapK1AttrName, "intSliderGrp", true );
		mtnSetEnableUpdateCheckBox( $mipmapK1AttrName, true );
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutGCMaterial
//  機　能 : AllMaterialAttribute GAMECUBEマテリアル属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutGCMaterial( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : AllMaterialAttribute GAMECUBEマテリアル属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutGCMaterial( string $parent )
{
	global int $nnLayoutWidth;
	global int $nnGCLayoutHeight;
	global int $nnItemColPos;
	global int $nnUpdateChkboxColPos;
	global int $nnUnitColPos1;
	global int $nnUnitColPos2;
	global string $nnUnitChar;
	global int $nnLabelWidth;
	global int $nnFieldWidth;
	global int $nnColumWidth2;
	global int $nnColumWidth3;

	setParent $parent;

	// frameLayout [[
	frameLayout
		-width			$nnLayoutWidth
		-height			$nnGCLayoutHeight
		-collapsable	true
		-marginWidth	5
		-marginHeight	5
		-label 			"GAMECUBE Material Attributes"
		-borderVisible	true
		-borderStyle	"etchedIn"
		MTN_GCMaterialLayout;

		// columnLayout
		columnLayout
			MTN_GCMaterialColumnLayout;
//----------------------------------------------------------------------------
//			Unit
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnUnitColPos1 $nnUnitColPos2;
				text	-label		"";
				text	-label		$nnUnitChar;
			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCUVMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "UV Format"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_GCUVMode;
					menuItem -label "AUTO"			-data 0;
					menuItem -label "FIXED16_8"		-data 1;
					menuItem -label "FIXED16_10"	-data 2;
					menuItem -label "FLOAT"			-data 3;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					MTN_GCUVMode;

				mtnCreateUpdateCheckBox( "nnGCUVMode", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
// 			nnGCAlphaBlendingMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label 			"Frame Buffer Blend Mode"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_GCAlphaBlendingMode;
					menuItem -label "NONE"		-data 0;
					menuItem -label "BLEND"		-data 1;
					menuItem -label "LOGIC"		-data 2;
					menuItem -label "SUBTRACT"	-data 3;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "BLEND"
					MTN_GCAlphaBlendingMode;

				mtnCreateUpdateCheckBox( "nnGCAlphaBlendingMode", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCAlphaBlendingSrc
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Frame Buffer Blend Factor Source"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_GCAlphaBlendingSrc;
					menuItem -label "ZERO"			-data 0;
					menuItem -label "ONE"			-data 1;
					menuItem -label "DSTCOL"		-data 2;
					menuItem -label "INVDSTCOL"		-data 3;
					menuItem -label "SRCALPHA"		-data 4;
					menuItem -label "INVSRCALPHA"	-data 5;
					menuItem -label "DSTALPHA"		-data 6;
					menuItem -label "INVDSTALPHA"	-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value		"SRCALPHA"
					MTN_GCAlphaBlendingSrc;

				mtnCreateUpdateCheckBox( "nnGCAlphaBlendingSrc", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCAlphaBlendingDst
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Frame Buffer Blend Factor Destination"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_GCAlphaBlendingDst;
					menuItem -label "ZERO"			-data 0;
					menuItem -label "ONE"			-data 1;
					menuItem -label "DSTCOL"		-data 2;
					menuItem -label "INVDSTCOL"		-data 3;
					menuItem -label "SRCALPHA"		-data 4;
					menuItem -label "INVSRCALPHA"	-data 5;
					menuItem -label "DSTALPHA"		-data 6;
					menuItem -label "INVDSTALPHA"	-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value			"INVSRCALPHA"
					MTN_GCAlphaBlendingDst;

				mtnCreateUpdateCheckBox( "nnGCAlphaBlendingDst", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCAlphaBlendingLogic
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Frame Buffer Blend Factor Logic"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_GCAlphaBlendingLogic;
					menuItem -label "CLEAR"		-data 0;
					menuItem -label "AND"		-data 1;
					menuItem -label "REVAND"    -data 2;
					menuItem -label "COPY" 		-data 3;
					menuItem -label "INVAND"	-data 4;
					menuItem -label "NOOP"		-data 5;
					menuItem -label "XOR"		-data 6;
					menuItem -label "OR"		-data 7;
					menuItem -label "NOR"		-data 8;
					menuItem -label "EQUIV"		-data 9;
					menuItem -label "INV"		-data 10;
					menuItem -label "REVOR"		-data 11;
					menuItem -label "INVCOPY"	-data 12;
					menuItem -label "INVOR"		-data 13;
					menuItem -label "NAND"		-data 14;
					menuItem -label "SET"		-data 15;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value			"NOOP"
					MTN_GCAlphaBlendingLogic;

				mtnCreateUpdateCheckBox( "nnGCAlphaBlendingLogic", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
// 			nnGCVtxColTexEmulate
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Vertex Color Texure Emulate"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					MTN_GCVtxColTexEmulate;

				mtnCreateUpdateCheckBox( "nnGCVtxColTexEmulate", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//	 		nnGCManualAlphaRef
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Manual Alpha Reference Data"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-changeCommand	( "mtnGCManualAlphaRefStatusEvent" )
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			off
					MTN_GCManualAlphaRef;

				mtnCreateUpdateCheckBox( "nnGCManualAlphaRef", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCAlphaCompMode0
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Alpha Compare Mode 0"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_GCAlphaCompMode0;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "LESS"			-data 1;
					menuItem -label "LESS EQUAL"    -data 2;
					menuItem -label "EQUAL" 		-data 3;
					menuItem -label "NOT EQUAL"		-data 4;
					menuItem -label "GREATER EQUAL"	-data 5;
					menuItem -label "GREATER"		-data 6;
					menuItem -label "ALWAYS"		-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value			"GREATER"
					MTN_GCAlphaCompMode0;

				mtnCreateUpdateCheckBox( "nnGCAlphaCompMode0", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCAlphaCompMode1
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Alpha Compare Mode 1"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_GCAlphaCompMode1;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "LESS"			-data 1;
					menuItem -label "LESS EQUAL"    -data 2;
					menuItem -label "EQUAL" 		-data 3;
					menuItem -label "NOT EQUAL"		-data 4;
					menuItem -label "GREATER EQUAL"	-data 5;
					menuItem -label "GREATER"		-data 6;
					menuItem -label "ALWAYS"		-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value			"ALWAYS"
					MTN_GCAlphaCompMode1;

				mtnCreateUpdateCheckBox( "nnGCAlphaCompMode1", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCAlphaRefData0
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				intSliderGrp
					-label			"Alpha Reference Data 0"
					-columnWidth3	$nnLabelWidth $nnColumWidth2 $nnColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					MTN_GCAlphaRefData0;

				mtnCreateUpdateCheckBox( "nnGCAlphaRefData0", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCAlphaRefData1
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				intSliderGrp
					-label			"Alpha Reference Data 1"
					-columnWidth3	$nnLabelWidth $nnColumWidth2 $nnColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					MTN_GCAlphaRefData1;

				mtnCreateUpdateCheckBox( "nnGCAlphaRefData1", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCAlphaCompOperand
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Alpha Compare Operand"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_GCAlphaCompOperand;
					menuItem -label "AND"		-data 0;
					menuItem -label "OR"		-data 1;
					menuItem -label "XOR"    	-data 2;
					menuItem -label "XNOR" 		-data 3;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value			"AND"
					MTN_GCAlphaCompOperand;

				mtnCreateUpdateCheckBox( "nnGCAlphaCompOperand", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
// 			nnGCZBufferComp
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Z Buffer Compare"
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					-columnWidth2 		$nnLabelWidth $nnFieldWidth
					-changeCommand		( "mtnGCZBufferCompStatusEvent" )
					MTN_GCZBufferComp;

				mtnCreateUpdateCheckBox( "nnGCZBufferComp", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCZBufferCompMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Z Buffer Compare Mode"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_GCZBufferCompMode;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "LESS"			-data 1;
					menuItem -label "LESS EQUAL"    -data 2;
					menuItem -label "EQUAL" 		-data 3;
					menuItem -label "NOT EQUAL"		-data 4;
					menuItem -label "GREATER EQUAL"	-data 5;
					menuItem -label "GREATER"		-data 6;
					menuItem -label "ALWAYS"		-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value			"LESS EQUAL"
					MTN_GCZBufferCompMode;

				mtnCreateUpdateCheckBox( "nnGCZBufferCompMode", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCZBufferCompLoc
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Z Buffer Compare Loc"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_GCZBufferCompLoc;
					menuItem -label "AUTO"		-data 0;
					menuItem -label "AFTER"		-data 1;
					menuItem -label "BEFORE"	-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value			"AUTO"
					MTN_GCZBufferCompLoc;

				mtnCreateUpdateCheckBox( "nnGCZBufferCompLoc", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCZBufferUpdate
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Z Buffer Update"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					MTN_GCZBufferUpdate;

				mtnCreateUpdateCheckBox( "nnGCZBufferUpdate", false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			End
//----------------------------------------------------------------------------
		// ]] columnLayout
		setParent ..;
	// ]] frameLayout
	setParent ..;

	mtnMakeLayoutTextureAttributeGC( "MTN_GCMaterialColumnLayout" );

	// GUIの表示設定を変更
	int $nnGC = mtnGCGetPluginInfoMayaNNExporter();
	frameLayout
		-edit
		-collapse		true
		-visible $nnGC
		MTN_GCMaterialLayout;

	mtnGCManualAlphaRefStatusEvent();
	mtnGCZBufferCompStatusEvent();

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutTextureAttributeGC
//  機　能 : GAMECUBE用テクスチャ属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutTextureAttributeGC( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : GAMECUBE用テクスチャ属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutTextureAttributeGC( string $parent )
{
	global int $nnMainLayoutWidth;
	global int $nnMainLayoutHeight;

	setParent $parent;

	formLayout MTN_TextureAttributeGCFormLayout;
	setParent ..;

	int		$i;
	for( $i=1; $i<5; $i++) {
		mtnMakeLayoutTextureAttributeGCLayout( "MTN_TextureAttributeGCFormLayout", $i );
	}

	formLayout
		-edit
		// MTN_GCTextureAttribute1Layout
		-attachForm		MTN_GCTextureAttribute1Layout 	top		5
		-attachForm		MTN_GCTextureAttribute1Layout 	left	5
		-attachNone		MTN_GCTextureAttribute1Layout 	bottom
		-attachForm		MTN_GCTextureAttribute1Layout 	right	5
		// MTN_GCTextureAttribute2Layout
		-attachControl	MTN_GCTextureAttribute2Layout	top		5	MTN_GCTextureAttribute1Layout
		-attachForm		MTN_GCTextureAttribute2Layout 	left	5
		-attachNone		MTN_GCTextureAttribute2Layout 	bottom
		-attachForm		MTN_GCTextureAttribute2Layout 	right	5
		// MTN_GCTextureAttribute3Layout
		-attachControl	MTN_GCTextureAttribute3Layout	top		5	MTN_GCTextureAttribute2Layout
		-attachForm		MTN_GCTextureAttribute3Layout 	left	5
		-attachNone		MTN_GCTextureAttribute3Layout 	bottom
		-attachForm		MTN_GCTextureAttribute3Layout 	right	5
		// MTN_GCTextureAttribute4Layout
		-attachControl	MTN_GCTextureAttribute4Layout	top		5	MTN_GCTextureAttribute3Layout
		-attachForm		MTN_GCTextureAttribute4Layout 	left	5
		-attachNone		MTN_GCTextureAttribute4Layout 	bottom
		-attachForm		MTN_GCTextureAttribute4Layout 	right	5
		MTN_TextureAttributeGCFormLayout;

}

//---------------------------------------------------------------------------//
//					GAMECUBEマテリアルメニューイベント処理				 	 //
//---------------------------------------------------------------------------//
//---------------------------------------------------------------------------
//  関数名 : mtnGCManualAlphaRefStatusEvent
//  機　能 : ManualAlphaRefの状態変化後の処理。
//  書　式 : global proc mtnGCManualAlphaRefStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 :  ManualAlphaRefの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnGCManualAlphaRefStatusEvent()
{
	string	$manualAlphaRefAttrName		= "nnGCManualAlphaRef";
	string	$alphaCompMode0AttrName		= "nnGCAlphaCompMode0";
	string	$alphaCompMode1AttrName		= "nnGCAlphaCompMode1";
	string	$alphaRefData0AttrName		= "nnGCAlphaRefData0";
	string	$alphaRefData1AttrName		= "nnGCAlphaRefData1";
	string	$alphaCompOperandAttrName	= "nnGCAlphaCompOperand";

	int $value	= (int)(mtnGetFieldData( $manualAlphaRefAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $alphaCompMode0AttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaCompMode0AttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaCompMode0AttrName, "6", "optionMenuGrp" );
	}

	mtnSetEnableDataFiled( $alphaCompMode1AttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaCompMode1AttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaCompMode1AttrName, "7", "optionMenuGrp" );
	}

	mtnSetEnableDataFiled( $alphaRefData0AttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaRefData0AttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaRefData0AttrName, "0", "intSliderGrp" );
	}

	mtnSetEnableDataFiled( $alphaRefData1AttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaRefData1AttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaRefData1AttrName, "0", "intSliderGrp" );
	}

	mtnSetEnableDataFiled( $alphaCompOperandAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaCompOperandAttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaCompOperandAttrName, "0", "optionMenuGrp" );
	}
}
//---------------------------------------------------------------------------
//  関数名 : mtnGCUsePaletteStatusEvent
//  機　能 : UsePaletteの状態変化後の処理。
//  書　式 : global proc mtnGCUsePaletteStatusEvent( int $texNo )
//  引　数 : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 :  UsePaletteの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnGCUsePaletteStatusEvent( int $texNo )
{
	string	$usePaletteAttrName		= "nnGCUsePalette"	+ $texNo;
	string	$paletteBankAttrName	= "nnGCPaletteBank"	+ $texNo;

	int $value	= (int)(mtnGetFieldData( $usePaletteAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $paletteBankAttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $paletteBankAttrName, $value );
}

//---------------------------------------------------------------------------
//  関数名 : mtnGCZBufferCompStatusEvent
//  機　能 :  ZBufferCompの状態変化後の処理。
//  書　式 : global proc mtnGCZBufferCompStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 :  ZBufferCompの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnGCZBufferCompStatusEvent()
{
	string	$zBufferAttrName			= "nnGCZBufferComp";
	string	$zBufferCompModeAttrName	= "nnGCZBufferCompMode";
//	string	$zBufferUpdateAttrName		= "nnGCZBufferUpdate";
	string	$zBufferCompLocAttrName		= "nnGCZBufferCompLoc";

	int $value	= (int)(mtnGetFieldData( $zBufferAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $zBufferCompModeAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $zBufferCompModeAttrName, $value );

//	mtnSetEnableDataFiled( $zBufferUpdateAttrName, "checkBoxGrp", $value );
//	mtnSetEnableUpdateCheckBox( $zBufferUpdateAttrName, $value );

	mtnSetEnableDataFiled( $zBufferCompLocAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $zBufferCompLocAttrName, $value );
}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutTextureAttributeGCLayout
//  機　能 : GAMECUBE用テクスチャ属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutTextureAttributeGCLayout( string $parent, int $texNo )
//  引　数 : string $parent : 親のレイアウト名
//         : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : GAMECUBE用テクスチャ属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutTextureAttributeGCLayout( string $parent, int $texNo )
{
	global int $nnTexLayoutWidth;
	global int $nnGCTexLayoutHeight;
	global int $nnTexItemColPos;
	global int $nnTexLabelWidth;
	global int $nnTexFieldWidth;
	global int $nnTexUpdateChkboxColPos;

	global int $nnTexUnitColPos1;
	global int $nnTexUnitColPos2;
	global string $nnUnitChar;
	global int $nnTexColumWidth2;
	global int $nnTexColumWidth3;

	string $frameLayoutName;
	string $attrName;

	string $labelTable[] = {
		"GAMECUBE Texture1(Bottom) Attributes",
		"GAMECUBE Texture2(Lower Middle) Attributes",
		"GAMECUBE Texture3(Upper Middle) Attributes",
		"GAMECUBE Texture4(Top) Attributes"
	};

	setParent $parent;

	$frameLayoutName	= 	"MTN_GCTextureAttribute";
	$frameLayoutName	+=	$texNo;
	$frameLayoutName	+=	"Layout";

	// frameLayout [[
	frameLayout
		-width			$nnTexLayoutWidth
		-height			$nnGCTexLayoutHeight
		-collapsable	true
//		-collapse		true
		-marginWidth	5
		-marginHeight	5
		-label 			$labelTable[$texNo-1]
		-borderVisible	true
		-borderStyle	"etchedIn"
		$frameLayoutName;

		$attrName	= 	"MTN_GCTextureAttribute";
		$attrName	+=	$texNo;
		$attrName	+=	"ColumnLayout";

		// columnLayout
		columnLayout
			$attrName;
//----------------------------------------------------------------------------
//			Unit
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexUnitColPos1 $nnTexUnitColPos2;
				text	-label		"";
				text	-label		$nnUnitChar;
			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnGCBlendMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_GCBlendMode";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label			"Texture Stage"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "MODULATE"			-data 0;
					menuItem -label "DECAL"				-data 1;
					menuItem -label "REPLACE"			-data 2;
					menuItem -label "BLEND"				-data 3;
					menuItem -label "PASSCLR"			-data 4;
					menuItem -label "ALPHA TEXTURE"		-data 5;
					menuItem -label "DECAL2"			-data 6;
					menuItem -label "SPECULAR MAP"		-data 7;
					menuItem -label "SPECULAR MAP2"		-data 8;
					menuItem -label "ADD"				-data 9;
					menuItem -label "SUBTRACT"			-data 10;
				setParent -menu ..;
				// デフォルト値をセット
				if( $texNo == 1 ) {
					optionMenuGrp
						-edit
						-value			"MODULATE"
						$attrName;
				}
				else {
					optionMenuGrp
						-edit
						-value			"DECAL2"
						$attrName;
				}

				mtnCreateUpdateCheckBox( "nnGCBlendMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnGCUsePalette
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_GCUsePalette";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Use Palette"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnGCUsePaletteStatusEvent " + $texNo )
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnGCUsePalette"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnGCPaletteBank
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_GCPaletteBank";
				$attrName	+=	$texNo;

				intSliderGrp
					-label			"Palette Bank"
					-columnWidth3	$nnTexLabelWidth $nnTexColumWidth2 $nnTexColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					$attrName;

				mtnCreateUpdateCheckBox( "nnGCPaletteBank"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnGCEnviromentMap
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_GCEnviromentMap";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Enviroment Map"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnGCEnviromentMap"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnGCUClamp
//----------------------------------------------------------------------------
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_GCUClamp";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Wrap Type U"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "AUTO"		-data 0;
					menuItem -label "CLAMP"		-data 1;
					menuItem -label "REPEAT"	-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					$attrName;

				mtnCreateUpdateCheckBox( "nnGCUClamp"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnGCVClamp
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_GCVClamp";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Wrap Type V"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "AUTO"		-data 0;
					menuItem -label "CLAMP"		-data 1;
					menuItem -label "REPEAT"	-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					$attrName;

				mtnCreateUpdateCheckBox( "nnGCVClamp"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnGCLightBlend
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_GCLightBlend";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Light Blend"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnGCLightBlend"+$texNo, false );

			// ]] rowLayout
			setParent ..;


//----------------------------------------------------------------------------
//			End
//----------------------------------------------------------------------------
		// ]] columnLayout
		setParent ..;
	// ]] frameLayout
	setParent ..;

	// GUIの表示設定を変更
	int $nngc = mtnGCGetPluginInfoMayaNNExporter();
	frameLayout
		-edit
		-collapse		true
		-visible		$nngc
		$frameLayoutName;

	mtnGCUsePaletteStatusEvent( $texNo );
}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutXBMaterial
//  機　能 : AllMaterialAttribute Xboxマテリアル属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutXBMaterial( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : AllMaterialAttribute Xboxマテリアル属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutXBMaterial( string $parent )
{
	global int $nnLayoutWidth;
	global int $nnXBLayoutHeight;
	global int $nnItemColPos;
	global int $nnUpdateChkboxColPos;
	global int $nnUnitColPos1;
	global int $nnUnitColPos2;
	global int $nnLabelWidth;
	global string $nnUnitChar;
	global int $nnFieldWidth;
	global int $nnColumWidth2;
	global int $nnColumWidth3;

	setParent $parent;

	// frameLayout [[
	frameLayout
		-width			$nnLayoutWidth
		-height			$nnXBLayoutHeight
		-collapsable	true
		-marginWidth	5
		-marginHeight	5
		-label 			"DirectX G1.1 Material Attributes"
		-borderVisible	true
		-borderStyle	"etchedIn"
		MTN_XBMaterialLayout;

		// columnLayout
		columnLayout
			MTN_XBMaterialColumnLayout;
//----------------------------------------------------------------------------
//			Unit
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnUnitColPos1 $nnUnitColPos2;
				text	-label		"";
				text	-label		$nnUnitChar;
			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnXBUVMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "UV Format"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_XBUVMode;
					menuItem -label "AUTO"			-data 0;
					menuItem -label "FIXED16_8"		-data 1;
					menuItem -label "FIXED16_10"	-data 2;
					menuItem -label "FLOAT"			-data 3;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					MTN_XBUVMode;

				mtnCreateUpdateCheckBox( "nnXBUVMode", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
// 			nnXBAlphaBlendingOperate
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Frame Buffer Blend Operate"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_XBAlphaBlendingOperate;
					menuItem -label "ADD"			-data 0;
					menuItem -label "SUBTRACT"		-data 1;
					menuItem -label "REVSUBTRACT"	-data 2;
					menuItem -label "MIN"			-data 3;
					menuItem -label "MAX"			-data 4;
					menuItem -label "ADDSIGNED"		-data 5;
					menuItem -label "REVSUBSIGNED"	-data 6;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "ADD"
					MTN_XBAlphaBlendingOperate;

				mtnCreateUpdateCheckBox( "nnXBAlphaBlendingOperate", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnXBAlphaBlendingSrc
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Frame Buffer Blend Factor Source"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_XBAlphaBlendingSrc;
					menuItem -label "ZERO"				-data 0;
					menuItem -label "ONE"				-data 1;
					menuItem -label "SRCCOL"			-data 2;
					menuItem -label "INVSRCCOL"			-data 3;
					menuItem -label "SRCALPHA"			-data 4;
					menuItem -label "INVSRCALPHA"		-data 5;
					menuItem -label "DSTALPHA"			-data 6;
					menuItem -label "INVDSTALPHA"		-data 7;
					menuItem -label "DSTCOL"			-data 8;
					menuItem -label "INVDSTCOL"			-data 9;
					menuItem -label "SRCALPHASAT"		-data 10;
					menuItem -label "CONSTANTCOL"		-data 11;
					menuItem -label "INVCONSTANTCOL"	-data 12;
					menuItem -label "CONSTANTALPHA"		-data 13;
					menuItem -label "INVCONSTANTALPHA"	-data 14;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "SRCALPHA"
					MTN_XBAlphaBlendingSrc;

				mtnCreateUpdateCheckBox( "nnXBAlphaBlendingSrc", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnXBAlphaBlendingDst
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Frame Buffer Blend Factor Destination"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_XBAlphaBlendingDst;
					menuItem -label "ZERO"				-data 0;
					menuItem -label "ONE"				-data 1;
					menuItem -label "SRCCOL"			-data 2;
					menuItem -label "INVSRCCOL"			-data 3;
					menuItem -label "SRCALPHA"			-data 4;
					menuItem -label "INVSRCALPHA"		-data 5;
					menuItem -label "DSTALPHA"			-data 6;
					menuItem -label "INVDSTALPHA"		-data 7;
					menuItem -label "DSTCOL"			-data 8;
					menuItem -label "INVDSTCOL"			-data 9;
					menuItem -label "SRCALPHASAT"		-data 10;
					menuItem -label "CONSTANTCOL"		-data 11;
					menuItem -label "INVCONSTANTCOL"	-data 12;
					menuItem -label "CONSTANTALPHA"		-data 13;
					menuItem -label "INVCONSTANTALPHA"	-data 14;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "INVSRCALPHA"
					MTN_XBAlphaBlendingDst;

				mtnCreateUpdateCheckBox( "nnXBAlphaBlendingDst", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnAlphaBlendingConstColor
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				int	$textColumWidth3 = $nnItemColPos - $nnLabelWidth - $nnColumWidth2;
				rowLayout
					-numberOfColumns	3
					-columnWidth3		$nnLabelWidth $nnColumWidth2 $textColumWidth3
					-columnOffset3		0 5 0
					-columnAlign3		right center left
					MTN_AlphaBlendingConstColorRowLayout;
					text
						-label "Blend Const Color";
					textField
						-text	"0x00000000"
						-changeCommand ( "mtnInputDataNumericCheck nnAlphaBlendingConstColor" )
						-receiveFocusCommand ( "mtnTempInputDataSave nnAlphaBlendingConstColor" )
						MTN_AlphaBlendingConstColor;
					text
						-label "HEX ( 0x======== RGBA ) ";
				setParent ..;

				mtnCreateUpdateCheckBox( "nnAlphaBlendingConstColor", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnXBAlphaBlendingLogic
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Frame Buffer Blend Logic"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_XBAlphaBlendingLogic;
					menuItem -label "NONE"			-data 0;
					menuItem -label "CLEAR"			-data 1;
					menuItem -label "AND"			-data 2;
					menuItem -label "AND REVERSE"	-data 3;
					menuItem -label "COPY"			-data 4;
					menuItem -label "AND INVERTED"	-data 5;
					menuItem -label "NOOP"			-data 6;
					menuItem -label "XOR"			-data 7;
					menuItem -label "OR"			-data 8;
					menuItem -label "NOR"			-data 9;
					menuItem -label "EQUIV"			-data 10;
					menuItem -label "INVERT"		-data 11;
					menuItem -label "OR REVERSE"	-data 12;
					menuItem -label "COPY INVERTED"	-data 13;
					menuItem -label "OR_INVERTED"	-data 14;
					menuItem -label "NAND"			-data 15;
					menuItem -label "SET"			-data 16;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "NONE"
					MTN_XBAlphaBlendingLogic;

				mtnCreateUpdateCheckBox( "nnXBAlphaBlendingLogic", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";

//----------------------------------------------------------------------------
// 			nnXBAlphaTest
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Alpha Test"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					-changeCommand		( "mtnXBAlphaTestStatusEvent" )
					MTN_XBAlphaTest;

				mtnCreateUpdateCheckBox( "nnXBAlphaTest", false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
// 			nnXBManualAlphaRef
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Manual Alpha Reference Data"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					-changeCommand		( "mtnXBManualAlphaRefStatusEvent" )
					MTN_XBManualAlphaRef;

				mtnCreateUpdateCheckBox( "nnXBManualAlphaRef", false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
// 			nnXBAlphaTestMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Frame Buffer Blend Logic"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_XBAlphaTestMode;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "LESS"			-data 1;
					menuItem -label "EQUAL"			-data 2;
					menuItem -label "LESS EQUAL"	-data 3;
					menuItem -label "GREATER"		-data 4;
					menuItem -label "NOT EQUAL"		-data 5;
					menuItem -label "GREATER EQUAL"	-data 6;
					menuItem -label "ALWAYS"		-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "GREATER"
					MTN_XBAlphaTestMode;

				mtnCreateUpdateCheckBox( "nnXBAlphaTestMode", false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
// 			nnXBAlphaRefData
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				intSliderGrp
					-label			"Alpha Reference Data"
					-columnWidth3	$nnLabelWidth $nnColumWidth2 $nnColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					MTN_XBAlphaRefData;

				mtnCreateUpdateCheckBox( "nnXBAlphaRefData", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";

//----------------------------------------------------------------------------
// 			nnXBZBufferComp
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Z Buffer Compare"
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					-columnWidth2 		$nnLabelWidth $nnFieldWidth
					-changeCommand		( "mtnXBZBufferCompStatusEvent" )
					MTN_XBZBufferComp;

				mtnCreateUpdateCheckBox( "nnXBZBufferComp", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnXBZBufferCompMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Z Buffer Compare Mode"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_XBZBufferCompMode;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "LESS"			-data 1;
					menuItem -label "EQUAL"			-data 2;
					menuItem -label "LESS EQUAL"	-data 3;
					menuItem -label "GREATER"		-data 4;
					menuItem -label "NOT EQUAL"		-data 5;
					menuItem -label "GREATER EQUAL"	-data 6;
					menuItem -label "ALWAYS"		-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value			"LESS EQUAL"
					MTN_XBZBufferCompMode;

				mtnCreateUpdateCheckBox( "nnXBZBufferCompMode", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnXBZBufferUpdate
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Z Buffer Update"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					MTN_XBZBufferUpdate;

				mtnCreateUpdateCheckBox( "nnXBZBufferUpdate", false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			End
//----------------------------------------------------------------------------
		// ]] columnLayout
		setParent ..;
	// ]] frameLayout
	setParent ..;

	mtnMakeLayoutTextureAttributeXB( "MTN_XBMaterialColumnLayout" );

	// GUIの表示設定を変更
	int $nnXB = mtnXBGetPluginInfoMayaNNExporter();
	frameLayout
		-edit
		-collapse		true
		-visible $nnXB
		MTN_XBMaterialLayout;

	mtnXBAlphaTestStatusEvent();
	mtnXBZBufferCompStatusEvent();

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutTextureAttributeXB
//  機　能 : Xbox用テクスチャ属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutTextureAttributeXB( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : Xox用テクスチャ属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutTextureAttributeXB( string $parent )
{
	global int $nnMainLayoutWidth;
	global int $nnMainLayoutHeight;

	setParent $parent;

	formLayout MTN_TextureAttributeXBFormLayout;
	setParent ..;

	int		$i;
	for( $i=1; $i<5; $i++) {
		mtnMakeLayoutTextureAttributeXBLayout( "MTN_TextureAttributeXBFormLayout", $i );
	}

	formLayout
		-edit
		// MTN_XBTextureAttribute1Layout
		-attachForm		MTN_XBTextureAttribute1Layout 	top		5
		-attachForm		MTN_XBTextureAttribute1Layout 	left	5
		-attachNone		MTN_XBTextureAttribute1Layout 	bottom
		-attachForm		MTN_XBTextureAttribute1Layout 	right	5
		// MTN_XBTextureAttribute2Layout
		-attachControl	MTN_XBTextureAttribute2Layout	top		5	MTN_XBTextureAttribute1Layout
		-attachForm		MTN_XBTextureAttribute2Layout 	left	5
		-attachNone		MTN_XBTextureAttribute2Layout 	bottom
		-attachForm		MTN_XBTextureAttribute2Layout 	right	5
		// MTN_XBTextureAttribute3Layout
		-attachControl	MTN_XBTextureAttribute3Layout	top		5	MTN_XBTextureAttribute2Layout
		-attachForm		MTN_XBTextureAttribute3Layout 	left	5
		-attachNone		MTN_XBTextureAttribute3Layout 	bottom
		-attachForm		MTN_XBTextureAttribute3Layout 	right	5
		// MTN_XBTextureAttribute4Layout
		-attachControl	MTN_XBTextureAttribute4Layout	top		5	MTN_XBTextureAttribute3Layout
		-attachForm		MTN_XBTextureAttribute4Layout 	left	5
		-attachNone		MTN_XBTextureAttribute4Layout 	bottom
		-attachForm		MTN_XBTextureAttribute4Layout 	right	5
		MTN_TextureAttributeXBFormLayout;

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutTextureAttributeXBLayout
//  機　能 : Xbox用テクスチャ属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutTextureAttributeXBLayout( string $parent, int $texNo )
//  引　数 : string $parent : 親のレイアウト名
//         : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : Xbox用テクスチャ属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutTextureAttributeXBLayout( string $parent, int $texNo )
{
	global int $nnTexLayoutWidth;
	global int $nnXBTexLayoutHeight;
	global int $nnTexItemColPos;
	global int $nnTexLabelWidth;
	global int $nnTexFieldWidth;
	global int $nnTexUpdateChkboxColPos;

	global int $nnTexUnitColPos1;
	global int $nnTexUnitColPos2;
	global string $nnUnitChar;
	global int $nnTexColumWidth2;
	global int $nnTexColumWidth3;

	string $frameLayoutName;
	string $attrName;

	string $labelTable[] = {
		"Xbox Texture1(Bottom) Attributes",
		"Xbox Texture2(Lower Middle) Attributes",
		"Xbox Texture3(Upper Middle) Attributes",
		"Xbox Texture4(Top) Attributes"
	};

	setParent $parent;

	$frameLayoutName	= 	"MTN_XBTextureAttribute";
	$frameLayoutName	+=	$texNo;
	$frameLayoutName	+=	"Layout";

	// frameLayout [[
	frameLayout
		-width			$nnTexLayoutWidth
		-height			$nnXBTexLayoutHeight
		-collapsable	true
//		-collapse		true
		-marginWidth	5
		-marginHeight	5
		-label 			$labelTable[$texNo-1]
		-borderVisible	true
		-borderStyle	"etchedIn"
		$frameLayoutName;

		$attrName	= 	"MTN_XBTextureAttribute";
		$attrName	+=	$texNo;
		$attrName	+=	"ColumnLayout";

		// columnLayout
		columnLayout
			$attrName;
//----------------------------------------------------------------------------
//			Unit
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexUnitColPos1 $nnTexUnitColPos2;
				text	-label		"";
				text	-label		$nnUnitChar;
			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnXBBlendMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_XBBlendMode";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label			"Texture Stage"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnXBBlendModeStatusEvent " + $texNo )
					$attrName;
					menuItem -label "AUTO"				-data 9;
					menuItem -label "MODULATE"			-data 0;
					menuItem -label "DECAL"				-data 1;
					menuItem -label "REPLACE"			-data 2;
					menuItem -label "BLEND"				-data 3;
					menuItem -label "DECAL2"			-data 4;
					menuItem -label "SPECULAR MAP"		-data 5;
					menuItem -label "SPECULAR MAP2"		-data 6;
					menuItem -label "ADD"				-data 7;
					menuItem -label "SUBTRACT"			-data 8;
				setParent -menu ..;
				optionMenuGrp
					-edit
					-value			"AUTO"
					$attrName;

/*****************
				// デフォルト値をセット
				if( $texNo == 1 ) {
					optionMenuGrp
						-edit
						-value			"MODULATE"
						$attrName;
				}
				else {
					optionMenuGrp
						-edit
						-value			"DECAL2"
						$attrName;
				}
**************/

				mtnCreateUpdateCheckBox( "nnXBBlendMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			nnXBLightStage
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_XBLightStage";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Light Stage"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnXBLightStage"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnXBEnviromentMap
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_XBEnviromentMap";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Enviroment Map"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnXBEnviromentMap"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnXBUClamp
//----------------------------------------------------------------------------
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_XBUClamp";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Wrap Type U"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "AUTO"		-data 0;
					menuItem -label "CLAMP"		-data 1;
					menuItem -label "REPEAT"	-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					$attrName;

				mtnCreateUpdateCheckBox( "nnXBUClamp"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnXBVClamp
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_XBVClamp";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Wrap Type V"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "AUTO"		-data 0;
					menuItem -label "CLAMP"		-data 1;
					menuItem -label "REPEAT"	-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					$attrName;

				mtnCreateUpdateCheckBox( "nnXBVClamp"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
// 			nnXBLODBias
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_XBLODBias";
				$attrName	+=	$texNo;

				floatSliderGrp
					-label			"LOD Bias"
					-columnWidth3	$nnTexLabelWidth ((int)$nnTexFieldWidth/3) ((int)$nnTexFieldWidth/2)
					-minValue		-1.0
					-maxValue		1.0
					-precision 		6
					-value			0.0
					$attrName;

				mtnCreateUpdateCheckBox( "nnXBLODBias"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnXBMaxMipLevel
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_XBMaxMipLevel";
				$attrName	+=	$texNo;

				intFieldGrp
					-label			"Max Mip Level"
					-columnWidth2 	$nnTexLabelWidth ((int)$nnTexFieldWidth/3)
					-value1			0
					$attrName;
				mtnCreateUpdateCheckBox( "nnXBMaxMipLevel"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnXBFilterMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_XBFilterMode";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label				"Setup Filter Mode"
					-columnWidth2 		$nnTexLabelWidth $nnTexFieldWidth
					-numberOfCheckBoxes	1
					-changeCommand		( "mtnXBFilterModeStatusEvent " + $texNo )
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnXBFilterMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnXBMagFilterMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_XBMagFilterMode";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label			"Filter Mode Mag"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "NEAREST"			-data 0;
					menuItem -label "LINEAR"			-data 1;
					menuItem -label "ANISOTROPIC"		-data 2;
				setParent -menu ..;
				optionMenuGrp
					-edit
					-value			"NEAREST"
					$attrName;

				mtnCreateUpdateCheckBox( "nnXBMagFilterMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
// 			nnXBMinFilterMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_XBMinFilterMode";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label			"Filter Mode Min"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "NEAREST"					-data 0;
					menuItem -label "LINEAR"					-data 1;
					menuItem -label "NEAREST MIPMAP NEAREST"	-data 2;
					menuItem -label "NEAREST MIPMAP LINEAR"		-data 3;
					menuItem -label "LINEAR MIPMAP NEAREST"		-data 4;
					menuItem -label "LINEAR MIPMAP LINEAR"		-data 5;
					menuItem -label "ANISOTROPIC"				-data 6;
					menuItem -label "ANISOTROPIC MIPMAP NEAREST"-data 7;
					menuItem -label "ANISOTROPIC MIPMAP LINEAR"	-data 9;
				setParent -menu ..;
				optionMenuGrp
					-edit
					-value			"LINEAR MIPMAP NEAREST"
					$attrName;

				mtnCreateUpdateCheckBox( "nnXBMinFilterMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			End
//----------------------------------------------------------------------------
		// ]] columnLayout
		setParent ..;
	// ]] frameLayout
	setParent ..;

	// GUIの表示設定を変更
	int $nnxb = mtnXBGetPluginInfoMayaNNExporter();
	frameLayout
		-edit
		-collapse		true
		-visible		$nnxb
		$frameLayoutName;

	mtnXBBlendModeStatusEvent( $texNo );
	mtnXBFilterModeStatusEvent( $texNo );

}

//---------------------------------------------------------------------------
//  関数名 : mtnXBAlphaTestStatusEvent
//  機　能 : AlphaTestの状態変化後の処理。
//  書　式 : global proc mtnXBAlphaTestStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 :  AlphaTestの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnXBAlphaTestStatusEvent()
{
	string	$alphaTestAttrName			= "nnXBAlphaTest";
	string	$manualAlphaRefAttrName		= "nnXBManualAlphaRef";
	string	$alphaTestModeAttrName		= "nnXBAlphaTestMode";
	string	$alphaRefDataAttrName		= "nnXBAlphaRefData";

	int $value1	= (int)(mtnGetFieldData( $alphaTestAttrName, "checkBoxGrp" ));
	int $value2	= (int)(mtnGetFieldData( $manualAlphaRefAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $manualAlphaRefAttrName, "checkBoxGrp", $value1 );
	mtnSetEnableUpdateCheckBox( $manualAlphaRefAttrName, $value1 );
	if( $value1 == 0 ) {
		mtnSetInputFieldData( $manualAlphaRefAttrName, "0", "checkBoxGrp" );
	}

	mtnSetEnableDataFiled( $alphaTestModeAttrName, "optionMenuGrp", ($value1*$value2) );
	mtnSetEnableUpdateCheckBox( $alphaTestModeAttrName, ($value1*$value2) );
	if( ($value1*$value2) == 0 ) {
		mtnSetInputFieldData( $alphaTestModeAttrName, "4", "optionMenuGrp" );
	}

	mtnSetEnableDataFiled( $alphaRefDataAttrName, "intSliderGrp", ($value1*$value2) );
	mtnSetEnableUpdateCheckBox( $alphaRefDataAttrName, ($value1*$value2) );
	if( ($value1*$value2) == 0 ) {
		mtnSetInputFieldData( $alphaRefDataAttrName, "0", "intSliderGrp" );
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnXBManualAlphaRefStatusEvent
//  機　能 : ManualAlphaRefの状態変化後の処理。
//  書　式 : global proc mtnXBManualAlphaRefStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : ManualAlphaRefの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnXBManualAlphaRefStatusEvent()
{
	string	$manualAlphaRefAttrName		= "nnXBManualAlphaRef";
	string	$alphaTestModeAttrName		= "nnXBAlphaTestMode";
	string	$alphaRefDataAttrName		= "nnXBAlphaRefData";

	int $value	= (int)(mtnGetFieldData( $manualAlphaRefAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $alphaTestModeAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaTestModeAttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaTestModeAttrName, "4", "optionMenuGrp" );
	}

	mtnSetEnableDataFiled( $alphaRefDataAttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaRefDataAttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaRefDataAttrName, "0", "intSliderGrp" );
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnXBZBufferCompStatusEvent
//  機　能 : ZBufferCompの状態変化後の処理。
//  書　式 : global proc mtnXBZBufferCompStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 :  ZBufferCompの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnXBZBufferCompStatusEvent()
{
	string	$zBufferCompAttrName		= "nnXBZBufferComp";
	string	$zBufferCompModeAttrName	= "nnXBZBufferCompMode";
//	string	$zBufferUpdateAttrName		= "nnXBZBufferUpdate";

	int $value	= (int)(mtnGetFieldData( $zBufferCompAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $zBufferCompModeAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $zBufferCompModeAttrName, $value );

//	mtnSetEnableDataFiled( $zBufferUpdateAttrName, "checkBoxGrp", $value );
//	mtnSetEnableUpdateCheckBox( $zBufferUpdateAttrName, $value );

}

//---------------------------------------------------------------------------
//  関数名 : mtnXBBlendModeStatusEvent
//  機　能 : BlendModeの状態変化後の処理。
//  書　式 : global proc mtnXBBlendModeStatusEvent( int $texNo )
//  引　数 : texNo : テクスチャレイヤー番号
//  戻り値 : なし
//  説　明 :  BlendModeの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnXBBlendModeStatusEvent( int $texNo )
{
	string	$blendModeName		= "nnXBBlendMode"	+ $texNo;
	string	$lightStageName		= "nnXBLightStage"	+ $texNo;

	string $crtMenu	= mtnGetFieldData( $blendModeName, "optionMenuGrp" );

	if( $crtMenu == "AUTO" ) {
		mtnSetEnableDataFiled( $lightStageName, "checkBoxGrp", false );
		mtnSetEnableUpdateCheckBox( $lightStageName, false );
	}
	else {
		mtnSetEnableDataFiled( $lightStageName, "checkBoxGrp", true );
		mtnSetEnableUpdateCheckBox( $lightStageName, true );
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnXBFilterModeStatusEvent
//  機　能 : FilterModeの状態変化後の処理。
//  書　式 : global proc mtnXBFilterModeStatusEvent( int $texNo )
//  引　数 : texNo : テクスチャレイヤー番号
//  戻り値 : なし
//  説　明 : FilterModeの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnXBFilterModeStatusEvent( int $texNo )
{
	string	$filterModeAttrName		= "nnXBFilterMode"		+ $texNo;
	string	$magFilterModeAttrName	= "nnXBMagFilterMode"	+ $texNo;
	string	$minFilterModeAttrName	= "nnXBMinFilterMode"	+ $texNo;

	int $value	= (int)(mtnGetFieldData( $filterModeAttrName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $magFilterModeAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $magFilterModeAttrName, $value );
	mtnSetEnableDataFiled( $minFilterModeAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $minFilterModeAttrName, $value );

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutLBMaterial
//  機　能 : AllMaterialAttribute Lindbergマテリアル属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutLBMaterial( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : AllMaterialAttribute Lindbergマテリアル属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutLBMaterial( string $parent )
{
	global int $nnLayoutWidth;
	global int $nnLBLayoutHeight;
	global int $nnItemColPos;
	global int $nnUpdateChkboxColPos;
	global int $nnUnitColPos1;
	global int $nnUnitColPos2;
	global int $nnLabelWidth;
	global string $nnUnitChar;
	global int $nnFieldWidth;
	global int $nnColumWidth2;
	global int $nnColumWidth3;

	setParent $parent;

	// frameLayout [[
	frameLayout
		-width			$nnLayoutWidth
		-height			$nnLBLayoutHeight
		-collapsable	true
		-marginWidth	5
		-marginHeight	5
		-label 			"Lindbergh Material Attributes"
		-borderVisible	true
		-borderStyle	"etchedIn"
		MTN_LBMaterialLayout;

		// columnLayout
		columnLayout
			MTN_LBMaterialColumnLayout;
//----------------------------------------------------------------------------
//			Unit
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnUnitColPos1 $nnUnitColPos2;
				text	-label		"";
				text	-label		$nnUnitChar;
			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBUserProfile
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "User Profile"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_LBUserProfile;
						menuItem -label "NONE"	-data 0;
						menuItem -label "1"		-data 1;
						menuItem -label "2"		-data 2;
						menuItem -label "3"		-data 3;
						menuItem -label "4"		-data 4;
						menuItem -label "5"		-data 5;
						menuItem -label "6"		-data 6;
						menuItem -label "7"		-data 7;
						menuItem -label "8"		-data 8;
						menuItem -label "9"		-data 9;
						menuItem -label "10"	-data 10;
						menuItem -label "11"	-data 11;
						menuItem -label "12"	-data 12;
						menuItem -label "13"	-data 13;
						menuItem -label "14"	-data 14;
						menuItem -label "15"	-data 15;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "NONE"
					MTN_LBUserProfile;

				mtnCreateUpdateCheckBox( "nnLBUserProfile", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnLBBlendFlag
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Blend"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					-changeCommand		( "mtnLBBlendFlagStatusEvent" )
					MTN_LBBlendFlag;

				mtnCreateUpdateCheckBox( "nnLBBlendFlag", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBBlendEquation
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Blend Equation"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_LBBlendEquation;
					menuItem -label "MIN"				-data 0;
					menuItem -label "MAX"				-data 1;
					menuItem -label "ADD"				-data 2;
					menuItem -label "SUBTRACT"			-data 3;
					menuItem -label "REVERSE SUBTRACT"	-data 4;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "ADD"
					MTN_LBBlendEquation;

				mtnCreateUpdateCheckBox( "nnLBBlendEquation", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBBlendSrcFactorRGB
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Source Factor"
					-extraLabel		"(RGBA or RGB)"
					-columnWidth3	185 155 120
					-columnOffset3	0 0 0
					-columnAlign3	right left left
					MTN_LBBlendSrcFactorRGB;
					menuItem -label "0"						-data 0;
					menuItem -label "1"						-data 1;
					menuItem -label "SRC COLOR"				-data 2;
					menuItem -label "1 - (SRC COLOR)"		-data 3;
					menuItem -label "SRC ALPHA"				-data 4;
					menuItem -label "1 - (SRC ALPHA)"		-data 5;
					menuItem -label "DST ALPHA"				-data 6;
					menuItem -label "1 - (DST ALPHA)"		-data 7;
					menuItem -label "DST COLOR"				-data 8;
					menuItem -label "1 - (DST COLOR)"		-data 9;
					menuItem -label "CONSTANT COLOR"		-data 10;
					menuItem -label "1 - (CONSTANT COLOR)"	-data 11;
					menuItem -label "CONSTANT ALPHA"		-data 12;
					menuItem -label "1 - (CONSTANT ALPHA)"	-data 13;
					menuItem -label "SRC ALPHA SATURATE"	-data 14;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "SRC ALPHA"
					MTN_LBBlendSrcFactorRGB;

				mtnCreateUpdateCheckBox( "nnLBBlendSrcFactorRGB", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBBlendDstFactorRGB
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Destination Factor"
					-extraLabel		"(RGBA or RGB)"
					-columnWidth3	185 155 120
					-columnOffset3	0 0 0
					-columnAlign3	right left left
					MTN_LBBlendDstFactorRGB;
					menuItem -label "0"						-data 0;
					menuItem -label "1"						-data 1;
					menuItem -label "SRC COLOR"				-data 2;
					menuItem -label "1 - (SRC COLOR)"		-data 3;
					menuItem -label "SRC ALPHA"				-data 4;
					menuItem -label "1 - (SRC ALPHA)"		-data 5;
					menuItem -label "DST ALPHA"				-data 6;
					menuItem -label "1 - (DST ALPHA)"		-data 7;
					menuItem -label "DST COLOR"				-data 8;
					menuItem -label "1 - (DST COLOR)"		-data 9;
					menuItem -label "CONSTANT COLOR"		-data 10;
					menuItem -label "1 - (CONSTANT COLOR)"	-data 11;
					menuItem -label "CONSTANT ALPHA"		-data 12;
					menuItem -label "1 - (CONSTANT ALPHA)"	-data 13;
					menuItem -label "SRC ALPHA SATURATE"	-data 14;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "1 - (SRC ALPHA)"
					MTN_LBBlendDstFactorRGB;

				mtnCreateUpdateCheckBox( "nnLBBlendDstFactorRGB", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnLBBlendFuncSeparate
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Blend Func Separate"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					-changeCommand		( "mtnLBBlendFuncSeparateStatusEvent" )
					MTN_LBBlendFuncSeparate;

				mtnCreateUpdateCheckBox( "nnLBBlendFuncSeparate", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBBlendSrcFactorA
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Source Factor"
					-extraLabel		"(Alpha)"
					-columnWidth3	185 155 120
					-columnOffset3	0 0 0
					-columnAlign3	right left left
					MTN_LBBlendSrcFactorA;
					menuItem -label "0"						-data 0;
					menuItem -label "1"						-data 1;
					menuItem -label "SRC COLOR"				-data 2;
					menuItem -label "1 - (SRC COLOR)"		-data 3;
					menuItem -label "SRC ALPHA"				-data 4;
					menuItem -label "1 - (SRC ALPHA)"		-data 5;
					menuItem -label "DST ALPHA"				-data 6;
					menuItem -label "1 - (DST ALPHA)"		-data 7;
					menuItem -label "DST COLOR"				-data 8;
					menuItem -label "1 - (DST COLOR)"		-data 9;
					menuItem -label "CONSTANT COLOR"		-data 10;
					menuItem -label "1 - (CONSTANT COLOR)"	-data 11;
					menuItem -label "CONSTANT ALPHA"		-data 12;
					menuItem -label "1 - (CONSTANT ALPHA)"	-data 13;
					menuItem -label "SRC ALPHA SATURATE"	-data 14;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "SRC ALPHA"
					MTN_LBBlendSrcFactorA;

				mtnCreateUpdateCheckBox( "nnLBBlendSrcFactorA", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBBlendDstFactorA
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label			"Destination Factor"
					-extraLabel		"(Alpha)"
					-columnWidth3	185 155 120
					-columnOffset3	0 0 0
					-columnAlign3	right left left
					MTN_LBBlendDstFactorA;
					menuItem -label "0"						-data 0;
					menuItem -label "1"						-data 1;
					menuItem -label "SRC COLOR"				-data 2;
					menuItem -label "1 - (SRC COLOR)"		-data 3;
					menuItem -label "SRC ALPHA"				-data 4;
					menuItem -label "1 - (SRC ALPHA)"		-data 5;
					menuItem -label "DST ALPHA"				-data 6;
					menuItem -label "1 - (DST ALPHA)"		-data 7;
					menuItem -label "DST COLOR"				-data 8;
					menuItem -label "1 - (DST COLOR)"		-data 9;
					menuItem -label "CONSTANT COLOR"		-data 10;
					menuItem -label "1 - (CONSTANT COLOR)"	-data 11;
					menuItem -label "CONSTANT ALPHA"		-data 12;
					menuItem -label "1 - (CONSTANT ALPHA)"	-data 13;
					menuItem -label "SRC ALPHA SATURATE"	-data 14;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "1 - (SRC ALPHA)"
					MTN_LBBlendDstFactorA;

				mtnCreateUpdateCheckBox( "nnLBBlendDstFactorA", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBBlendConstColor
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				int	$textColumWidth3 = $nnItemColPos - $nnLabelWidth - $nnColumWidth2;
				rowLayout
					-numberOfColumns	3
					-columnWidth3		$nnLabelWidth $nnColumWidth2 $textColumWidth3
					-columnOffset3		0 5 0
					-columnAlign3		right center left
					MTN_LBBlendConstColorRowLayout;
					text
						-label "Blend Const Color"
						MTN_LBBlendConstColorLabel1;
					textField
						-text	"0x00000000"
						-changeCommand ( "mtnInputDataNumericCheck nnLBBlendConstColor" )
						-receiveFocusCommand ( "mtnTempInputDataSave nnLBBlendConstColor" )
						MTN_LBBlendConstColor;
					text
						-label "HEX ( 0x======== RGBA ) "
						MTN_LBBlendConstColorLabel2;
				setParent ..;

				mtnCreateUpdateCheckBox( "nnLBBlendConstColor", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnLBBlendLogicFlag
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Logical Operation"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					-changeCommand		( "mtnLBBlendLogicFlagStatusEvent" )
					MTN_LBBlendLogicFlag;

				mtnCreateUpdateCheckBox( "nnLBBlendLogicFlag", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBBlendLogicOperation
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Operation Code"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_LBBlendLogicOperation;
					menuItem -label "CLEAR"			-data 0;
					menuItem -label "AND"			-data 1;
					menuItem -label "AND REVERSE"	-data 2;
					menuItem -label "COPY"			-data 3;
					menuItem -label "AND INVERTED"	-data 4;
					menuItem -label "NOOP"			-data 5;
					menuItem -label "XOR"			-data 6;
					menuItem -label "OR"			-data 7;
					menuItem -label "NOR"			-data 8;
					menuItem -label "EQUIV"			-data 9;
					menuItem -label "INVERT"		-data 10;
					menuItem -label "OR REVERSE"	-data 11;
					menuItem -label "COPY INVERTED"	-data 12;
					menuItem -label "OR_INVERTED"	-data 13;
					menuItem -label "NAND"			-data 14;
					menuItem -label "SET"			-data 15;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "NOOP"
					MTN_LBBlendLogicOperation;

				mtnCreateUpdateCheckBox( "nnLBBlendLogicOperation", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnLBAlphaTest
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Alpha Test"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					-changeCommand		( "mtnLBAlphaTestStatusEvent" )
					MTN_LBAlphaTest;

				mtnCreateUpdateCheckBox( "nnLBAlphaTest", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnLBManualSetting
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Manual Alpha Ref Data"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					-changeCommand		( "mtnLBManualSettingStatusEvent" )
					MTN_LBManualSetting;

				mtnCreateUpdateCheckBox( "nnLBManualSetting", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBAlphaTestMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Alpha Test Mode"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_LBAlphaTestMode;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "LESS"			-data 1;
					menuItem -label "EQUAL"			-data 2;
					menuItem -label "LESS EQUAL"	-data 3;
					menuItem -label "GREATER"		-data 4;
					menuItem -label "NOT EQUAL"		-data 5;
					menuItem -label "GREATER EQUAL"	-data 6;
					menuItem -label "ALWAYS"		-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "GREATER"
					MTN_LBAlphaTestMode;

				mtnCreateUpdateCheckBox( "nnLBAlphaTestMode", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBManualAlphaRef
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				intSliderGrp
					-label			"Alpha Reference Data"
					-columnWidth3	$nnLabelWidth $nnColumWidth2 $nnColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					MTN_LBManualAlphaRef;

				mtnCreateUpdateCheckBox( "nnLBManualAlphaRef", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnLBZBufferComp
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"ZBuffer Compare"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					-changeCommand		( "mtnLBZBufferCompStatusEvent" )
					MTN_LBZBufferComp;

				mtnCreateUpdateCheckBox( "nnLBZBufferComp", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnLBDepthCompFunction
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "ZBuffer Compare Mode"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_LBDepthCompFunction;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "LESS"			-data 1;
					menuItem -label "EQUAL"			-data 2;
					menuItem -label "LESS EQUAL"	-data 3;
					menuItem -label "GREATER"		-data 4;
					menuItem -label "NOT EQUAL"		-data 5;
					menuItem -label "GREATER EQUAL"	-data 6;
					menuItem -label "ALWAYS"		-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "LESS EQUAL"
					MTN_LBDepthCompFunction;

				mtnCreateUpdateCheckBox( "nnLBDepthCompFunction", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnLBDepthWriting
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Depth Writing"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					MTN_LBDepthWriting;

				mtnCreateUpdateCheckBox( "nnLBDepthWriting", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnLBRWriting
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Red Writing"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					MTN_LBRWriting;

				mtnCreateUpdateCheckBox( "nnLBRWriting", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnLBGWriting
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Green Writing"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					MTN_LBGWriting;

				mtnCreateUpdateCheckBox( "nnLBGWriting", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnLBBWriting
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Blue Writing"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					MTN_LBBWriting;

				mtnCreateUpdateCheckBox( "nnLBBWriting", false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			nnLBAWriting
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Alpha Writing"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					MTN_LBAWriting;

				mtnCreateUpdateCheckBox( "nnLBAWriting", false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			End
//----------------------------------------------------------------------------
		// ]] columnLayout
		setParent ..;
	// ]] frameLayout
	setParent ..;

	// GUIの表示設定を変更
	int $nnlb   = mtnLBGetPluginInfoMayaNNExporter();
	int	$nnx360 = mtnXENONGetPluginInfoMayaNNExporter();
	int	$nnps3  = mtnPS3GetPluginInfoMayaNNExporter();
	int $nndxg2 = mtnDXG2GetPluginInfoMayaNNExporter();
	if( $nnx360 || $nnps3 || $nndxg2 )	$nnlb = true;
	frameLayout
		-edit
		-collapse		true
		-visible		$nnlb
		MTN_LBMaterialLayout;

	mtnLBBlendFuncSeparateStatusEvent();
	mtnLBBlendLogicFlagStatusEvent();
	mtnLBAlphaTestStatusEvent();

}

//---------------------------------------------------------------------------
//  関数名 : mtnLBBlendFlagStatusEvent
//  機　能 : BlendFlagの状態変化後の処理。
//  書　式 : global proc mtnLBBlendFlagStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : BlendFlagの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnLBBlendFlagStatusEvent()
{
	string	$blendFlagName					= "nnLBBlendFlag";
	string	$blendLBBlendEquationName		= "nnLBBlendEquation";
	string	$blendLBBlendSrcFactorRGBName	= "nnLBBlendSrcFactorRGB";
	string	$blendLBBlendDstFactorRGBName	= "nnLBBlendDstFactorRGB";
	string	$blendLBBlendFuncSeparateName	= "nnLBBlendFuncSeparate";
	string	$blendLBBlendvName				= "nnLBBlendLogicFlag";
	string	$blendLBBlendConstColorName		= "nnLBBlendConstColor";

	int $value	= (int)(mtnGetFieldData( $blendFlagName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $blendLBBlendEquationName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendLBBlendEquationName, $value );

	mtnSetEnableDataFiled( $blendLBBlendSrcFactorRGBName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendLBBlendSrcFactorRGBName, $value );

	mtnSetEnableDataFiled( $blendLBBlendDstFactorRGBName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendLBBlendDstFactorRGBName, $value );

	mtnSetEnableDataFiled( $blendLBBlendFuncSeparateName, "checkBoxGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendLBBlendFuncSeparateName, $value );

	mtnSetEnableDataFiled( $blendLBBlendvName, "checkBoxGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendLBBlendvName, $value );

	mtnSetEnableDataFiled( $blendLBBlendConstColorName, "textField", $value );
	text	-edit	-enable	$value	MTN_LBBlendConstColorLabel1;
	text	-edit	-enable	$value	MTN_LBBlendConstColorLabel2;
	mtnSetEnableUpdateCheckBox( $blendLBBlendConstColorName, $value );

	mtnLBBlendFuncSeparateStatusEvent();
	mtnLBBlendLogicFlagStatusEvent();

}

//---------------------------------------------------------------------------
//  関数名 : mtnLBBlendFuncSeparateStatusEvent
//  機　能 : BlendLogicFuncSeparateの状態変化後の処理。
//  書　式 : global proc mtnLBBlendFuncSeparateStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : BlendLogicFuncSeparateの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnLBBlendFuncSeparateStatusEvent()
{
	string	$blendFlagName				= "nnLBBlendFlag";
	string	$blendFuncSeparateName		= "nnLBBlendFuncSeparate";
	string	$blendLBBlendSrcFactorAName	= "nnLBBlendSrcFactorA";
	string	$blendLBBlendDstFactorAName	= "nnLBBlendDstFactorA";

	int $value1	= (int)(mtnGetFieldData( $blendFlagName, "checkBoxGrp" ));
	int $value2	= (int)(mtnGetFieldData( $blendFuncSeparateName, "checkBoxGrp" ));
	
	int $value = $value1*$value2;

	mtnSetEnableDataFiled( $blendLBBlendSrcFactorAName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendLBBlendSrcFactorAName, $value );

	mtnSetEnableDataFiled( $blendLBBlendDstFactorAName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendLBBlendDstFactorAName, $value );

}

//---------------------------------------------------------------------------
//  関数名 : mtnLBBlendLogicFlagStatusEvent
//  機　能 : BlendLogicFlagの状態変化後の処理。
//  書　式 : global proc mtnLBBlendLogicFlagStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : BlendLogicFlagの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnLBBlendLogicFlagStatusEvent()
{
	string	$blendFlagName				= "nnLBBlendFlag";
	string	$blendLogicFlagName			= "nnLBBlendLogicFlag";
	string	$blendLogicOperationName	= "nnLBBlendLogicOperation";

	int $value1	= (int)(mtnGetFieldData( $blendFlagName, "checkBoxGrp" ));
	int $value2	= (int)(mtnGetFieldData( $blendLogicFlagName, "checkBoxGrp" ));
	
	int $value = $value1*$value2;

	mtnSetEnableDataFiled( $blendLogicOperationName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendLogicOperationName, $value );

}

//---------------------------------------------------------------------------
//  関数名 : mtnLBAlphaTestStatusEvent
//  機　能 : AlphaTestの状態変化後の処理。
//  書　式 : global proc mtnLBAlphaTestStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 :  AlphaTestの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnLBAlphaTestStatusEvent()
{
	string	$alphaTestAttrName		= "nnLBAlphaTest";
	string	$manualSettingName		= "nnLBManualSetting";
	string	$alphaTestModeAttrName	= "nnLBAlphaTestMode";
	string	$alphaRefDataAttrName	= "nnLBManualAlphaRef";

	int $value1	= (int)(mtnGetFieldData( $alphaTestAttrName, "checkBoxGrp" ));
	int $value2	= (int)(mtnGetFieldData( $manualSettingName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $manualSettingName, "checkBoxGrp", $value1 );
	mtnSetEnableUpdateCheckBox( $manualSettingName, $value1 );
	if( $value1 == 0 ) {
		mtnSetInputFieldData( $manualSettingName, "0", "checkBoxGrp" );
	}

	mtnSetEnableDataFiled( $alphaTestModeAttrName, "optionMenuGrp", ($value1*$value2) );
	mtnSetEnableUpdateCheckBox( $alphaTestModeAttrName, ($value1*$value2) );
	if( ($value1*$value2) == 0 ) {
		mtnSetInputFieldData( $alphaTestModeAttrName, "4", "optionMenuGrp" );
	}

	mtnSetEnableDataFiled( $alphaRefDataAttrName, "intSliderGrp", ($value1*$value2) );
	mtnSetEnableUpdateCheckBox( $alphaRefDataAttrName, ($value1*$value2) );
	if( ($value1*$value2) == 0 ) {
		mtnSetInputFieldData( $alphaRefDataAttrName, "0", "intSliderGrp" );
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnLBManualSettingStatusEvent
//  機　能 : ManualSettingの状態変化後の処理。
//  書　式 : global proc mtnLBManualSettingStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : ManualSettingの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnLBManualSettingStatusEvent()
{
	string	$manualSettingName		= "nnLBManualSetting";
	string	$alphaTestModeAttrName	= "nnLBAlphaTestMode";
	string	$alphaRefDataAttrName	= "nnLBManualAlphaRef";

	int $value	= (int)(mtnGetFieldData( $manualSettingName, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $alphaTestModeAttrName, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaTestModeAttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaTestModeAttrName, "4", "optionMenuGrp" );
	}

	mtnSetEnableDataFiled( $alphaRefDataAttrName, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaRefDataAttrName, $value );
	if( $value == 0 ) {
		mtnSetInputFieldData( $alphaRefDataAttrName, "0", "intSliderGrp" );
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnLBZBufferCompStatusEvent
//  機　能 : ZBufferCompの状態変化後の処理。
//  書　式 : global proc mtnLBZBufferCompStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : ZBufferCompの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnLBZBufferCompStatusEvent()
{
	string	$zBufferComp		= "nnLBZBufferComp";
	string	$depthCompFunction	= "nnLBDepthCompFunction";
	string	$depthWriting		= "nnLBDepthWriting";

	int $value	= (int)(mtnGetFieldData( $zBufferComp, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $depthCompFunction, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $depthCompFunction, $value );

	mtnSetEnableDataFiled( $depthWriting, "checkBoxGrp", $value );
	mtnSetEnableUpdateCheckBox( $depthWriting, $value );

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutPSPMaterial
//  機　能 : AllMaterialAttribute PSPマテリアル属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutPSPMaterial( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : AllMaterialAttribute PSPマテリアル属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutPSPMaterial( string $parent )
{
	global int $nnLayoutWidth;
	global int $nnPSPLayoutHeight;
	global int $nnItemColPos;
	global int $nnUpdateChkboxColPos;
	global int $nnUnitColPos1;
	global int $nnUnitColPos2;
	global int $nnLabelWidth;
	global string $nnUnitChar;
	global int $nnFieldWidth;
	global int $nnColumWidth2;
	global int $nnColumWidth3;

	setParent $parent;

	// frameLayout [[
	frameLayout
		-width			$nnLayoutWidth
		-height			$nnPSPLayoutHeight
		-collapsable	true
		-marginWidth	5
		-marginHeight	5
		-label 			"PSP Material Attributes"
		-borderVisible	true
		-borderStyle	"etchedIn"
		MTN_PSPMaterialLayout;

		// columnLayout
		columnLayout
			MTN_PSPMaterialColumnLayout;
//----------------------------------------------------------------------------
//			Unit
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnUnitColPos1 $nnUnitColPos2;
				text	-label		"";
				text	-label		$nnUnitChar;
			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			nnPSPBlendFlag
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Alpha Blending"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					-changeCommand		( "mtnPSPBlendFlagStatusEvent" )
					MTN_PSPBlendFlag;

				mtnCreateUpdateCheckBox( "nnPSPBlendFlag", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPBlendOperand
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Blend Operand"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_PSPBlendOperand;
					menuItem -label "ADD"				-data 0;
					menuItem -label "SUBTRACT"			-data 1;
					menuItem -label "REVERSE SUBTRACT"	-data 2;
					menuItem -label "MIN"				-data 3;
					menuItem -label "MAX"				-data 4;
					menuItem -label "ABS"				-data 5;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "ADD"
					MTN_PSPBlendOperand;

				mtnCreateUpdateCheckBox( "nnPSPBlendOperand", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPBlendParamA
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Blend Parameter A "
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_PSPBlendParamA;
					menuItem -label "DST COLOR"					-data 0;
					menuItem -label "1 - (DST COLOR)"			-data 1;
					menuItem -label "SRC ALPHA"					-data 2;
					menuItem -label "1 - (SRC ALPHA)"			-data 3;
					menuItem -label "DST ALPHA"					-data 4;
					menuItem -label "1 - (DST ALPHA)"			-data 5;
					menuItem -label "2 * (SRC ALPHA)"			-data 6;
					menuItem -label "1 - (2 * (SRC ALPHA))"		-data 7;
					menuItem -label "2 * (DST ALPHA)"			-data 8;
					menuItem -label "1 - (2 * (DST ALPHA))"		-data 9;
					menuItem -label "FIX VALUE"					-data 10;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "SRC ALPHA"
					MTN_PSPBlendParamA;

				mtnCreateUpdateCheckBox( "nnPSPBlendParamA", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPBlendColorA
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				int	$textColumWidth3 = $nnItemColPos - $nnLabelWidth - $nnColumWidth2;
				rowLayout
					-numberOfColumns	3
					-columnWidth3		$nnLabelWidth $nnColumWidth2 $textColumWidth3
					-columnOffset3		0 5 0
					-columnAlign3		right center left
					MTN_PSPBlendColorARowLayout;
					text
						-label "Blend Const Color A"
						MTN_PSPBlendColorALabel1;
					textField
						-text	"0x00000000"
						-changeCommand ( "mtnInputDataNumericCheck nnPSPBlendColorA" )
						-receiveFocusCommand ( "mtnTempInputDataSave nnPSPBlendColorA" )
						MTN_PSPBlendColorA;
					text
						-label "HEX ( 0x======== RGBA ) "
						MTN_PSPBlendColorALabel2;
				setParent ..;

				mtnCreateUpdateCheckBox( "nnPSPBlendColorA", false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
// 			nnPSPBlendParamB
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Blend Parameter B "
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_PSPBlendParamB;
					menuItem -label "DST COLOR"					-data 0;
					menuItem -label "1 - (DST COLOR)"			-data 1;
					menuItem -label "SRC ALPHA"					-data 2;
					menuItem -label "1 - (SRC ALPHA)"			-data 3;
					menuItem -label "DST ALPHA"					-data 4;
					menuItem -label "1 - (DST ALPHA)"			-data 5;
					menuItem -label "2 * (SRC ALPHA)"			-data 6;
					menuItem -label "1 - (2 * (SRC ALPHA))"		-data 7;
					menuItem -label "2 * (DST ALPHA)"			-data 8;
					menuItem -label "1 - (2 * (DST ALPHA))"		-data 9;
					menuItem -label "FIX VALUE"					-data 10;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "1 - (SRC ALPHA)"
					MTN_PSPBlendParamB;

				mtnCreateUpdateCheckBox( "nnPSPBlendParamB", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPBlendColorB
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				int	$textColumWidth3 = $nnItemColPos - $nnLabelWidth - $nnColumWidth2;
				rowLayout
					-numberOfColumns	3
					-columnWidth3		$nnLabelWidth $nnColumWidth2 $textColumWidth3
					-columnOffset3		0 5 0
					-columnAlign3		right center left
					MTN_PSPBlendColorBRowLayout;
					text
						-label "Blend Const Color B"
						MTN_PSPBlendColorBLabel1;
					textField
						-text	"0x00000000"
						-changeCommand ( "mtnInputDataNumericCheck nnPSPBlendColorB" )
						-receiveFocusCommand ( "mtnTempInputDataSave nnPSPBlendColorB" )
						MTN_PSPBlendColorB;
					text
						-label "HEX ( 0x======== RGBA ) "
						MTN_PSPBlendColorBLabel2;
				setParent ..;

				mtnCreateUpdateCheckBox( "nnPSPBlendColorB", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPSPBlendLogic
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Blend Logic"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					-changeCommand		( "mtnPSPBlendLogicStatusEvent" )
					MTN_PSPBlendLogic;

				mtnCreateUpdateCheckBox( "nnPSPBlendLogic", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPBlendLogicOperand
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Logic Operation"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_PSPBlendLogicOperand;
					menuItem -label "CLEAR"			-data 0;
					menuItem -label "AND"			-data 1;
					menuItem -label "AND REVERSE"	-data 2;
					menuItem -label "COPY"			-data 3;
					menuItem -label "AND INVERTED"	-data 4;
					menuItem -label "NOOP"			-data 5;
					menuItem -label "XOR"			-data 6;
					menuItem -label "OR"			-data 7;
					menuItem -label "NOR"			-data 8;
					menuItem -label "EQUIV"			-data 9;
					menuItem -label "INVERT"		-data 10;
					menuItem -label "OR REVERSE"	-data 11;
					menuItem -label "COPY INVERTED"	-data 12;
					menuItem -label "OR_INVERTED"	-data 13;
					menuItem -label "NAND"			-data 14;
					menuItem -label "SET"			-data 15;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "NOOP"
					MTN_PSPBlendLogicOperand;

				mtnCreateUpdateCheckBox( "nnPSPBlendLogicOperand", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";

//----------------------------------------------------------------------------
//			nnPSPAlphaTest
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Alpha Test"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					-changeCommand		( "mtnPSPAlphaTestStatusEvent" )
					MTN_PSPAlphaTest;

				mtnCreateUpdateCheckBox( "nnPSPAlphaTest", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPAlphaTestFunc
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Alpha Test Function"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_PSPAlphaTestFunc;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "ALWAYS"		-data 1;
					menuItem -label "EQUAL"			-data 2;
					menuItem -label "NOT EQUAL"		-data 3;
					menuItem -label "LESS"			-data 4;
					menuItem -label "LESS EQUAL"	-data 5;
					menuItem -label "GREATER"		-data 6;
					menuItem -label "GREATER EQUAL"	-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "GREATER"
					MTN_PSPAlphaTestFunc;

				mtnCreateUpdateCheckBox( "nnPSPAlphaTestFunc", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPManualAlphaTestRef
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Manual Alpha Ref Data"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					-changeCommand		( "mtnPSPManualAlphaTestRefStatusEvent" )
					MTN_PSPManualAlphaTestRef;

				mtnCreateUpdateCheckBox( "nnPSPManualAlphaTestRef", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPAlphaTestRef
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				intSliderGrp
					-label			"Alpha Reference Data"
					-columnWidth3	$nnLabelWidth $nnColumWidth2 $nnColumWidth3
					-minValue		0
					-maxValue		255
					-value			0
					MTN_PSPAlphaTestRef;

				mtnCreateUpdateCheckBox( "nnPSPAlphaTestRef", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPSPDepthTest
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Depth Test"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					-changeCommand		( "mtnPSPDepthTestStatusEvent" )
					MTN_PSPDepthTest;

				mtnCreateUpdateCheckBox( "nnPSPDepthTest", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPDepthTestFunc
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				optionMenuGrp
					-label "Depth Test Function"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					MTN_PSPDepthTestFunc;
					menuItem -label "NEVER"			-data 0;
					menuItem -label "ALWAYS"		-data 1;
					menuItem -label "EQUAL"			-data 2;
					menuItem -label "NOT EQUAL"		-data 3;
					menuItem -label "LESS"			-data 4;
					menuItem -label "LESS EQUAL"	-data 5;
					menuItem -label "GREATER"		-data 6;
					menuItem -label "GREATER EQUAL"	-data 7;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "GREATER"
					MTN_PSPDepthTestFunc;

				mtnCreateUpdateCheckBox( "nnPSPDepthTestFunc", false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
// 			nnPSPPixelMask
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				int	$textColumWidth3 = $nnItemColPos - $nnLabelWidth - $nnColumWidth2;
				rowLayout
					-numberOfColumns	3
					-columnWidth3		$nnLabelWidth $nnColumWidth2 $textColumWidth3
					-columnOffset3		0 5 0
					-columnAlign3		right center left
					MTN_PSPPixelMaskRowLayout;
					text
						-label "Pixel Mask Value"
						MTN_PSPPixelMaskLabel1;
					textField
						-text	"0x00000000"
						-changeCommand ( "mtnInputDataNumericCheck nnPSPPixelMask" )
						-receiveFocusCommand ( "mtnTempInputDataSave nnPSPPixelMask" )
						MTN_PSPPixelMask;
					text
						-label "HEX ( 0x======== RGBA ) "
						MTN_PSPPixelMaskLabel2;
				setParent ..;

				mtnCreateUpdateCheckBox( "nnPSPPixelMask", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPAlphaTestMask
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				int	$textColumWidth3 = $nnItemColPos - $nnLabelWidth - $nnColumWidth2;
				rowLayout
					-numberOfColumns	3
					-columnWidth3		$nnLabelWidth $nnColumWidth2 $textColumWidth3
					-columnOffset3		0 5 0
					-columnAlign3		right center left
					MTN_PSPAlphaTestMaskRowLayout;
					text
						-label "Alpha Test Mask Value"
						MTN_PSPAlphaTestMaskLabel1;
					textField
						-text	"0x00000000"
						-changeCommand ( "mtnInputDataNumericCheck nnPSPAlphaTestMask" )
						-receiveFocusCommand ( "mtnTempInputDataSave nnPSPAlphaTestMask" )
						MTN_PSPAlphaTestMask;
					text
						-label "HEX ( 0x======== RGBA ) "
						MTN_PSPAlphaTestMaskLabel2;
				setParent ..;

				mtnCreateUpdateCheckBox( "nnPSPAlphaTestMask", false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPSPDepthTestMask
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnItemColPos $nnUpdateChkboxColPos;
				checkBoxGrp
					-label			"Depth Test Mask"
					-columnWidth2 	$nnLabelWidth $nnFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			true
					MTN_PSPDepthTestMask;

				mtnCreateUpdateCheckBox( "nnPSPDepthTestMask", false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			End
//----------------------------------------------------------------------------
		// ]] columnLayout
		setParent ..;
	// ]] frameLayout
	setParent ..;

	mtnMakeLayoutTextureAttributePSP( "MTN_PSPMaterialColumnLayout" );

	// GUIの表示設定を変更
	int $nnpsp = mtnPSPGetPluginInfoMayaNNExporter();
	frameLayout
		-edit
		-collapse		true
		-visible		$nnpsp
		MTN_PSPMaterialLayout;

	mtnPSPBlendLogicStatusEvent();
	mtnPSPManualAlphaTestRefStatusEvent();

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutTextureAttributePSP
//  機　能 : PSP用テクスチャ属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutTextureAttributePSP( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : PSP用テクスチャ属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutTextureAttributePSP( string $parent )
{
	global int $nnMainLayoutWidth;
	global int $nnMainLayoutHeight;

	setParent $parent;

	formLayout MTN_TextureAttributePSPFormLayout;
	setParent ..;

	int		$i;
	for( $i=1; $i<2; $i++) {
		mtnMakeLayoutTextureAttributePSPLayout( "MTN_TextureAttributePSPFormLayout", $i );
	}

	formLayout
		-edit
		// MTN_PSPTextureAttribute1Layout
		-attachForm		MTN_PSPTextureAttribute1Layout 	top		5
		-attachForm		MTN_PSPTextureAttribute1Layout 	left	5
		-attachNone		MTN_PSPTextureAttribute1Layout 	bottom
		-attachForm		MTN_PSPTextureAttribute1Layout 	right	5
/***********
		// MTN_PSPTextureAttribute2Layout
		-attachControl	MTN_PSPTextureAttribute2Layout	top		5	MTN_PSPTextureAttribute1Layout
		-attachForm		MTN_PSPTextureAttribute2Layout 	left	5
		-attachNone		MTN_PSPTextureAttribute2Layout 	bottom
		-attachForm		MTN_PSPTextureAttribute2Layout 	right	5;
************/
		MTN_TextureAttributePSPFormLayout;
}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutTextureAttributePSPLayout
//  機　能 : Xbox用テクスチャ属性レイアウトの定義。
//  書　式 : global proc mtnMakeLayoutTextureAttributePSPLayout( string $parent, int $texNo )
//  引　数 : string $parent : 親のレイアウト名
//         : int  $texNo : テクスチャ番号
//  戻り値 : なし
//  説　明 : Xbox用テクスチャ属性レイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutTextureAttributePSPLayout( string $parent, int $texNo )
{
	global int $nnTexLayoutWidth;
	global int $nnPSPTexLayoutHeight;
	global int $nnTexItemColPos;
	global int $nnTexLabelWidth;
	global int $nnTexFieldWidth;
	global int $nnTexUpdateChkboxColPos;

	global int $nnTexUnitColPos1;
	global int $nnTexUnitColPos2;
	global string $nnUnitChar;
	global int $nnTexColumWidth2;
	global int $nnTexColumWidth3;

	string $frameLayoutName;
	string $attrName;

/*********
	string $labelTable[] = {
		"PSP Texture1(Bottom) Attributes",
		"PSP Texture2(Top) Attributes"
	};
************/
	string $labelTable[] = {
		"PSP Texture Attributes"
	};

	setParent $parent;

	$frameLayoutName	= 	"MTN_PSPTextureAttribute";
	$frameLayoutName	+=	$texNo;
	$frameLayoutName	+=	"Layout";

	// frameLayout [[
	frameLayout
		-width			$nnTexLayoutWidth
		-height			$nnPSPTexLayoutHeight
		-collapsable	true
//		-collapse		true
		-marginWidth	5
		-marginHeight	5
		-label 			$labelTable[$texNo-1]
		-borderVisible	true
		-borderStyle	"etchedIn"
		$frameLayoutName;

		$attrName	= 	"MTN_PSPTextureAttribute";
		$attrName	+=	$texNo;
		$attrName	+=	"ColumnLayout";

		// columnLayout
		columnLayout
			$attrName;
//----------------------------------------------------------------------------
//			Unit
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexUnitColPos1 $nnTexUnitColPos2;
				text	-label		"";
				text	-label		$nnUnitChar;
			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPBlendMode
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PSPBlendMode";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label			"Texture Function"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-changeCommand	( "mtnPSPBlendModeStatusEvent " + $texNo )
					$attrName;
					menuItem -label "MODULATE"			-data 0;
					menuItem -label "DECAL"				-data 1;
					menuItem -label "BLEND"				-data 2;
					menuItem -label "REPLACE"			-data 3;
					menuItem -label "ADD"				-data 4;
				setParent -menu ..;
				optionMenuGrp
					-edit
					-value			"MODULATE"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPSPBlendMode"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPTexEnvColor
//----------------------------------------------------------------------------
			string $columName;

			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				int	$textColumWidth3 = $nnTexItemColPos - $nnTexLabelWidth - 80;

				$attrName	= 	"MTN_PSPTexEnvColor";
				$attrName	+=	$texNo;

				$columName	=	"MTN_PSPTexEnvColor";
				$columName	+=	$texNo;
				$columName	+=	"RowLayout";

				rowLayout
					-numberOfColumns	3
					-columnWidth3		$nnTexLabelWidth 80 $textColumWidth3
					-columnOffset3		0 5 0
					-columnAlign3		right center left
					$columName;

					$columName	=	"MTN_PSPTexEnvColor";
					$columName	+=	$texNo;
					$columName	+=	"Label1";

					text
						-label "Environment Color"
						$columName;
					textField
						-text	"0x00000000"
						-changeCommand ( "mtnInputDataNumericCheck nnPSPTexEnvColor" + $texNo )
						-receiveFocusCommand ( "mtnTempInputDataSave nnPSPTexEnvColor" + $texNo )
						$attrName;

					$columName	=	"MTN_PSPTexEnvColor";
					$columName	+=	$texNo;
					$columName	+=	"Label2";

					text
						-label "HEX ( 0x======== RGBA ) "
						$columName;
				setParent ..;

				mtnCreateUpdateCheckBox( "nnPSPTexEnvColor"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPSPEnviromentMap
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PSPEnviromentMap";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Enviroment Map"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnPSPEnviromentMap"+$texNo, false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			nnPSPSeparateSpecular
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PSPSeparateSpecular";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Separate Specular"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnPSPSeparateSpecular"+$texNo, false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			nnPSPColorDouble
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PSPColorDouble";
				$attrName	+=	$texNo;

				checkBoxGrp
					-label			"Color Double"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					-numberOfCheckBoxes 1
					-label1 			""
					-value1 			false
					$attrName;

				mtnCreateUpdateCheckBox( "nnPSPColorDouble"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPSPWrapTypeU
//----------------------------------------------------------------------------
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PSPWrapTypeU";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Wrap Type U"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "CLAMP"		-data 1;
					menuItem -label "REPEAT"	-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "REPEAT"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPSPWrapTypeU"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
//			nnPSPWrapTypeV
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PSPWrapTypeV";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"Wrap Type V"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "CLAMP"		-data 1;
					menuItem -label "REPEAT"	-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "REPEAT"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPSPWrapTypeV"+$texNo, false );

			// ]] rowLayout
			setParent ..;

			separator -style "in";
//----------------------------------------------------------------------------
//			nnPSPLODType
//----------------------------------------------------------------------------
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PSPLODType";
				$attrName	+=	$texNo;

				optionMenuGrp
					-label 			"LOD Type"
					-columnWidth2 	$nnTexLabelWidth $nnTexFieldWidth
					$attrName;
					menuItem -label "AUTO"		-data 0;
					menuItem -label "CONSTANT"	-data 1;
					menuItem -label "SLOPE"		-data 2;
				setParent -menu ..;
				// デフォルト値をセット
				optionMenuGrp
					-edit
					-value "AUTO"
					$attrName;

				mtnCreateUpdateCheckBox( "nnPSPLODType"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPLODOffset
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PSPLODOffset";
				$attrName	+=	$texNo;

				floatSliderGrp
					-label			"LOD Level Offset"
					-columnWidth3	$nnTexLabelWidth ((int)$nnTexFieldWidth/3) ((int)$nnTexFieldWidth/2)
					-precision 		6
					-minValue		-1.0
					-maxValue		1.0
					-fieldMinValue	-1000.0
					-fieldMaxValue	1000.0
					-value			0.0
					$attrName;

				mtnCreateUpdateCheckBox( "nnPSPLODOffset"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPLODSlope
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PSPLODSlope";
				$attrName	+=	$texNo;

				floatSliderGrp
					-label			"LOD Slope Value"
					-columnWidth3	$nnTexLabelWidth ((int)$nnTexFieldWidth/3) ((int)$nnTexFieldWidth/2)
					-precision 		6
					-minValue		0.0
					-maxValue		1.0
					-fieldMinValue	0.0
					-fieldMaxValue	1000.0
					-value			0.3
					$attrName;

				mtnCreateUpdateCheckBox( "nnPSPLODSlope"+$texNo, false );

			// ]] rowLayout
			setParent ..;
//----------------------------------------------------------------------------
// 			nnPSPLODMaxLevel
//----------------------------------------------------------------------------
			// rowLayout [[
			rowLayout
				-numberOfColumns	2
				-columnWidth2		$nnTexItemColPos $nnTexUpdateChkboxColPos;

				$attrName	= 	"MTN_PSPLODMaxLevel";
				$attrName	+=	$texNo;

				intSliderGrp
					-label			"LOD Max Level"
					-columnWidth3	$nnTexLabelWidth ((int)$nnTexFieldWidth/3) ((int)$nnTexFieldWidth/2)
					-minValue	0
					-maxValue	7
					$attrName;

				mtnCreateUpdateCheckBox( "nnPSPLODMaxLevel"+$texNo, false );

			// ]] rowLayout
			setParent ..;

//----------------------------------------------------------------------------
//			End
//----------------------------------------------------------------------------
		// ]] columnLayout
		setParent ..;
	// ]] frameLayout
	setParent ..;

	// GUIの表示設定を変更
	int $nnpsp = mtnPSPGetPluginInfoMayaNNExporter();
	frameLayout
		-edit
		-collapse		true
		-visible		$nnpsp
		$frameLayoutName;

	mtnPSPBlendModeStatusEvent( $texNo );

}

//---------------------------------------------------------------------------
//  関数名 : mtnPSPBlendModeStatusEvent
//  機　能 : BlendModeの状態変化後の処理。
//  書　式 : global proc mtnPSPBlendModeStatusEvent( int $texNo )
//  引　数 : texNo : テクスチャレイヤー番号
//  戻り値 : なし
//  説　明 :  BlendModeの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPSPBlendModeStatusEvent( int $texNo )
{
	string	$blendMode		= "nnPSPBlendMode"		+ $texNo;
	string	$texEnvColor	= "nnPSPTexEnvColor"	+ $texNo;
	string $columName;

	string $crtMenu	= mtnGetFieldData( $blendMode, "optionMenuGrp" );

	if( $crtMenu == "BLEND" ) {
		mtnSetEnableDataFiled( $texEnvColor, "textField", true );
		$columName	=	"MTN_PSPTexEnvColor";
		$columName	+=	$texNo;
		$columName	+=	"Label1";
		text	-edit	-enable	true	$columName;
		$columName	=	"MTN_PSPTexEnvColor";
		$columName	+=	$texNo;
		$columName	+=	"Label2";
		text	-edit	-enable	true	$columName;
		mtnSetEnableUpdateCheckBox( $texEnvColor, true );
	}
	else {
		mtnSetEnableDataFiled( $texEnvColor, "textField", false );
		$columName	=	"MTN_PSPTexEnvColor";
		$columName	+=	$texNo;
		$columName	+=	"Label1";
		text	-edit	-enable	false	$columName;
		$columName	=	"MTN_PSPTexEnvColor";
		$columName	+=	$texNo;
		$columName	+=	"Label2";
		text	-edit	-enable	false	$columName;
		mtnSetEnableUpdateCheckBox( $texEnvColor, false );
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnPSPBlendFlagStatusEvent
//  機　能 : BlendFlagの状態変化後の処理。
//  書　式 : global proc mtnLBManualSettingStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : BlendFlagの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPSPBlendFlagStatusEvent()
{
	string	$blendFlag		= "nnPSPBlendFlag";
	string	$blendOperand	= "nnPSPBlendOperand";
	string	$blendParamA	= "nnPSPBlendParamA";
	string	$blendColorA	= "nnPSPBlendColorA";
	string	$blendParamB	= "nnPSPBlendParamB";
	string	$blendColorB	= "nnPSPBlendColorB";
	string	$blendLogic		= "nnPSPBlendLogic";

	int $value	= (int)(mtnGetFieldData( $blendFlag, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $blendOperand, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendOperand, $value );

	mtnSetEnableDataFiled( $blendParamA, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendParamA, $value );
	mtnSetEnableDataFiled( $blendColorA, "textField", $value );
	text	-edit	-enable	$value	MTN_PSPBlendColorALabel1;
	text	-edit	-enable	$value	MTN_PSPBlendColorALabel2;
	mtnSetEnableUpdateCheckBox( $blendColorA, $value );

	mtnSetEnableDataFiled( $blendParamB, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendParamB, $value );
	mtnSetEnableDataFiled( $blendColorB, "textField", $value );
	text	-edit	-enable	$value	MTN_PSPBlendColorBLabel1;
	text	-edit	-enable	$value	MTN_PSPBlendColorBLabel2;
	mtnSetEnableUpdateCheckBox( $blendColorB, $value );

	mtnSetEnableDataFiled( $blendLogic, "checkBoxGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendLogic, $value );

	mtnPSPBlendLogicStatusEvent();
}

//---------------------------------------------------------------------------
//  関数名 : mtnPSPBlendLogicStatusEvent
//  機　能 : BlendLogicの状態変化後の処理。
//  書　式 : global proc mtnPSPBlendLogicStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : BlendLogicの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPSPBlendLogicStatusEvent()
{
	string	$blendFlag			= "nnPSPBlendFlag";
	string	$blendLogic			= "nnPSPBlendLogic";
	string	$blendLogicOperand	= "nnPSPBlendLogicOperand";

	int $value1	= (int)(mtnGetFieldData( $blendFlag, "checkBoxGrp" ));
	int $value2	= (int)(mtnGetFieldData( $blendLogic, "checkBoxGrp" ));
	
	int $value = $value1*$value2;

	mtnSetEnableDataFiled( $blendLogicOperand, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $blendLogicOperand, $value );

}

//---------------------------------------------------------------------------
//  関数名 : mtnPSPAlphaTestStatusEvent
//  機　能 : AlphaTestの状態変化後の処理。
//  書　式 : global proc mtnPSPAlphaTestStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 :  AlphaTestの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPSPAlphaTestStatusEvent()
{
	string	$alphaTest			= "nnPSPAlphaTest";
	string	$alphaTestFunc		= "nnPSPAlphaTestFunc";
	string	$manualAlphaTestRef	= "nnPSPManualAlphaTestRef";
	string	$alphaTestRef		= "nnPSPAlphaTestRef";

	int $value1	= (int)(mtnGetFieldData( $alphaTest, "checkBoxGrp" ));
	int $value2	= (int)(mtnGetFieldData( $manualAlphaTestRef, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $alphaTestFunc, "optionMenuGrp", $value1 );
	mtnSetEnableUpdateCheckBox( $alphaTestFunc, $value1 );

	mtnSetEnableDataFiled( $manualAlphaTestRef, "checkBoxGrp", $value1 );
	mtnSetEnableUpdateCheckBox( $manualAlphaTestRef, $value1 );

	mtnSetEnableDataFiled( $alphaTestRef, "intSliderGrp", ($value1*$value2) );
	mtnSetEnableUpdateCheckBox( $alphaTestRef, ($value1*$value2) );

}

//---------------------------------------------------------------------------
//  関数名 : mtnPSPManualAlphaTestRefStatusEvent
//  機　能 : ManualAlphaTestRefの状態変化後の処理。
//  書　式 : global proc mtnPSPManualAlphaTestRefStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 :  ManualAlphaTestRefの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPSPManualAlphaTestRefStatusEvent()
{
	string	$manualAlphaTestRef	= "nnPSPManualAlphaTestRef";
	string	$alphaTestRef		= "nnPSPAlphaTestRef";

	int $value	= (int)(mtnGetFieldData( $manualAlphaTestRef, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $alphaTestRef, "intSliderGrp", $value );
	mtnSetEnableUpdateCheckBox( $alphaTestRef, $value );

}

//---------------------------------------------------------------------------
//  関数名 : mtnPSPDepthTestStatusEvent
//  機　能 : DepthTestの状態変化後の処理。
//  書　式 : global proc mtnPSPDepthTestStatusEvent()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : DepthTestの状態変化後の処理を定義します。
//---------------------------------------------------------------------------
global proc mtnPSPDepthTestStatusEvent()
{
	string	$depthTestRef	= "nnPSPDepthTest";
	string	$depthTestFunc	= "nnPSPDepthTestFunc";

	int $value	= (int)(mtnGetFieldData( $depthTestRef, "checkBoxGrp" ));

	mtnSetEnableDataFiled( $depthTestFunc, "optionMenuGrp", $value );
	mtnSetEnableUpdateCheckBox( $depthTestFunc, $value );

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutExecuteBotton
//  機　能 : 実行ボタンレイアウトの定義。
//  書　式 : global proc mtnMakeLayoutExecuteBotton( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : 実行ボタンレイアウトを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutExecuteBotton( string $parent )
{
	global int $nnLayoutWidth;

	setParent $parent;

	// frameLayout [[
	frameLayout
		-width			$nnLayoutWidth
		-height			60
		-label 			""
		-borderVisible	true
		-borderStyle	"etchedIn"
		MTN_ExecuteBottonFrameLayout;
		// columnLayout
		columnLayout
			MTN_CommonMaterialColumnLayout;
			// rowLayout [[
			rowLayout
				-width				$nnLayoutWidth
				-numberOfColumns	6
				-columnWidth6		85 85 85 85 85 85
				-columnAttach6		both both both both both both
				-columnOffset6		10 10 10 10 10 10
				-columnAlign6		center center center center center center
				MTNB_ExecuteRowLayout;
				// Execute
				button
					-label		"Apply"
					-command	"mtnUpdateNNMatAttr"
					-width		75
					MTN_ExecuteButton;
				// All Set
				button
					-label		"Set"
					-command	"mtnAllUpdateCheckBoxSet"
					-width		75
					MTN_AllSetButton;
				// All Reset
				button
					-label		"Reset"
					-command	"mtnAllUpdateCheckBoxReset"
					-width		75
					MTN_AllResetButton;
				// All Init
				button
					-label		"Init"
					-command	"mtnAllFieldInit"
					-width		75
					MTN_AllInitButton;
				// All Init
				button
					-label		"Copy"
					-command	"mtnCopyNNMatAttr"
					-width		75
					MTN_AllCopyButton;
				// Close Window
				button
					-label		"Close"
					-command	"mtnCloseWindow"
					-width		75
					MTN_CloseWindowButton;
			// ]] rowLayout
			setParent ..;
		// ]] columnLayout
		setParent ..;
	// ]] frameLayout
	setParent ..;

}

//---------------------------------------------------------------------------
//  関数名 : mtnMakeLayoutAllMaterialAttributeMenu
//  機　能 : プルダウンメニューの定義。
//  書　式 : global proc mtnMakeLayoutAllMaterialAttributeMenu( string $parent )
//  引　数 : string $parent : 親のレイアウト名
//  戻り値 : なし
//  説　明 : プルダウンメニューを定義します。
//---------------------------------------------------------------------------
global proc mtnMakeLayoutAllMaterialAttributeMenu( string $parent )
{
	setParent $parent;

	// Execute
	menu
		-label		"Execute"
		-tearOff	true
		-mnemonic	"E"
		MTN_Menu_Execute;
		// Execute
		menuItem
			-label			"Apply"
			-command		"mtnUpdateNNMatAttr"
			MTN_MenuItem_Execute;
		// Close
		menuItem
			-label			"Close"
			-command		"mtnCloseWindow"
			MTN_MenuItem_Close;
	setParent -menu ..;

	// Edit
	menu
		-label		"Edit"
		-tearOff	true
		-mnemonic	"E"
		MTN_Menu_Edit;
		// All Set
		menuItem
			-label			"All Update Check Box Set"
			-command		"mtnAllUpdateCheckBoxSet"
			MTN_MenuItem_AllSet;
		// All Reset
		menuItem
			-label			"All Update Check Box Reset"
			-command		"mtnAllUpdateCheckBoxReset"
			MTN_MenuItem_AllReset;
		// All Init
		menuItem
			-label			"All Input Field Initialize"
			-command		"mtnAllFieldInit"
			MTN_MenuItem_AllInit;
		// Copy
		menuItem
			-label			"Copy NN Material Attribute"
			-command		"mtnCopyNNMatAttr"
			MTN_MenuItem_CopyNNMatAttr;
	setParent -menu ..;

	// Help
	menu
		-label		"Help"
		-helpMenu	true
		-tearOff	true
		-mnemonic	"H"
		MTN_Menu_Version;
		// Version
		menuItem
			-label			"Version"
			-command		"mtnGetVersion"
			MTN_MenuItem_Version;
	setParent -menu ..;

}

//---------------------------------------------------------------------------
//  関数名 : mtnGetVersion
//  機　能 : バージョン情報を取得します。
//  書　式 : global proc mtnGetVersion()
//  引　数 :
//
//  戻り値 :
//  説　明 :
//---------------------------------------------------------------------------
global proc mtnGetVersion()
{
	int $nnps2 = mtnPS2GetPluginInfoMayaNNExporter();
	int $nngc  = mtnGCGetPluginInfoMayaNNExporter();
	int $nnxb  = mtnXBGetPluginInfoMayaNNExporter();

	string $copyright = "Copyright (C) 2002-2004 SEGA Creative Center Graphics Section";
	$verinfo = $copyright + "\n\n";
	$verinfo += `mtnGetTitleName` + "\n\n";

	confirmDialog
		-title			`mtnGetTitleName`
		-message		$verinfo
		-messageAlign	"center"
		-button			"OK"
		-defaultButton	"OK"
		-dismissString	"OK";
}
//---------------------------------------------------------------------------
//  関数名 : mtnAllFieldInit
//  機　能 : 全てのフィールドを初期化。
//  書　式 : global proc mtnAllFieldInit()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : 全てのフィールドを初期化します。
//---------------------------------------------------------------------------
global proc mtnAllFieldInit()
{
	global string	$nnCommonMatFiledTable[];
	global string	$nnPS2MatFiledTable[];
	global string	$nnPS2TexFiledTable[];
	global string	$nnGCMatFiledTable[];
	global string	$nnGCTexFiledTable[];
	global string	$nnXBMatFiledTable[];
	global string	$nnXBTexFiledTable[];
	global string	$nnLBMatFiledTable[];
	global string	$nnPSPMatFiledTable[];
	global string	$nnPSPTexFiledTable[];
	int				$i,$j;
	int 			$nnps2  = mtnPS2GetPluginInfoMayaNNExporter();
	int 			$nngc   = mtnGCGetPluginInfoMayaNNExporter();
	int 			$nnxb   = mtnXBGetPluginInfoMayaNNExporter();
	int 			$nnlb   = mtnLBGetPluginInfoMayaNNExporter();
	int 			$nnpsp  = mtnPSPGetPluginInfoMayaNNExporter();
	int				$nnx360 = mtnXENONGetPluginInfoMayaNNExporter();
	int				$nnps3  = mtnPS3GetPluginInfoMayaNNExporter();
	int 			$nndxg2 = mtnDXG2GetPluginInfoMayaNNExporter();
	if( $nnx360 || $nnps3 || $nndxg2 )	$nnlb = true;

	// 共通マテリアル属性の初期化
	for( $i = 0; $i < size($nnCommonMatFiledTable); $i += 3 ) {
		// フィールドの初期化
		mtnSetFieldData( $nnCommonMatFiledTable[$i],
						 $nnCommonMatFiledTable[$i+1],
						 $nnCommonMatFiledTable[$i+2] );
	}

	// PlayStation2固有属性の初期化
	if( $nnps2 ) {
		// PlayStatin2マテリアル属性の初期化
		for( $i = 0; $i < size($nnPS2MatFiledTable); $i += 3 ) {
			// フィールドの初期化
			mtnSetFieldData( $nnPS2MatFiledTable[$i],
							 $nnPS2MatFiledTable[$i+1],
							 $nnPS2MatFiledTable[$i+2] );
		}

		// PlayStatin2テクスチャ属性の初期化
		for( $i = 0; $i < size($nnPS2TexFiledTable); $i += 4 ) {
			// フィールドの初期化
			mtnSetFieldData( $nnPS2TexFiledTable[$i]+"1",
							 $nnPS2TexFiledTable[$i+1],
							 $nnPS2TexFiledTable[$i+3] );
			mtnSetFieldData( $nnPS2TexFiledTable[$i]+"2",
							 $nnPS2TexFiledTable[$i+2],
							 $nnPS2TexFiledTable[$i+3] );
		}
		for( $i = 1; $i < 3; $i ++ ) {
			mtnPS2UsePaletteStatusEvent( $i );
			mtnPS2SetAlphaBlendingFromPreset( $i );
			mtnPS2AlphaBlendingCStatusEvent( $i );
			mtnPS2ManualColorClampStatusEvent( $i );
			mtnPS2AlphaTestStatusEvent( $i );
			mtnPS2DstAlphaTestStatusEvent( $i );
			mtnPS2ZBufferTestStatusEvent( $i );
			mtnPS2ManualMipmapStatusEvent( $i );
		}
	}

	// GAMECUBE固有属性の初期化
	if( $nngc ) {
		// GAMECUBEマテリアル属性の初期化
		for( $i = 0; $i < size($nnGCMatFiledTable); $i += 3 ) {
			// フィールドの初期化
			mtnSetFieldData( $nnGCMatFiledTable[$i],
							 $nnGCMatFiledTable[$i+1],
							 $nnGCMatFiledTable[$i+2] );
		}
		mtnGCZBufferCompStatusEvent();
		mtnGCManualAlphaRefStatusEvent();
		// GAMECUBEテクスチャ属性の初期化
		for( $i = 0; $i < size($nnGCTexFiledTable); $i += 6 ) {
			// フィールドの初期化
			mtnSetFieldData( $nnGCTexFiledTable[$i]+"1",
							 $nnGCTexFiledTable[$i+1],
							 $nnGCTexFiledTable[$i+5] );
			mtnSetFieldData( $nnGCTexFiledTable[$i]+"2",
							 $nnGCTexFiledTable[$i+2],
							 $nnGCTexFiledTable[$i+5] );
			mtnSetFieldData( $nnGCTexFiledTable[$i]+"3",
							 $nnGCTexFiledTable[$i+3],
							 $nnGCTexFiledTable[$i+5] );
			mtnSetFieldData( $nnGCTexFiledTable[$i]+"4",
							 $nnGCTexFiledTable[$i+4],
							 $nnGCTexFiledTable[$i+5] );
		}
		for( $i = 1; $i < 5; $i ++ ) {
			mtnGCUsePaletteStatusEvent( $i );
		}
	}

	// Xbox固有属性の初期化
	if( $nnxb ) {
		// Xboxマテリアル属性の初期化
		for( $i = 0; $i < size($nnXBMatFiledTable); $i += 3 ) {
			// フィールドの初期化
			mtnSetFieldData( $nnXBMatFiledTable[$i],
							 $nnXBMatFiledTable[$i+1],
							 $nnXBMatFiledTable[$i+2] );
		}
		mtnXBAlphaTestStatusEvent();
		mtnXBZBufferCompStatusEvent();
		// Xboxテクスチャ属性の初期化
		for( $i = 0; $i < size($nnXBTexFiledTable); $i += 6 ) {
			// フィールドの初期化
			mtnSetFieldData( $nnXBTexFiledTable[$i]+"1",
							 $nnXBTexFiledTable[$i+1],
							 $nnXBTexFiledTable[$i+5] );
			mtnSetFieldData( $nnXBTexFiledTable[$i]+"2",
							 $nnXBTexFiledTable[$i+2],
							 $nnXBTexFiledTable[$i+5] );
			mtnSetFieldData( $nnXBTexFiledTable[$i]+"3",
							 $nnXBTexFiledTable[$i+3],
							 $nnXBTexFiledTable[$i+5] );
			mtnSetFieldData( $nnXBTexFiledTable[$i]+"4",
							 $nnXBTexFiledTable[$i+4],
							 $nnXBTexFiledTable[$i+5] );
		}
		for( $i = 1; $i < 5; $i ++ ) {
			mtnXBBlendModeStatusEvent( $i );
		}
	}

	// Lindbergh固有属性の初期化
	if( $nnlb ) {
		// Lindberghマテリアル属性の初期化
		for( $i = 0; $i < size($nnLBMatFiledTable); $i += 3 ) {
			// フィールドの初期化
			mtnSetFieldData( $nnLBMatFiledTable[$i],
							 $nnLBMatFiledTable[$i+1],
							 $nnLBMatFiledTable[$i+2] );
		}
		mtnLBBlendFlagStatusEvent();
		mtnLBBlendFuncSeparateStatusEvent();
		mtnLBBlendLogicFlagStatusEvent();
		mtnLBAlphaTestStatusEvent();
		mtnLBManualSettingStatusEvent();
		mtnLBZBufferCompStatusEvent();
	}

	// PSP固有属性の初期化
	if( $nnpsp ) {
		// PSPマテリアル属性の初期化
		for( $i = 0; $i < size($nnPSPMatFiledTable); $i += 3 ) {
			// フィールドの初期化
			mtnSetFieldData( $nnPSPMatFiledTable[$i],
							 $nnPSPMatFiledTable[$i+1],
							 $nnPSPMatFiledTable[$i+2] );
		}
		mtnPSPBlendFlagStatusEvent();
		mtnPSPBlendLogicStatusEvent();
		mtnPSPAlphaTestStatusEvent();
		mtnPSPManualAlphaTestRefStatusEvent();
		mtnPSPDepthTestStatusEvent();
		// PSPテクスチャ属性の初期化
		for( $i = 0; $i < size($nnPSPTexFiledTable); $i += 3 ) {
			// フィールドの初期化
			mtnSetFieldData( $nnPSPTexFiledTable[$i]+"1",
							 $nnPSPTexFiledTable[$i+1],
							 $nnPSPTexFiledTable[$i+2] );
		}
		for( $i = 1; $i < 2; $i ++ ) {
			mtnPSPBlendModeStatusEvent( $i );
		}
	}
}

//---------------------------------------------------------------------------
//  関数名 : mtnAllCheckUpdateBoxSet
//  機　能 : 全ての更新項目チェックボックスをONに設定。
//  書　式 : global proc mtnAllUpdateCheckBoxSet()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : 全ての更新項目チェックボックスをONに設定します。
//---------------------------------------------------------------------------
global proc mtnAllUpdateCheckBoxSet()
{
	global string	$nnCommonMatFiledTable[];
	global string	$nnPS2MatFiledTable[];
	global string	$nnPS2TexFiledTable[];
	global string	$nnGCMatFiledTable[];
	global string	$nnGCTexFiledTable[];
	global string	$nnXBMatFiledTable[];
	global string	$nnXBTexFiledTable[];
	global string	$nnLBMatFiledTable[];
	global string	$nnPSPMatFiledTable[];
	global string	$nnPSPTexFiledTable[];
	int				$i,$j;
	int 			$nnps2  = mtnPS2GetPluginInfoMayaNNExporter();
	int 			$nngc   = mtnGCGetPluginInfoMayaNNExporter();
	int 			$nnxb   = mtnXBGetPluginInfoMayaNNExporter();
	int 			$nnlb   = mtnLBGetPluginInfoMayaNNExporter();
	int 			$nnpsp  = mtnPSPGetPluginInfoMayaNNExporter();
	int				$nnx360 = mtnXENONGetPluginInfoMayaNNExporter();
	int				$nnps3  = mtnPS3GetPluginInfoMayaNNExporter();
	int 			$nndxg2 = mtnDXG2GetPluginInfoMayaNNExporter();
	if( $nnx360 || $nnps3 || $nndxg2 )	$nnlb = true;

	// 共通マテリアル属性の更新項目チェックボックスをONに設定
	for( $i = 0; $i < size($nnCommonMatFiledTable); $i += 3 ) {
		if( mtnGetEnableUpdateCheckBox( $nnCommonMatFiledTable[$i] ) ) {
			mtnSetUpdateCheckBox( $nnCommonMatFiledTable[$i], true );
		}
	}

	// PlayStation2固有属性の更新項目チェックボックスをONに設定
	if( $nnps2 ) {
		// PlayStatin2マテリアル属性の設定
		for( $i = 0; $i < size($nnPS2MatFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnPS2MatFiledTable[$i] ) ) {
				mtnSetUpdateCheckBox( $nnPS2MatFiledTable[$i], true );
			}
		}
		// PlayStatin2テクスチャ属性の設定
		for( $i = 0; $i < size($nnPS2TexFiledTable); $i += 4 ) {
			if( mtnGetEnableUpdateCheckBox( $nnPS2TexFiledTable[$i]+"1" ) ) {
				mtnSetUpdateCheckBox( $nnPS2TexFiledTable[$i]+"1", true );
			}
			if( mtnGetEnableUpdateCheckBox( $nnPS2TexFiledTable[$i]+"2" ) ) {
				mtnSetUpdateCheckBox( $nnPS2TexFiledTable[$i]+"2", true );
			}
		}
	}

	// GAMECUBE固有属性の更新項目チェックボックスをONに設定
	if( $nngc ) {
		// GAMECUBEマテリアル属性の設定
		for( $i = 0; $i < size($nnGCMatFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnGCMatFiledTable[$i] ) ) {
				mtnSetUpdateCheckBox( $nnGCMatFiledTable[$i], true );
			}
		}
		// GAMECUBEテクスチャ属性の設定
		for( $i = 0; $i < size($nnGCTexFiledTable); $i += 6 ) {
			if( mtnGetEnableUpdateCheckBox( $nnGCTexFiledTable[$i]+"1" ) ) {
				mtnSetUpdateCheckBox( $nnGCTexFiledTable[$i]+"1", true );
			}
			if( mtnGetEnableUpdateCheckBox( $nnGCTexFiledTable[$i]+"2" ) ) {
				mtnSetUpdateCheckBox( $nnGCTexFiledTable[$i]+"2", true );
			}
			if( mtnGetEnableUpdateCheckBox( $nnGCTexFiledTable[$i]+"3" ) ) {
				mtnSetUpdateCheckBox( $nnGCTexFiledTable[$i]+"3", true );
			}
			if( mtnGetEnableUpdateCheckBox( $nnGCTexFiledTable[$i]+"4" ) ) {
				mtnSetUpdateCheckBox( $nnGCTexFiledTable[$i]+"4", true );
			}
		}
	}

	// Xbox固有属性の更新項目チェックボックスをONに設定
	if( $nnxb ) {
		// Xboxマテリアル属性の設定
		for( $i = 0; $i < size($nnXBMatFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnXBMatFiledTable[$i] ) ) {
				mtnSetUpdateCheckBox( $nnXBMatFiledTable[$i], true );
			}
		}
		// Xboxテクスチャ属性の設定
		for( $i = 0; $i < size($nnXBTexFiledTable); $i += 6 ) {
			if( mtnGetEnableUpdateCheckBox( $nnXBTexFiledTable[$i]+"1" ) ) {
				mtnSetUpdateCheckBox( $nnXBTexFiledTable[$i]+"1", true );
			}
			if( mtnGetEnableUpdateCheckBox( $nnXBTexFiledTable[$i]+"2" ) ) {
				mtnSetUpdateCheckBox( $nnXBTexFiledTable[$i]+"2", true );
			}
			if( mtnGetEnableUpdateCheckBox( $nnXBTexFiledTable[$i]+"3" ) ) {
				mtnSetUpdateCheckBox( $nnXBTexFiledTable[$i]+"3", true );
			}
			if( mtnGetEnableUpdateCheckBox( $nnXBTexFiledTable[$i]+"4" ) ) {
				mtnSetUpdateCheckBox( $nnXBTexFiledTable[$i]+"4", true );
			}
		}
	}

	// Lindbergh 固有属性の更新項目チェックボックスをONに設定
	if( $nnlb ) {
		// Lindberghマテリアル属性の設定
		for( $i = 0; $i < size($nnLBMatFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnLBMatFiledTable[$i] ) ) {
				mtnSetUpdateCheckBox( $nnLBMatFiledTable[$i], true );
			}
		}
	}

	// PSP 固有属性の更新項目チェックボックスをONに設定
	if( $nnpsp ) {
		// PSPマテリアル属性の設定
		for( $i = 0; $i < size($nnPSPMatFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnPSPMatFiledTable[$i] ) ) {
				mtnSetUpdateCheckBox( $nnPSPMatFiledTable[$i], true );
			}
		}
		// PSPテクスチャ属性の初期化
		for( $i = 0; $i < size($nnPSPTexFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnPSPTexFiledTable[$i]+"1" ) ) {
				mtnSetUpdateCheckBox( $nnPSPTexFiledTable[$i]+"1", true );
			}
		}
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnAllUpdateCheckBoxReset
//  機　能 : 全てのチェックボックスをOFFに設定。
//  書　式 : global proc mtnAllUpdateCheckBoxReset()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : 全てのチェックボックスをOFFに設定します。
//---------------------------------------------------------------------------
global proc mtnAllUpdateCheckBoxReset()
{
	global string	$nnCommonMatFiledTable[];
	global string	$nnPS2MatFiledTable[];
	global string	$nnPS2TexFiledTable[];
	global string	$nnGCMatFiledTable[];
	global string	$nnGCTexFiledTable[];
	global string	$nnXBMatFiledTable[];
	global string	$nnXBTexFiledTable[];
	global string	$nnLBMatFiledTable[];
	global string	$nnPSPMatFiledTable[];
	global string	$nnPSPTexFiledTable[];
	int				$i,$j;
	int 			$nnps2  = mtnPS2GetPluginInfoMayaNNExporter();
	int 			$nngc   = mtnGCGetPluginInfoMayaNNExporter();
	int 			$nnxb   = mtnXBGetPluginInfoMayaNNExporter();
	int 			$nnlb   = mtnLBGetPluginInfoMayaNNExporter();
	int 			$nnpsp  = mtnPSPGetPluginInfoMayaNNExporter();
	int				$nnx360 = mtnXENONGetPluginInfoMayaNNExporter();
	int				$nnps3  = mtnPS3GetPluginInfoMayaNNExporter();
	int 			$nndxg2 = mtnDXG2GetPluginInfoMayaNNExporter();
	if( $nnx360 || $nnps3 || $nndxg2 )	$nnlb = true;

	// 共通マテリアル属性の更新項目チェックボックスをOFFに設定
	for( $i = 0; $i < size($nnCommonMatFiledTable); $i += 3 ) {
		if( mtnGetEnableUpdateCheckBox( $nnCommonMatFiledTable[$i] ) ) {
			mtnSetUpdateCheckBox( $nnCommonMatFiledTable[$i], false );
		}
	}

	// PlayStation2固有属性の更新項目チェックボックスをOFFに設定
	if( $nnps2 ) {
		// PlayStatin2マテリアル属性の設定
		for( $i = 0; $i < size($nnPS2MatFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnPS2MatFiledTable[$i] ) ) {
				mtnSetUpdateCheckBox( $nnPS2MatFiledTable[$i], false );
			}
		}
		// PlayStatin2テクスチャ属性の設定
		for( $i = 0; $i < size($nnPS2TexFiledTable); $i += 4 ) {
			if( mtnGetEnableUpdateCheckBox( $nnPS2TexFiledTable[$i]+"1" ) ) {
				mtnSetUpdateCheckBox( $nnPS2TexFiledTable[$i]+"1", false );
			}
			if( mtnGetEnableUpdateCheckBox( $nnPS2TexFiledTable[$i]+"2" ) ) {
				mtnSetUpdateCheckBox( $nnPS2TexFiledTable[$i]+"2", false );
			}
		}
	}

	// GAMECUBE固有属性の更新項目チェックボックスをOFFに設定
	if( $nngc ) {
		// GAMECUBEマテリアル属性の設定
		for( $i = 0; $i < size($nnGCMatFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnGCMatFiledTable[$i] ) ) {
				mtnSetUpdateCheckBox( $nnGCMatFiledTable[$i], false );
			}
		}
		// GAMECUBEテクスチャ属性の設定
		for( $i = 0; $i < size($nnGCTexFiledTable); $i += 6 ) {
			if( mtnGetEnableUpdateCheckBox( $nnGCTexFiledTable[$i]+"1" ) ) {
				mtnSetUpdateCheckBox( $nnGCTexFiledTable[$i]+"1", false );
			}
			if( mtnGetEnableUpdateCheckBox( $nnGCTexFiledTable[$i]+"2" ) ) {
				mtnSetUpdateCheckBox( $nnGCTexFiledTable[$i]+"2", false );
			}
			if( mtnGetEnableUpdateCheckBox( $nnGCTexFiledTable[$i]+"3" ) ) {
				mtnSetUpdateCheckBox( $nnGCTexFiledTable[$i]+"3", false );
			}
			if( mtnGetEnableUpdateCheckBox( $nnGCTexFiledTable[$i]+"4" ) ) {
				mtnSetUpdateCheckBox( $nnGCTexFiledTable[$i]+"4", false );
			}
		}
	}

	// Xbox固有属性の更新項目チェックボックスをOFFに設定
	if( $nnxb ) {
		// Xboxマテリアル属性の設定
		for( $i = 0; $i < size($nnXBMatFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnXBMatFiledTable[$i] ) ) {
				mtnSetUpdateCheckBox( $nnXBMatFiledTable[$i], false );
			}
		}
		// Xboxテクスチャ属性の設定
		for( $i = 0; $i < size($nnXBTexFiledTable); $i += 6 ) {
			if( mtnGetEnableUpdateCheckBox( $nnXBTexFiledTable[$i]+"1" ) ) {
				mtnSetUpdateCheckBox( $nnXBTexFiledTable[$i]+"1", false );
			}
			if( mtnGetEnableUpdateCheckBox( $nnXBTexFiledTable[$i]+"2" ) ) {
				mtnSetUpdateCheckBox( $nnXBTexFiledTable[$i]+"2", false );
			}
			if( mtnGetEnableUpdateCheckBox( $nnXBTexFiledTable[$i]+"3" ) ) {
				mtnSetUpdateCheckBox( $nnXBTexFiledTable[$i]+"3", false );
			}
			if( mtnGetEnableUpdateCheckBox( $nnXBTexFiledTable[$i]+"4" ) ) {
				mtnSetUpdateCheckBox( $nnXBTexFiledTable[$i]+"4", false );
			}
		}
	}

	// Lindbergh 固有属性の更新項目チェックボックスをOFFに設定
	if( $nnlb ) {
		// Lindberghマテリアル属性の設定
		for( $i = 0; $i < size($nnLBMatFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnLBMatFiledTable[$i] ) ) {
				mtnSetUpdateCheckBox( $nnLBMatFiledTable[$i], false );
			}
		}
	}

	// PSP 固有属性の更新項目チェックボックスをOFFに設定
	if( $nnpsp ) {
		// PSPマテリアル属性の設定
		for( $i = 0; $i < size($nnPSPMatFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnPSPMatFiledTable[$i] ) ) {
				mtnSetUpdateCheckBox( $nnPSPMatFiledTable[$i], false );
			}
		}
		// PSPテクスチャ属性の初期化
		for( $i = 0; $i < size($nnPSPTexFiledTable); $i += 3 ) {
			if( mtnGetEnableUpdateCheckBox( $nnPSPTexFiledTable[$i]+"1" ) ) {
				mtnSetUpdateCheckBox( $nnPSPTexFiledTable[$i]+"1", false );
			}
		}
	}
}

//---------------------------------------------------------------------------
//  関数名 : mtnCloseWindow
//  機　能 : MaterialAttributeEditTool Windowを閉じます。
//  書　式 : global proc mtnCloseWindow()
//  引　数 : なし
//
//  戻り値 : なし
//  説　明 :
//---------------------------------------------------------------------------
global proc mtnCloseWindow()
{
	if ( `window -exists MTN_MaterialAttributeEditToolWindow` == true ) {
		deleteUI -window MTN_MaterialAttributeEditToolWindow;
	}
}

//---------------------------------------------------------------------------
//  関数名 : mtnUpdateNNMatAttr
//  機　能 : NNマテリアル属性の更新。
//  書　式 : global proc mtnUpdateNNMatAttr()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : NNマテリアル属性の更新をします。
//---------------------------------------------------------------------------
global proc mtnUpdateNNMatAttr()
{
	global string	$nnCommonMatFiledTable[];
	global string	$nnPS2MatFiledTable[];
	global string	$nnPS2TexFiledTable[];
	global string	$nnGCMatFiledTable[];
	global string	$nnGCTexFiledTable[];
	global string	$nnXBMatFiledTable[];
	global string	$nnXBTexFiledTable[];
	global string	$nnLBMatFiledTable[];
	global string	$nnPSPMatFiledTable[];
	global string	$nnPSPTexFiledTable[];
	string			$matList[];
	string			$strValue;
	string			$attrCmd;
	int				$itemNo,$texNo;
	int				$nnps2  = mtnPS2GetPluginInfoMayaNNExporter();
	int				$nngc   = mtnGCGetPluginInfoMayaNNExporter();
	int				$nnxb   = mtnXBGetPluginInfoMayaNNExporter();
	int				$nnlb   = mtnLBGetPluginInfoMayaNNExporter();
	int				$nnpsp  = mtnPSPGetPluginInfoMayaNNExporter();
	int				$nnx360 = mtnXENONGetPluginInfoMayaNNExporter();
	int				$nnps3  = mtnPS3GetPluginInfoMayaNNExporter();
	int 			$nndxg2 = mtnDXG2GetPluginInfoMayaNNExporter();
	if( $nnx360 || $nnps3 || $nndxg2 )	$nnlb = true;

	int 			$outputType = `radioButtonGrp -query -select MTN_OutputType`;

	// 選択マテリアルのNNマテリアル属性を更新
	if( $outputType == 1 ) {
		$matList = `ls  -selection -type "lambert"`;
	}
	// 全てのマテリアルのNNマテリアル属性を更新
	else {
		$matList = `ls  -type "lambert"`;
	}

	// 更新マテリアルがない場合、return
	if( size($matList) == 0 ) {
//		print( "\nNot found convert material ---- \n" );
		warning( "nnMaterialAttributeEditTool : Not found convert material ---- \n" );
		return;
	}
	else {
		print( "\nnnMaterialAttributeEditTool : Convert NN Material Attribute  List ---- \n" );
	}

	// マテリアル属性の設定
	for( $crtMat in $matList ) {
		print( "\t[" + $crtMat + "]\n" );
		// 共通マテリアル属性の設定
		for( $itemNo = 0; $itemNo < size($nnCommonMatFiledTable); $itemNo += 3 ) {
			if( mtnGetUpdateCheckBox( $nnCommonMatFiledTable[$itemNo] ) &&
				mtnGetEnableUpdateCheckBox( $nnCommonMatFiledTable[$itemNo] )) {
				$strValue = mtnGetInputFieldData( $nnCommonMatFiledTable[$itemNo],
												  $nnCommonMatFiledTable[$itemNo+2] );
				print( "\t\t"+ $nnCommonMatFiledTable[$itemNo] +" = "+ $strValue + "\n");

				// XBox版用古いデータでの2SIDE LIGHTINNG設定の対応
				if( $nnxb ) {
					if( $nnCommonMatFiledTable[$itemNo] == "nnDoubleSidePolygon" ) {
						// 既にnnDoubleSidePolygon属性が作成されていたら、再構築
						if ( `attributeQuery -exists -node $crtMat ($nnCommonMatFiledTable[$itemNo])` ) {
							// 既存の属性の削除
							deleteAttr ($crtMat+"."+($nnCommonMatFiledTable[$itemNo]));
							// 新規に属性の作成
							addAttr
								-attributeType	short
								-longName		($nnCommonMatFiledTable[$itemNo])
								-minValue		0
								-maxValue		3
								$crtMat;
						}
					}
				}
				// NN マテリアル属性の更新
				mtnSetNNMaterialAttr( $crtMat,
									  $nnCommonMatFiledTable[$itemNo],
									  $nnCommonMatFiledTable[$itemNo+2],
									  $strValue );
			}
		}

		// PlayStation2固有属性の設定
		if( $nnps2 ) {
			// PlayStation2マテリアル属性の設定
			for( $itemNo = 0; $itemNo < size($nnPS2MatFiledTable); $itemNo += 3 ) {
				if( mtnGetUpdateCheckBox( $nnPS2MatFiledTable[$itemNo] ) &&
					mtnGetEnableUpdateCheckBox( $nnPS2MatFiledTable[$itemNo] ) ) {
					$strValue = mtnGetInputFieldData( $nnPS2MatFiledTable[$itemNo],
													  $nnPS2MatFiledTable[$itemNo+2] );
					print( "\t\t"+ $nnPS2MatFiledTable[$itemNo] +" = "+ $strValue + "\n");
					// NN マテリアル属性の更新
					mtnSetNNMaterialAttr( $crtMat,
										  $nnPS2MatFiledTable[$itemNo],
										  $nnPS2MatFiledTable[$itemNo+2],
										  $strValue );
				}
			}
			// PlayStatin2テクスチャ属性の設定
			for( $texNo = 1; $texNo < 3; $texNo ++ ) {
				for( $itemNo = 0; $itemNo < size($nnPS2TexFiledTable); $itemNo += 4 ) {
					// プリセットは個々の属性を更新の為、未処理
					if( $nnPS2TexFiledTable[$itemNo] == "nnPS2AlphaBlendingPreset" )	continue;

					if( mtnGetUpdateCheckBox( $nnPS2TexFiledTable[$itemNo]+$texNo ) &&
						mtnGetEnableUpdateCheckBox( $nnPS2TexFiledTable[$itemNo]+$texNo )) {
						$strValue = mtnGetInputFieldData( $nnPS2TexFiledTable[$itemNo]+$texNo,
														  $nnPS2TexFiledTable[$itemNo+3] );
						print( "\t\t"+ $nnPS2TexFiledTable[$itemNo]+$texNo +" = "+ $strValue + "\n");
						if( $nnPS2TexFiledTable[$itemNo] == "nnPS2AlphaFailMode" ) {
							// 既存の属性の削除
							deleteAttr ($crtMat+"."+($nnPS2TexFiledTable[$itemNo]+$texNo));
							// 新規に属性の作成
							addAttr
								-attributeType	short
								-longName		($nnPS2TexFiledTable[$itemNo]+$texNo)
								-minValue		0
								-maxValue		4
								$crtMat;
						}
						// NN マテリアル属性の更新
						mtnSetNNMaterialAttr( $crtMat,
											  $nnPS2TexFiledTable[$itemNo]+$texNo,
											  $nnPS2TexFiledTable[$itemNo+3],
											  $strValue );
					}
				}
			}
		}

		// GAMECUBE固有属性の設定
		if( $nngc ) {
			// GAMECUBEマテリアル属性の設定
			for( $itemNo = 0; $itemNo < size($nnGCMatFiledTable); $itemNo += 3 ) {
				if( mtnGetUpdateCheckBox( $nnGCMatFiledTable[$itemNo] ) &&
					mtnGetEnableUpdateCheckBox( $nnGCMatFiledTable[$itemNo] )) {
					$strValue = mtnGetInputFieldData( $nnGCMatFiledTable[$itemNo],
													  $nnGCMatFiledTable[$itemNo+2] );
					print( "\t\t"+ $nnGCMatFiledTable[$itemNo] +" = "+ $strValue + "\n");
					// NN マテリアル属性の更新
					mtnSetNNMaterialAttr( $crtMat,
										  $nnGCMatFiledTable[$itemNo],
										  $nnGCMatFiledTable[$itemNo+2],
										  $strValue );
				}
			}
			// GAMECUBEテクスチャ属性の設定
			for( $texNo = 1; $texNo < 5; $texNo ++ ) {
				for( $itemNo = 0; $itemNo < size($nnGCTexFiledTable); $itemNo += 6 ) {
					if( mtnGetUpdateCheckBox( $nnGCTexFiledTable[$itemNo]+$texNo ) &&
						mtnGetEnableUpdateCheckBox( $nnGCTexFiledTable[$itemNo]+$texNo )) {
						$strValue = mtnGetInputFieldData( $nnGCTexFiledTable[$itemNo]+$texNo,
														  $nnGCTexFiledTable[$itemNo+5] );
						print( "\t\t"+ $nnGCTexFiledTable[$itemNo]+$texNo +" = "+ $strValue + "\n");
						if( $nnGCTexFiledTable[$itemNo] == "nnGCBlendMode" ) {
							// 既にnnGCBlendMode属性が作成されていたら、再構築
							if ( `attributeQuery -exists -node $crtMat ($nnGCTexFiledTable[$itemNo]+$texNo)` ) {
								// 既存の属性の削除
								deleteAttr ($crtMat+"."+($nnGCTexFiledTable[$itemNo]+$texNo));
								// 新規に属性の作成
								addAttr
									-attributeType	short
									-longName		($nnGCTexFiledTable[$itemNo]+$texNo)
									-minValue		0
									-maxValue		10
									$crtMat;
							}
						}
						// NN マテリアル属性の更新
						mtnSetNNMaterialAttr( $crtMat,
											  $nnGCTexFiledTable[$itemNo]+$texNo,
											  $nnGCTexFiledTable[$itemNo+5],
											  $strValue );
					}
				}
			}
		}

		// Xbox固有属性の設定
		if( $nnxb ) {
			// Xboxマテリアル属性の設定
			for( $itemNo = 0; $itemNo < size($nnXBMatFiledTable); $itemNo += 3 ) {
				if( mtnGetUpdateCheckBox( $nnXBMatFiledTable[$itemNo] ) &&
					mtnGetEnableUpdateCheckBox( $nnXBMatFiledTable[$itemNo] )) {
					$strValue = mtnGetInputFieldData( $nnXBMatFiledTable[$itemNo],
													  $nnXBMatFiledTable[$itemNo+2] );
					print( "\t\t"+ $nnXBMatFiledTable[$itemNo] +" = "+ $strValue + "\n");
					// NN マテリアル属性の更新
					mtnSetNNMaterialAttr( $crtMat,
										  $nnXBMatFiledTable[$itemNo],
										  $nnXBMatFiledTable[$itemNo+2],
										  $strValue );
				}
			}
			// Xboxテクスチャ属性の設定
			for( $texNo = 1; $texNo < 5; $texNo ++ ) {
				for( $itemNo = 0; $itemNo < size($nnXBTexFiledTable); $itemNo += 6 ) {
					if( mtnGetUpdateCheckBox( $nnXBTexFiledTable[$itemNo]+$texNo ) &&
						mtnGetEnableUpdateCheckBox( $nnXBTexFiledTable[$itemNo]+$texNo ) ) {
						$strValue = mtnGetInputFieldData( $nnXBTexFiledTable[$itemNo]+$texNo,
														  $nnXBTexFiledTable[$itemNo+5] );
						if( $nnXBTexFiledTable[$itemNo] == "nnXBBlendMode" ) {
							if( $strValue == "0" ) {
								$strValue = "9";
							}
							else {
								int $tempInt = (int)$strValue;
								$tempInt --;
								$strValue = (string)$tempInt;
							}
							// 既にnnXBBlendMode属性が作成されていたら、再構築
							if ( `attributeQuery -exists -node $crtMat ($nnXBTexFiledTable[$itemNo]+$texNo)` ) {
								// 既存の属性の削除
								deleteAttr ($crtMat+"."+($nnXBTexFiledTable[$itemNo]+$texNo));
								// 新規に属性の作成
								addAttr
									-attributeType	short
									-longName		($nnXBTexFiledTable[$itemNo]+$texNo)
									-minValue		0
									-maxValue		9
									$crtMat;
							}
						}
						print( "\t\t"+ $nnXBTexFiledTable[$itemNo]+$texNo +" = "+ $strValue + "\n");
						// NN マテリアル属性の更新
						mtnSetNNMaterialAttr( $crtMat,
											  $nnXBTexFiledTable[$itemNo]+$texNo,
											  $nnXBTexFiledTable[$itemNo+5],
											  $strValue );
					}
				}
			}
		}

		// Lindbergh 固有属性の設定
		if( $nnlb ) {
			// Lindberghマテリアル属性の設定
			for( $itemNo = 0; $itemNo < size($nnLBMatFiledTable); $itemNo += 3 ) {
				if( mtnGetUpdateCheckBox( $nnLBMatFiledTable[$itemNo] ) &&
					mtnGetEnableUpdateCheckBox( $nnLBMatFiledTable[$itemNo] )) {
					$strValue = mtnGetInputFieldData( $nnLBMatFiledTable[$itemNo],
													  $nnLBMatFiledTable[$itemNo+2] );
					print( "\t\t"+ $nnLBMatFiledTable[$itemNo] +" = "+ $strValue + "\n");
					// NN マテリアル属性の更新
					mtnSetNNMaterialAttr( $crtMat,
										  $nnLBMatFiledTable[$itemNo],
										  $nnLBMatFiledTable[$itemNo+2],
										  $strValue );
				}
			}
		}

		// PSP 固有属性の設定
		if( $nnlb ) {
			// Lindberghマテリアル属性の設定
			for( $itemNo = 0; $itemNo < size($nnPSPMatFiledTable); $itemNo += 3 ) {
				if( mtnGetUpdateCheckBox( $nnPSPMatFiledTable[$itemNo] ) &&
					mtnGetEnableUpdateCheckBox( $nnPSPMatFiledTable[$itemNo] )) {
					$strValue = mtnGetInputFieldData( $nnPSPMatFiledTable[$itemNo],
													  $nnPSPMatFiledTable[$itemNo+2] );
					print( "\t\t"+ $nnPSPMatFiledTable[$itemNo] +" = "+ $strValue + "\n");
					// NN マテリアル属性の更新
					mtnSetNNMaterialAttr( $crtMat,
										  $nnPSPMatFiledTable[$itemNo],
										  $nnPSPMatFiledTable[$itemNo+2],
										  $strValue );
				}
			}
			// PSPテクスチャ属性の設定
			for( $texNo = 1; $texNo < 2; $texNo ++ ) {
				for( $itemNo = 0; $itemNo < size($nnPSPTexFiledTable); $itemNo += 3 ) {
					if( mtnGetUpdateCheckBox( $nnPSPTexFiledTable[$itemNo]+$texNo ) &&
						mtnGetEnableUpdateCheckBox( $nnPSPTexFiledTable[$itemNo]+$texNo )) {
						$strValue = mtnGetInputFieldData( $nnPSPTexFiledTable[$itemNo]+$texNo,
														  $nnPSPTexFiledTable[$itemNo+2] );
						print( "\t\t"+ $nnPSPTexFiledTable[$itemNo]+$texNo +" = "+ $strValue + "\n");
						// NN マテリアル属性の更新
						mtnSetNNMaterialAttr( $crtMat,
											  $nnPSPTexFiledTable[$itemNo]+$texNo,
											  $nnPSPTexFiledTable[$itemNo+2],
											  $strValue );
					}
				}
			}
		}
	}

	refreshAE;
}

//---------------------------------------------------------------------------
//  関数名 : mtnCopyNNMatAttr
//  機　能 : NNマテリアル属性の更新。
//  書　式 : global proc mtnCopyNNMatAttr()
//  引　数 : なし
//  戻り値 : なし
//  説　明 : NNマテリアル属性の更新をします。
//---------------------------------------------------------------------------
global proc mtnCopyNNMatAttr()
{
	global string	$nnCommonMatFiledTable[];
	global string	$nnPS2MatFiledTable[];
	global string	$nnPS2TexFiledTable[];
	global string	$nnGCMatFiledTable[];
	global string	$nnGCTexFiledTable[];
	global string	$nnXBMatFiledTable[];
	global string	$nnXBTexFiledTable[];
	global string	$nnLBMatFiledTable[];
	global string	$nnPSPMatFiledTable[];
	global string	$nnPSPTexFiledTable[];
	string			$matList[];
	string			$strValue;
	string			$attrCmd;
	int				$itemNo,$texNo;
	int				$nnps2  = mtnPS2GetPluginInfoMayaNNExporter();
	int				$nngc   = mtnGCGetPluginInfoMayaNNExporter();
	int				$nnxb   = mtnXBGetPluginInfoMayaNNExporter();
	int 			$nnlb   = mtnLBGetPluginInfoMayaNNExporter();
	int 			$nnpsp  = mtnPSPGetPluginInfoMayaNNExporter();
	int				$nnx360 = mtnXENONGetPluginInfoMayaNNExporter();
	int				$nnps3  = mtnPS3GetPluginInfoMayaNNExporter();
	int 			$nndxg2 = mtnDXG2GetPluginInfoMayaNNExporter();
	if( $nnx360 || $nnps3 || $nndxg2 )	$nnlb = true;

	int 			$outputType = `radioButtonGrp -query -select MTN_OutputType`;

	// 選択マテリアルのNNマテリアル属性を更新
	$matList = `ls  -selection -type "lambert"`;

	// 更新マテリアルがない場合、return
	if( size($matList) == 0 ) {
//		print( "\nNot found copy material ---- \n" );
		warning( "nnMaterialAttributeEditTool : Not selected material ---- \n" );
		return;
	}
	else {
		print( "\nnnMaterialAttributeEditTool : Copy from [" + $matList[0] + "] ---- \n" );
		// 共通マテリアル属性の設定
		for( $itemNo = 0; $itemNo < size($nnCommonMatFiledTable); $itemNo += 3 ) {
			// NN マテリアル属性の取得
			$strValue = mtnGetNNMaterialAttr( $matList[0],
											  $nnCommonMatFiledTable[$itemNo],
											  $nnCommonMatFiledTable[$itemNo+2],
											  $nnCommonMatFiledTable[$itemNo+1] );
			// フィールドデータの更新
			mtnSetInputFieldData( $nnCommonMatFiledTable[$itemNo],
								  $strValue,
								  $nnCommonMatFiledTable[$itemNo+2] );
		}

		// Xbox以外で2 SIDE LIGHTINNGを選択時は、DUPLICATEに設定
		if( !$nnxb ) {
			if( `optionMenuGrp -query -select MTN_DoubleSidePolygon` == 4 ) {
				mtnSetInputFieldData( $nnCommonMatFiledTable[0],
									  2,
									  $nnCommonMatFiledTable[2] );
			}
		}

		// PlayStation2固有属性の設定
		if( $nnps2 ) {
			// PlayStation2マテリアル属性の設定
			for( $itemNo = 0; $itemNo < size($nnPS2MatFiledTable); $itemNo += 3 ) {
				// NN マテリアル属性の取得
				$strValue = mtnGetNNMaterialAttr( $matList[0],
												  $nnPS2MatFiledTable[$itemNo],
												  $nnPS2MatFiledTable[$itemNo+2],
												  $nnPS2MatFiledTable[$itemNo+1] );
				// フィールドデータの更新
				mtnSetInputFieldData( $nnPS2MatFiledTable[$itemNo],
									  $strValue,
									  $nnPS2MatFiledTable[$itemNo+2] );
			}
			// PlayStatin2テクスチャ属性の設定
			for( $texNo = 1; $texNo < 3; $texNo ++ ) {
				for( $itemNo = 0; $itemNo < size($nnPS2TexFiledTable); $itemNo += 4 ) {
					// プリセットは個々の属性を更新の為、未処理
					if( $nnPS2TexFiledTable[$itemNo] == "nnPS2AlphaBlendingPreset" )	continue;

					// NN マテリアル属性の取得
					$strValue = mtnGetNNMaterialAttr( $matList[0],
													  $nnPS2TexFiledTable[$itemNo]+$texNo,
													  $nnPS2TexFiledTable[$itemNo+3],
													  $nnPS2TexFiledTable[$itemNo+$texNo]);
					// フィールドデータの更新
					mtnSetInputFieldData( $nnPS2TexFiledTable[$itemNo]+$texNo,
										  $strValue,
										  $nnPS2TexFiledTable[$itemNo+3] );
				}
				mtnPS2UsePaletteStatusEvent( $texNo );
				mtnPS2AlphaBlendingCStatusEvent( $texNo );
				mtnPS2ManualColorClampStatusEvent( $texNo );
				mtnPS2AlphaTestStatusEvent( $texNo );
				mtnPS2DstAlphaTestStatusEvent( $texNo );
				mtnPS2ZBufferTestStatusEvent( $texNo );
				mtnPS2ManualMipmapStatusEvent( $texNo );
				mtnPS2SetPresetFromAlphaBlending( $texNo );
			}
		}

		// GAMECUBE固有属性の設定
		if( $nngc ) {
			// GAMECUBEマテリアル属性の設定
			for( $itemNo = 0; $itemNo < size($nnGCMatFiledTable); $itemNo += 3 ) {
				// NN マテリアル属性の取得
				$strValue = mtnGetNNMaterialAttr( $matList[0],
												  $nnGCMatFiledTable[$itemNo],
												  $nnGCMatFiledTable[$itemNo+2],
												  $nnGCMatFiledTable[$itemNo+1] );
				// フィールドデータの更新
				mtnSetInputFieldData( $nnGCMatFiledTable[$itemNo],
									  $strValue,
									  $nnGCMatFiledTable[$itemNo+2] );
			}
			mtnGCManualAlphaRefStatusEvent();
			mtnGCZBufferCompStatusEvent();
			// GAMECUBEテクスチャ属性の設定
			for( $texNo = 1; $texNo < 5; $texNo ++ ) {
				for( $itemNo = 0; $itemNo < size($nnGCTexFiledTable); $itemNo += 6 ) {
					// NN マテリアル属性の取得
					$strValue = mtnGetNNMaterialAttr( $matList[0],
													  $nnGCTexFiledTable[$itemNo]+$texNo,
													  $nnGCTexFiledTable[$itemNo+5],
													  $nnGCTexFiledTable[$itemNo+$texNo]);
					// フィールドデータの更新
					mtnSetInputFieldData( $nnGCTexFiledTable[$itemNo]+$texNo,
										  $strValue,
										  $nnGCTexFiledTable[$itemNo+5] );
				}
				mtnGCUsePaletteStatusEvent( $texNo );
			}
		}

		// Xbox固有属性の設定
		if( $nnxb ) {
			// Xboxマテリアル属性の設定
			for( $itemNo = 0; $itemNo < size($nnXBMatFiledTable); $itemNo += 3 ) {
				// NN マテリアル属性の取得
				$strValue = mtnGetNNMaterialAttr( $matList[0],
												  $nnXBMatFiledTable[$itemNo],
												  $nnXBMatFiledTable[$itemNo+2],
												  $nnXBMatFiledTable[$itemNo+1] );
				// フィールドデータの更新
				mtnSetInputFieldData( $nnXBMatFiledTable[$itemNo],
									  $strValue,
									  $nnXBMatFiledTable[$itemNo+2] );
			}
			mtnXBAlphaTestStatusEvent();
			mtnXBZBufferCompStatusEvent();
			// Xboxテクスチャ属性の設定
			for( $texNo = 1; $texNo < 5; $texNo ++ ) {
				for( $itemNo = 0; $itemNo < size($nnXBTexFiledTable); $itemNo += 6 ) {
					// NN マテリアル属性の取得
					$strValue = mtnGetNNMaterialAttr( $matList[0],
													  $nnXBTexFiledTable[$itemNo]+$texNo,
													  $nnXBTexFiledTable[$itemNo+5],
													  $nnXBTexFiledTable[$itemNo+$texNo]);
					// nnXBBlendModeのAUTO処理
					if( $nnXBTexFiledTable[$itemNo] == "nnXBBlendMode") {
						int  $intValue = $strValue;
						// AUTO(==9)
						if( $intValue == 9 ) {
							$intValue = 0;
						}
						else {
							$intValue += 1;
						}
						$strValue = $intValue;
					}
					// フィールドデータの更新
					mtnSetInputFieldData( $nnXBTexFiledTable[$itemNo]+$texNo,
										  $strValue,
										  $nnXBTexFiledTable[$itemNo+5] );
				}
				mtnXBBlendModeStatusEvent( $texNo );
			}
		}

		// Lindbergh 固有属性の設定
		if( $nnlb ) {
			// Lindberghマテリアル属性の設定
			for( $itemNo = 0; $itemNo < size($nnLBMatFiledTable); $itemNo += 3 ) {
				// NN マテリアル属性の取得
				$strValue = mtnGetNNMaterialAttr( $matList[0],
												  $nnLBMatFiledTable[$itemNo],
												  $nnLBMatFiledTable[$itemNo+2],
												  $nnLBMatFiledTable[$itemNo+1] );
				// フィールドデータの更新
				mtnSetInputFieldData( $nnLBMatFiledTable[$itemNo],
									  $strValue,
									  $nnLBMatFiledTable[$itemNo+2] );
			}
			mtnLBBlendFlagStatusEvent();
			mtnLBBlendFuncSeparateStatusEvent();
			mtnLBBlendLogicFlagStatusEvent();
			mtnLBAlphaTestStatusEvent();
			mtnLBManualSettingStatusEvent();
			mtnLBZBufferCompStatusEvent();
		}

		// PSP 固有属性の設定
		if( $nnpsp ) {
			// PSPマテリアル属性の設定
			for( $itemNo = 0; $itemNo < size($nnPSPMatFiledTable); $itemNo += 3 ) {
				// NN マテリアル属性の取得
				$strValue = mtnGetNNMaterialAttr( $matList[0],
												  $nnPSPMatFiledTable[$itemNo],
												  $nnPSPMatFiledTable[$itemNo+2],
												  $nnPSPMatFiledTable[$itemNo+1] );
				// フィールドデータの更新
				mtnSetInputFieldData( $nnPSPMatFiledTable[$itemNo],
									  $strValue,
									  $nnPSPMatFiledTable[$itemNo+2] );
			}
			mtnPSPBlendFlagStatusEvent();
			mtnPSPBlendLogicStatusEvent();
			mtnPSPAlphaTestStatusEvent();
			mtnPSPManualAlphaTestRefStatusEvent();
			mtnPSPDepthTestStatusEvent();
			// PSPテクスチャ属性の設定
			for( $texNo = 1; $texNo < 2; $texNo ++ ) {
				for( $itemNo = 0; $itemNo < size($nnPSPTexFiledTable); $itemNo += 6 ) {
					// NN マテリアル属性の取得
					$strValue = mtnGetNNMaterialAttr( $matList[0],
													  $nnPSPTexFiledTable[$itemNo]+$texNo,
													  $nnPSPTexFiledTable[$itemNo+2],
													  $nnPSPTexFiledTable[$itemNo+$texNo]);
					// フィールドデータの更新
					mtnSetInputFieldData( $nnPSPTexFiledTable[$itemNo]+$texNo,
										  $strValue,
										  $nnPSPTexFiledTable[$itemNo+5] );
				}
				mtnPSPBlendModeStatusEvent( $texNo );
			}
		}

	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnGetInputFieldData
//  機  能 : フィールドのデータ取得。
//  書  式 : global proc string mtnGetInputFieldData( string $member, string $type )
//  引  数 : string $member  : メンバー名
//         : string $type    : フィールドタイプ
//  戻り値 : フィールドデータ
//  説　明 : フィールドのデータを文字列として取得します（optionMenuGrpはメニュー番号）。
//---------------------------------------------------------------------------
global proc string mtnGetInputFieldData( string $member, string $type )
{
	string	$filedData;
	string $menuName = `substitute "nn" $member "MTN_"`;

	if( $type == "optionMenuGrp") {
		$filedData = `optionMenuGrp		-query	-select		$menuName`-1;
	}
	else {
		$filedData = mtnGetFieldData( $member, $type );
	}

	return( $filedData );
}

//---------------------------------------------------------------------------
//  関数名 : mtnSetInputFieldData
//  機  能 : フィールドデータの設定。
//  書  式 : global proc mtnSetInputFieldData( string $member, string $data, string $type )
//  引  数 : string $member  : メンバー名
//         : string $data    : 設定データ
//         : string $type    : フィールドタイプ
//  戻り値 : なし
//  説  明 : フィールドデータの設定をします。
//---------------------------------------------------------------------------
global proc  mtnSetInputFieldData( string $member, string $data, string $type )
{
	string $menuName = `substitute "nn" $member "MTN_"`;


	// フィールドデータの取得
	switch ( $type ) {
		case "optionMenuGrp":
			int		$value = (int)$data;
			$value	+= 1;
			optionMenuGrp	-edit	-select	$value			$menuName;
			break;
		case "checkBoxGrp":
			checkBoxGrp		-edit	-value1	((int)$data)	$menuName;
			break;
		case "intSliderGrp":
			intSliderGrp	-edit	-value	((int)$data)	$menuName;
			break;
		case "intFieldGrp":
			intFieldGrp		-edit	-value1	((int)$data)	$menuName;
			break;
		case "floatSliderGrp":
			floatSliderGrp	-edit	-value	((float)$data)	$menuName;
			break;
		case "textField":
			textField		-edit	-text	$data			$menuName;
			break;
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnInputDataNumericCheck
//  機　能 : 入力データの数値チェック
//  書　式 : global proc mtnInputDataNumericCheck( string $attrName )
//  引　数 : string $attrName : 属性名
//  戻り値 : なし
//  説　明 : 入力データの数値チェックをします。
//---------------------------------------------------------------------------
global proc mtnInputDataNumericCheck( string $attrName )
{
	global string	$nnBeforeUserData;
	string			$userdata;
	int			$errFlag = false;

	// 現在のフィールドデータを取得
	$userdata	= mtnGetFieldData( $attrName, "textField" );

	int $startindex;
	string $matchdata;
	// HEX
	if( substring( $userdata, 1, 1 ) == "0" && substring( $userdata, 2, 2 ) == "x" ) {
		$startindex = 3;
		$matchdata = "0123456789abcdefABCDEF";
	}
	// DEC
	else {
		$startindex = 1;
		$matchdata = "0123456789";
	}

	int $i;
	// 入力されたUserDataをチェック
	for( $i = $startindex; $i <= (size($userdata)); $i++ ) {
		// 8桁以上の場合
		if( $i >= $startindex + 8 ) {
			warning( $attrName+ " : input data [" + $userdata + "] is over eight figures!\n" );
			$errFlag = true;
			break;
		}
		string $charactor = substring( $userdata, $i, $i );
		// 不正な文字が入力された場合
		if( match( $charactor, $matchdata ) == "" ) {
			warning( $attrName+ " : input data [" + $userdata + "] is invalid valuable!\n" );
			$errFlag = true;
			break;
		}
	}

	// 入力エラー時、データを元に戻す。
	if( $errFlag ) {
		mtnSetFieldData( $attrName, $nnBeforeUserData, "textField" );
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnTempInputDataSave
//  機　能 : 入力データの一時保存。
//  書　式 : global proc mtnTempInputDataSave( string $attrName )
//  引　数 : string $attrName : 属性名
//  戻り値 : なし
//  説　明 : 入力データの一時保存をします。
//---------------------------------------------------------------------------
global proc mtnTempInputDataSave( string $attrName )
{
	global string $nnBeforeUserData;

	$nnBeforeUserData	= mtnGetFieldData( $attrName, "textField" );
}

//---------------------------------------------------------------------------
//  関数名 : mtnCreateAllMaterialAttributeDialogTemplate
//  機　能 : AllMaterialAttributeDialogTemplateを作成します。
//  書　式 : global proc mtnCreateAllMaterialAttributeDialogTemplate()
//  引　数 : なし
//
//  戻り値 : なし
//  説　明 : nnMaterialAttributeEditToolで使用するレイアウトのテンプレートを定義します。
//---------------------------------------------------------------------------
global proc mtnCreateAllMaterialAttributeDialogTemplate()
{
	// MTN_AllMaterialAttributeTemplateがすでに存在している場合は一度削除する。
	if ( `uiTemplate -exists MTN_AllMaterialAttributeTemplate` ) {
		deleteUI -uiTemplate MTN_AllMaterialAttributeTemplate;
	}
	// MTNBD_BatchExportTemplateを作成
	uiTemplate MTN_AllMaterialAttributeTemplate;

	// columnLayout
	columnLayout
		-defineTemplate		MTN_AllMaterialAttributeTemplate
		-adjustableColumn	true
		-manage 			true
		;

	// frameLayout
	frameLayout
		-defineTemplate 	MTN_AllMaterialAttributeTemplate

		-visible			true
		-collapsable		false
		-collapse			false
		-borderVisible		true
		-borderStyle		"etchedOut"
		-label				""
		-labelVisible		true
		-labelAlign 		"bottom"
		-labelIndent		5
		-marginWidth		5
		-marginHeight		5
		;

	// rowLayout
	rowLayout
		-defineTemplate		MTN_AllMaterialAttributeTemplate

		-columnAttach1		both
		-columnOffset1		0
		-columnAlign1		left

		-columnAttach2		left left
		-columnOffset2		0 0
		-columnAlign2		left left

		-columnAttach3		both both both
		-columnOffset3		0 0 0
		-columnAlign3		left left left

		-columnAttach4		both both both both
		-columnOffset4		0 0 0 0
		-columnAlign4		center center center center
		;


	// scrollLayout
	scrollLayout
		-defineTemplate 	MTN_AllMaterialAttributeTemplate
		-visible			true
		-childResizable		true
		;

	// textFieldButtonGrp
	textFieldButtonGrp
		-defineTemplate		MTN_AllMaterialAttributeTemplate

		-rowAttach			1 bottom 10
		-label				""
		-text				""
		-buttonLabel		""
		-columnAttach		1 both 0
		-columnAttach		2 both 0
		-columnAttach		3 both 10
		-columnAlign		1 right
		-columnAlign		2 left
		-columnAlign		3 center
		;

	// optionMenuGrp
	optionMenuGrp
		-defineTemplate		MTN_AllMaterialAttributeTemplate
		-label			""

		-columnAttach2		both both
		-columnOffset2		0 5
		-columnAlign2		right left
		-rowAttach			1 top 5
		;

	// checkBoxGrp
	checkBoxGrp
		-defineTemplate		MTN_AllMaterialAttributeTemplate
		-label 				""

		-columnAttach2		both both
		-columnOffset2		0 5
		-columnAlign2		right left

		-columnAttach4		both both both both
		-columnOffset4		0 0 0 0
		-columnAlign4		right left left left

		-columnAttach5		both both both both both
		-columnOffset5		0 0 0 0 0
		-columnAlign5		right left left left left
		;

	// radioButtonGrp
	radioButtonGrp
		-defineTemplate		MTN_AllMaterialAttributeTemplate
		-label				""

		-columnAttach3		both both both
		-columnOffset3		0 5 0
		-columnAlign3		right left left

		-columnAttach4		both both both both
		-columnOffset4		0 0 0 0
		-columnAlign4		right left left left
		;

	// button
	button
		-defineTemplate		MTN_AllMaterialAttributeTemplate

		-label				""
		-align				center
		;

	// floatField
	floatField
		-defineTemplate		MTN_AllMaterialAttributeTemplate
		-precision			6
		;

	// floatSliderGrp
	floatSliderGrp
		-defineTemplate 	MTN_AllMaterialAttributeTemplate
		-label				""
		-field				true
		-precision			6
		-columnAttach2		both both
		-columnOffset2		0 5
		-columnAlign2		right left
		-columnAttach3		both both both
		-columnOffset3		0 5 0
		-columnAlign3		right left left
		;

	// intFieldGrp
	intFieldGrp
		-defineTemplate		MTN_AllMaterialAttributeTemplate
		-columnAttach2		both both
		-columnOffset2		0 5
		-columnAlign2		right left
		;

	// intSliderGrp
	intSliderGrp
		-defineTemplate 	MTN_AllMaterialAttributeTemplate
		-label				""
		-field				true
		-columnOffset2		0 5
		-columnAttach2		both both
		-columnAttach3		both both both
		-columnOffset3		0 5 0
		-columnAlign3		right left left
		;
}

//---------------------------------------------------------------------------
//  関数名 : mtnSetNNMaterialAttr
//  機  能 : NNマテリアル属性の設定。
//  書  式 : global proc mtnSetNNMaterialAttr( string $matName, string $member, string $type, string $data )
//  引  数 : string $matName : マテリアル名
//         : string $member  : メンバー名
//         : string $type    : フィールドタイプ
//         : string $data    : 値
//  戻り値 : なし
//  説  明 : NNマテリアル属性の設定をします。
//---------------------------------------------------------------------------
global proc  mtnSetNNMaterialAttr( string $matName, string $member, string $type, string $data )
{
	string		$attrName = $matName + "." + $member;

	// NN属性が存在しない場合は新規に作成
	if( !`attributeQuery -exists -node $matName $member` ) {
		mtnNewNNMaterialAttr( $matName, $member, $data );
	}
	// NNマテリアル属性設定コマンドの実行
	switch ( $type ) {
		case "textField":
			setAttr -type "string" $attrName $data;
			break;
		case "floatSliderGrp":
			setAttr $attrName ((float)$data);
			break;
		default:
			setAttr $attrName ((int)$data);
			break;
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnGetNNMaterialAttr
//  機  能 : NNマテリアル属性の設定。
//  書  式 : global proc string mtnGetNNMaterialAttr( string $matName, string $member, string $type, string $data )
//  引  数 : string $matName : マテリアル名
//         : string $member  : メンバー名
//         : string $type    : フィールドタイプ
//         : string $data    : 値
//  戻り値 : なし
//  説  明 : NNマテリアル属性の設定をします。
//---------------------------------------------------------------------------
global proc string mtnGetNNMaterialAttr( string $matName, string $member, string $type, string $data )
{
	string		$attrName = $matName + "." + $member;

	// NN属性が存在しない場合は新規に作成
	if( !`attributeQuery -exists -node $matName $member` ) {
		mtnNewNNMaterialAttr( $matName, $member, $data );
	}

	string	$value = `getAttr $attrName`;

	return($value);
}

//---------------------------------------------------------------------------
//  関数名 : mtnNewNNMaterialAttr
//  機  能 : NNマテリアル属性の新規作成。
//  書  式 : global proc mtnNewNNMaterialAttr( string $matName, string $member, string $data )
//  引  数 : string $matName : マテリアル名
//         : string $member  : メンバー名
//         : string $data    : 値
//  戻り値 : なし
//  説  明 : NNマテリアル属性の新規作成をします。
//---------------------------------------------------------------------------
global proc  mtnNewNNMaterialAttr( string $matName, string $member, string $data )
{
	string		$attrName = $matName + "." + $member;

	switch ( $member ) {
// 共通マテリアル属性
	case "nnDoubleSidePolygon":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnIgnoreLight":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnDisableFogging":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnAlphaFlag":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnSpecularType":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnSortKey":
		addAttr -attributeType long -longName $member $matName;
		break;
	case "nnCallBack":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnUserData":
		addAttr -dataType "string" -longName $member $matName;
		break;
	case "nnSpecularLevel":
		addAttr -attributeType "float" -longName $member -minValue 0 -maxValue 1 $matName;
		break;
	case "nnSpecularGlossiness":
		addAttr -attributeType "float" -longName $member -minValue 0 -maxValue 1 $matName;
		break;
	case "nnVertexColor":
		addAttr -attributeType bool -longName $member $matName;
		break;

// PlayStatin2マテリアル属性
	case "nnPS2TextureAlpha0":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;
	case "nnPS2TextureAlpha1":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;

// PlayStatin2テクスチャ属性
	case "nnPS2BlendMode1":
	case "nnPS2BlendMode2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 4 $matName;
		break;
	case "nnPS2UsePalette1":
	case "nnPS2UsePalette2":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPS2PaletteBank1":
	case "nnPS2PaletteBank2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 63 $matName;
		break;
	case "nnPS2EnviromentMap1":
	case "nnPS2EnviromentMap2":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPS2UClamp1":
	case "nnPS2UClamp2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnPS2VClamp1":
	case "nnPS2VClamp2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnPS2TexColComponent1":
	case "nnPS2TexColComponent2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnPS2AlphaBlendingA1":
	case "nnPS2AlphaBlendingA2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnPS2AlphaBlendingB1":
	case "nnPS2AlphaBlendingB2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnPS2AlphaBlendingC1":
	case "nnPS2AlphaBlendingC2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnPS2AlphaBlendingFix1":
	case "nnPS2AlphaBlendingFix2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;
	case "nnPS2AlphaBlendingD1":
	case "nnPS2AlphaBlendingD2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnPS2ManualColorClamp1":
	case "nnPS2ManualColorClamp2":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPS2ColorClampRGB1":
	case "nnPS2ColorClampRGB2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;
	case "nnPS2ColorClampA1":
	case "nnPS2ColorClampA2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;
	case "nnPS2AlphaTest1":
	case "nnPS2AlphaTest2":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPS2AlphaTestMode1":
	case "nnPS2AlphaTestMode2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnPS2ManualAlphaRef1":
	case "nnPS2ManualAlphaRef2":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPS2AlphaRefData1":
	case "nnPS2AlphaRefData2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;
	case "nnPS2AlphaFailMode1":
	case "nnPS2AlphaFailMode2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 4 $matName;
		break;
	case "nnPS2DstAlphaTest1":
	case "nnPS2DstAlphaTest2":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPS2DstAlphaTestMode1":
	case "nnPS2DstAlphaTestMode2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 1 $matName;
		break;
	case "nnPS2ZBufferTest1":
	case "nnPS2ZBufferTest2":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPS2ZBufferTestMode1":
	case "nnPS2ZBufferTestMode2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnPS2ZBufferUpdate1":
	case "nnPS2ZBufferUpdate2":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPS2ManualMipmap1":
	case "nnPS2ManualMipmap2":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPS2MipmapLCM1":
	case "nnPS2MipmapLCM2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 1 $matName;
		break;
	case "nnPS2MipmapL1":
	case "nnPS2MipmapL2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnPS2MipmapK01":
	case "nnPS2MipmapK02":
		addAttr -attributeType short -longName $member -minValue -2048 -maxValue 2047 $matName;
		break;
	case "nnPS2MipmapK11":
	case "nnPS2MipmapK12":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 6 $matName;
		break;

// GAMECUBEマテリアル属性
	case "nnGCUVMode":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnGCAlphaBlendingMode":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnGCAlphaBlendingSrc":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnGCAlphaBlendingDst":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnGCAlphaBlendingLogic":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 15 $matName;
		break;
	case "nnGCVtxColTexEmulate":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnGCAlphaCompMode0":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnGCAlphaCompMode1":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnGCAlphaRefData0":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;
	case "nnGCAlphaRefData1":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;
	case "nnGCAlphaCompOperand":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnGCZBufferComp":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnGCZBufferCompMode":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnGCZBufferUpdate":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnGCZBufferCompLoc":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;

// GAMECUBEテクスチャ属性
	case "nnGCBlendMode1":
	case "nnGCBlendMode2":
	case "nnGCBlendMode3":
	case "nnGCBlendMode4":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 10 $matName;
		break;
	case "nnGCUsePalette1":
	case "nnGCUsePalette2":
	case "nnGCUsePalette3":
	case "nnGCUsePalette4":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnGCPaletteBank1":
	case "nnGCPaletteBank2":
	case "nnGCPaletteBank3":
	case "nnGCPaletteBank4":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 63 $matName;
		break;
	case "nnGCEnviromentMap1":
	case "nnGCEnviromentMap2":
	case "nnGCEnviromentMap3":
	case "nnGCEnviromentMap4":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnGCUClamp1":
	case "nnGCUClamp2":
	case "nnGCUClamp3":
	case "nnGCUClamp4":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnGCVClamp1":
	case "nnGCVClamp2":
	case "nnGCVClamp3":
	case "nnGCVClamp4":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnGCLightBlend1":
	case "nnGCLightBlend2":
	case "nnGCLightBlend3":
	case "nnGCLightBlend4":
		addAttr -attributeType bool -longName $member $matName;
		break;

// Xboxマテリアル属性
	case "nnXBUVMode":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnXBAlphaBlendingOperate":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 6 $matName;
		break;
	case "nnXBAlphaBlendingSrc":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 14 $matName;
		break;
	case "nnXBAlphaBlendingDst":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 14 $matName;
		break;
	case "nnAlphaBlendingConstColor":
		addAttr -dataType "string" -longName $member $matName;
		break;
	case "nnXBAlphaBlendingLogic":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 16 $matName;
		break;
	case "nnXBAlphaTest":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnXBAlphaTestMode":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnXBAlphaRefData":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;
	case "nnXBZBufferComp":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnXBZBufferCompMode":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnXBZBufferUpdate":
		addAttr -attributeType bool -longName $member $matName;
		break;

// Xboxテクスチャ属性
	case "nnXBBlendMode1":
	case "nnXBBlendMode2":
	case "nnXBBlendMode3":
	case "nnXBBlendMode4":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 9 $matName;
		break;
	case "nnXBEnviromentMap1":
	case "nnXBEnviromentMap2":
	case "nnXBEnviromentMap3":
	case "nnXBEnviromentMap4":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnXBLightStage1":
	case "nnXBLightStage2":
	case "nnXBLightStage3":
	case "nnXBLightStage4":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnXBUClamp1":
	case "nnXBUClamp2":
	case "nnXBUClamp3":
	case "nnXBUClamp4":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnXBVClamp1":
	case "nnXBVClamp2":
	case "nnXBVClamp3":
	case "nnXBVClamp4":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 3 $matName;
		break;
	case "nnXBLODBias1":
	case "nnXBLODBias2":
	case "nnXBLODBias3":
	case "nnXBLODBias4":
		addAttr -attributeType "float" -longName $member -minValue -1 -maxValue 1 $matName;
		break;
	case "nnXBMaxMipLevel1":
	case "nnXBMaxMipLevel2":
	case "nnXBMaxMipLevel3":
	case "nnXBMaxMipLevel4":
		addAttr -attributeType long -longName $member -minValue 0  $matName;
		break;
	case "nnXBFilterMode1":
	case "nnXBFilterMode2":
	case "nnXBFilterMode3":
	case "nnXBFilterMode4":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnXBMagFilterMode1":
	case "nnXBMagFilterMode2":
	case "nnXBMagFilterMode3":
	case "nnXBMagFilterMode4":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnXBMinFilterMode1":
	case "nnXBMinFilterMode2":
	case "nnXBMinFilterMode3":
	case "nnXBMinFilterMode4":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 9 $matName;
		break;

// Lindberghマテリアル属性
	case "nnLBUserProfile":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 15 $matName;
		break;
	case "nnLBBlendFlag":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnLBBlendEquation":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 4 $matName;
		break;
	case "nnLBBlendSrcFactorRGB":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 14 $matName;
		break;
	case "nnLBBlendDstFactorRGB":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 14 $matName;
		break;
	case "nnLBBlendFuncSeparate":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnLBBlendSrcFactorA":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 14 $matName;
		break;
	case "nnLBBlendDstFactorA":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 14 $matName;
		break;
	case "nnLBBlendConstColor":
		addAttr -dataType "string" -longName $member $matName;
		break;
	case "nnLBBlendLogicFlag":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnLBBlendLogicOperation":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 15 $matName;
		break;
	case "nnLBAlphaTest":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnLBManualSetting":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnLBAlphaTestMode":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnLBManualAlphaRef":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;
	case "nnLBZBufferComp":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnLBDepthCompFunction":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnLBDepthWriting":
	case "nnLBRWriting":
	case "nnLBGWriting":
	case "nnLBBWriting":
	case "nnLBAWriting":
		addAttr -attributeType bool -longName $member $matName;
		break;

// PSP マテリアル属性
	case "nnPSPBlendFlag":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPSPBlendOperand":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 5 $matName;
		break;
	case "nnPSPBlendParamA":
	case "nnPSPBlendParamB":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 10 $matName;
		break;
	case "nnPSPBlendColorA":
	case "nnPSPBlendColorB":
		addAttr -dataType "string" -longName $member $matName;
		break;
	case "nnPSPBlendLogic":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPSPBlendLogicOperand":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 15 $matName;
		break;
	case "nnPSPAlphaTest":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPSPAlphaTestFunc":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnPSPManualAlphaTestRef":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPSPAlphaTestRef":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 255 $matName;
		break;
	case "nnPSPDepthTest":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPSPDepthTestFunc":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
	case "nnPSPPixelMask":
	case "nnPSPAlphaTestMask":
		addAttr -dataType "string" -longName $member $matName;
		break;
	case "nnPSPDepthTestMask":
		addAttr -attributeType bool -longName $member $matName;
		break;

// PSPテクスチャ属性
	case "nnPSPBlendMode1":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 4 $matName;
		break;
	case "nnPSPTexEnvColor1":
		addAttr -dataType "string" -longName $member $matName;
		break;
	case "nnPSPEnviromentMap1":
	case "nnPSPSeparateSpecular1":
	case "nnPSPColorDouble1":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPSPWrapTypeU1":
	case "nnPSPWrapTypeV1":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 1 $matName;
		break;
	case "nnPSPLODType1":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnPSPLODOffset1":
		addAttr -attributeType "float" -longName $member $matName;
		break;
	case "nnPSPLODSlope1":
		addAttr -attributeType "float" -longName $member -minValue 0.0 $matName;
		break;
	case "nnPSPLODMaxLevel1":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
/***************
	case "nnPSPBlendMode2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 4 $matName;
		break;
	case "nnPSPTexEnvColor2":
		addAttr -dataType "string" -longName $member $matName;
		break;
	case "nnPSPEnviromentMap2":
	case "nnPSPSeparateSpecular2":
	case "nnPSPColorDouble2":
		addAttr -attributeType bool -longName $member $matName;
		break;
	case "nnPSPWrapTypeU2":
	case "nnPSPWrapTypeV2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 1 $matName;
		break;
	case "nnPSPLODType2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 2 $matName;
		break;
	case "nnPSPLODOffset2":
		addAttr -attributeType "float" -longName $member $matName;
		break;
	case "nnPSPLODSlope2":
		addAttr -attributeType "float" -longName $member -minValue 0.0 $matName;
		break;
	case "nnPSPLODMaxLevel2":
		addAttr -attributeType short -longName $member -minValue 0 -maxValue 7 $matName;
		break;
****************/
	}
}

//---------------------------------------------------------------------------
//  関数名 : mtnGetFieldData
//  機  能 : フィールドのデータ取得。
//  書  式 : global proc string mtnGetFieldData( string $member, string $type )
//  引  数 : string $member  : メンバー名
//         : string $type    : フィールドタイプ
//  戻り値 : フィールドデータ
//  説  明 : フィールドのデータを文字列として取得します。
//---------------------------------------------------------------------------
global proc  string mtnGetFieldData( string $member, string $type )
{
	string	$filedData;

	string $menuName = `substitute "nn" $member "MTN_"`;

	// フィールドデータの取得
	switch ( $type ) {
		case "optionMenuGrp":
			$filedData	= `optionMenuGrp			-query	-value	$menuName`;
			break;
		case "checkBoxGrp":
			$filedData	= ((string)`checkBoxGrp		-query	-value1	$menuName`);
			break;
		case "intSliderGrp":
			$filedData	= ((string)`intSliderGrp	-query	-value	$menuName`);
			break;
		case "intFieldGrp":
			$filedData	= ((string)`intFieldGrp		-query	-value1	$menuName`);
			break;
		case "floatSliderGrp":
			$filedData	= ((string)`floatSliderGrp	-query	-value	$menuName`);
			break;
		case "textField":
			$filedData	= `textField	-query	-text		$menuName`;
			break;
	}

	return( $filedData );
}

//---------------------------------------------------------------------------
//  関数名 : mtnSetFieldData
//  機  能 : フィールドデータの設定。
//  書  式 : global proc mtnSetFieldData( string $member, string $data, string $type )
//  引  数 : string $member  : メンバー名
//         : string $data    : 設定データ
//         : string $type    : フィールドタイプ
//  戻り値 : なし
//  説  明 : フィールドデータの設定をします。
//---------------------------------------------------------------------------
global proc  mtnSetFieldData( string $member, string $data, string $type )
{
	string $menuName = `substitute "nn" $member "MTN_"`;

	// フィールドデータの取得
	switch ( $type ) {
		case "optionMenuGrp":
			optionMenuGrp	-edit	-value	$data			$menuName;
			break;
		case "checkBoxGrp":
			checkBoxGrp		-edit	-value1	((int)$data)	$menuName;
			break;
		case "intSliderGrp":
			intSliderGrp	-edit	-value	((int)$data)	$menuName;
			break;
		case "intFieldGrp":
			intFieldGrp	-edit	-value1	((int)$data)	$menuName;
			break;
		case "floatSliderGrp":
			floatSliderGrp	-edit	-value	((float)$data)	$menuName;
			break;
		case "textField":
			textField		-edit	-text	$data			$menuName;
			break;
	}

}

//---------------------------------------------------------------------------
//  関数名 : mtnSetEnableDataFiled
//  機  能 : データフィールドのEnable/Disable設定。
//  書  式 : global proc mtnSetEnableDataFiled( string $member, string $type, int $enable )
//  引  数 : string $member  : メンバー名
//           string $type    : フィールドタイプ
//           int $value      : Enable/Disable
//  戻り値 : タイトル文字列
//  説  明 : データフィールドのEnable/Disable設定を設定します。
//---------------------------------------------------------------------------
global proc mtnSetEnableDataFiled( string $member, string $type, int $enable )
{
	string $menuName = `substitute "nn" $member "MTN_"`;

	switch( $type ) {
	case "checkBox":
		checkBox		-edit	-enable	$enable	$menuName;
		break;
	case "checkBoxGrp":
		checkBoxGrp		-edit	-enable	$enable	$menuName;
		break;
	case "intSliderGrp":
		intSliderGrp	-edit	-enable	$enable	$menuName;
		break;
	case "intFieldGrp":
		intSliderGrp	-edit	-enable	$enable	$menuName;
		break;
	case "floatSliderGrp":
		floatSliderGrp	-edit	-enable	$enable	$menuName;
		break;
	case "optionMenuGrp":
		optionMenuGrp	-edit	-enable	$enable	$menuName;
		break;
	case "textField":
		textField		-edit	-enable	$enable	$menuName;
		break;
	}
}

//---------------------------------------------------------------------------
//  関数名 : mtnGetEnableUpdateCheckBox
//  機  能 : 更新項目チェックボックスのEnable/Disable状況の取得。
//  書  式 : global proc int mtnGetEnableUpdateCheckBox( string $member )
//  引  数 : string $member  : メンバー名
//  戻り値 : Enable/Disable
//  説  明 : 更新項目チェックボックスのEnable/Disable状況の取得を設定します。
//---------------------------------------------------------------------------
global proc int mtnGetEnableUpdateCheckBox( string $member )
{
	string	$menuName = `substitute "nn" $member "MTN_"`;
	$menuName	+= "Change";

	int		$enable	= `checkBox	-query	-enable	$menuName`;

	return( $enable );
}

//---------------------------------------------------------------------------
//  関数名 : mtnSetEnableUpdateCheckBox
//  機  能 : 更新項目チェックボックスのEnable/Disable設定。
//  書  式 : global proc mtnSetEnableUpdateCheckBox( string $member, int $enable )
//  引  数 : string $member  : メンバー名
//           int $value      : Enable/Disable
//  戻り値 : タイトル文字列
//  説  明 : 更新項目チェックボックスのEnable/Disable設定を設定します。
//---------------------------------------------------------------------------
global proc mtnSetEnableUpdateCheckBox( string $member, int $enable )
{
	string $menuName = `substitute "nn" $member "MTN_"`;
	$menuName	+= "Change";

	checkBox	-edit	-enable	$enable	$menuName;
}

//---------------------------------------------------------------------------
//  関数名 : mtnGetUpdateCheckBox
//  機  能 : 更新項目チェックボックスの作成。
//  書  式 : global proc int mtnGetUpdateCheckBox( string $member )
//  引  数 : string $member  : メンバー名
//  戻り値 : 設定値
//  説  明 : 更新項目チェックボックスを作成します。
//---------------------------------------------------------------------------
global proc int mtnGetUpdateCheckBox( string $member )
{
	string $menuName = `substitute "nn" $member "MTN_"`;
	$menuName	+= "Change";

	int		$value	= `checkBox	-query	-value	$menuName`;

	return( $value );
}

//---------------------------------------------------------------------------
//  関数名 : mtnSetUpdateCheckBox
//  機  能 : 更新項目チェックボックスの設定。
//  書  式 : global proc mtnSetUpdateCheckBox( string $member, int $value )
//  引  数 : string $member  : メンバー名
//           int $value      : 設定値
//  戻り値 : タイトル文字列
//  説  明 : 更新項目チェックボックスを設定します。
//---------------------------------------------------------------------------
global proc mtnSetUpdateCheckBox( string $member, int $value )
{
	string $menuName = `substitute "nn" $member "MTN_"`;
	$menuName	+= "Change";

	checkBox		-edit	-value	$value	$menuName;
}

//---------------------------------------------------------------------------
//  関数名 : mtnSetUpdateCheckBox
//  機  能 : 更新項目チェックボックスの設定。
//  書  式 : global proc mtnSetUpdateCheckBox( string $member, int $value )
//  引  数 : string $member  : メンバー名
//           int $value      : 設定値
//  戻り値 : タイトル文字列
//  説  明 : 更新項目チェックボックスを設定します。
//---------------------------------------------------------------------------
global proc mtnCreateUpdateCheckBox( string $member, int $value )
{
	string $menuName = `substitute "nn" $member "MTN_"`;
	$menuName	+= "Change";

	checkBox	-label	""	-value	$value	$menuName;
}

//---------------------------------------------------------------------------
//  関数名 : mtnGetTitleName
//  機  能 : タイトル名を取得します。
//  書  式 : global proc mtnGetTitleName( string $srcName, int $attrNo )
//  引  数 : string $srcName : 元の属性名
//           int $attrNo     : 属性番号
//  戻り値 : タイトル文字列
//  説  明 : タイトル名を取得します。
//---------------------------------------------------------------------------
global proc string mtnGetAttrName( string $srcName, int $attrNo )
{
	string $attrName;

	$attrName = $srcName;
	$attrName += $attrNo;

	return $attrName;
}

//---------------------------------------------------------------------------//
//---------------------------------------------------------------------------//
//					マテリアル設定関連									 	 //
//---------------------------------------------------------------------------//
//---------------------------------------------------------------------------
//  関数名 : mtnGetTitleName
//  機  能 : タイトル名を取得します。
//  書  式 : global proc mtnGetTitleName()
//  引  数 : なし
//  戻り値 : タイトル文字列
//  説  明 : タイトル名を取得します。
//---------------------------------------------------------------------------
global proc string mtnGetTitleName()
{
	global string $nnMaterialAttributeEditToolVersion;

	string $title = "NN Material Attribute Edit Tool Ver. " + $nnMaterialAttributeEditToolVersion;

	return $title;
}


