- 2022.03.28 Monday
- スポンサーサイト
-
一定期間更新がないため広告を表示しています
- | スポンサードリンク | - | | - | - | pookmark |
- 2015.05.28 Thursday
- Maya LT 2015 Extension 1: Game Export Tool
- | whaison | Maya | 09:08 | comments(0) | - | pookmark |
- 2015.05.27 Wednesday
- Autodesk Maya2015からの単一のFBXに複数の名前付きのanimation :Multi-Takeやめたほうがいい。
-
このPDFの翻訳をしておく 結果つかったらMayaのFBX書き出しが猛烈に遅くなってフリーズしたのでやめといたほうがいいです。しかも結果も出なかった。。
Autodesk Mayaからの単一のFBXに複数の名前付きのアニメーションのエクスポート
マヤから複数のアニメーションをエクスポートします
このチュートリアルでは、複数のアニメーションをエクスポートするPlasticAntソフトウェアによって開発されたMulti-Take Maya plugin
を使用することになります。また、オートデスク「FBXコンバータ」にアニメーションを表示します。このチュートリアルを開始する前に、これらのソフトウェアパッケージがインストールされているの両方を確認してください。
Multi-TakeのMayaプラグインは、プラスチック製のAntのWebサイトかTurbosquid.comからに直接10ドルで購入することができます。
Multi-Take Maya plugin
Plastic And Multi Take Maya OSX で検索するとある
Windows 10ドル AutoDesk経由
https://apps.exchange.autodesk.com/MAYA/ja/Detail/Index?id=appstore.exchange.autodesk.com%3Afbxmultitakemaya_windows64%3Aen
MacOs £6.99 作者にPaypalで払える
http://plasticant.co.uk/site/downloads/fbx-multi-take-maya-osx/
Turbosquid.com偽物かも 詐欺サイト?
http://www.turbosquid.com/Search/Index.cfm?keyword=Multi+Take+maya
(注:正確にこのチュートリアルに従っていると、まだアンインストールしてくださいして、再度インストールプラグインをMutliテイク正しい結果を取得されていませんので、もしこのプラグインをインストールした後にMayaインタフェースには視覚的な違いがあってはなりません)
スタート
このプロジェクトを開始するには、あなたはすでにあなたの3Dオブジェクト(複数可)のタイムラインににキーイングを使用するすべての異なるアニメーションを持っている必要があります。あなたの異なったアニメーションの各開始/終了点のキーフレームがあることを確認し、準備ができたら、それはあなたのアニメーションセクションのみ1を覆うように、あなたのタイムスライダを調整します。ここでは、この下の例では、フレーム0〜20です。
今すぐあなたのオブジェクト(複数可)を選択し、ウィンドウのバーに向かって移動し、トラックスエディタウィンドウを開きます。
//Window-> General editor-> Scroll right through tabs section->Character Clips
//ウィンドウ - >一般エディタ - >右タブ部 - >キャラクター·クリップをスクロール//意味不明
ウィンドウ - >アニメーションエディタ - >トラックスエディタ
今トラックスエディタの[作成]タブに移動し、アニメーションクリップ□のオプションボックスを選択します。
確認してください。すべての設定は、名前の部分を除いて下の画像と同じです。この名前は、適切であると感じるものは何でも変更することができます。アニメーションクリップを生成するために、クリップの作成]を選択します。
クリップが作成されると、それだけで次のアニメーションクリップをカバーし、再度処理を繰り返すように、Mayaのメインディスプレイにタイムスライダを移動します。
この下の私たちの画像では1番目と2番目のクリップ共有しているため、同じキーフレームのフレーム20〜40です。
再び作成->アニメーションクリップを選択します。
新しいアニメーションクリップの別の名前を与えます。
翻訳:今回は見たところこっちの設定に合わせた方が作りやすかったので
以下画像の通りに設定しました。
トラックスエディタでアニメーションが行くどこトラックスエディタのタイムライン上に青色のバーを明らかにするタブメニューの下に位置する「すべて表示」アイコンを選択します。
トラックスエディタ]ウィンドウの[ライブラリ]タブの下にクリップを挿入ボタンを選択して、アニメーションクリップの両方を挿入します。
これはあなたのアニメーションクリップを表す2つの青いバーを生成する必要があります。彼らは次々に位置するように、あなたのタイムラインに青いアニメーションクリップを配置します。
あなたのクリップの青いバーがトラックスエディタウィンドウのタイムライン内に表示されない場合トラックスエディタを閉じてください、それを再度開きます。
また、タイムラインの間違った部分にすぎズームインされていないことを確認するためにも同様にズームアウトしてみてください。
(注:あなたのアニメーションにオフセットを引き起こす可能性があります、元のキーフレームを削除せずに、あなたのオブジェクトへのアニメーションクリップを挿入これを回避するには、文字のクリップを右クリックし、「クリップを有効」未確認)
あなたのクリップが挿入され、正しく配置されたら、
Mayaのメインウィンドウに移動し、
それではあなたのキーフレームのすべてを覆うようにタイムスライダを調整します。
この下の画像ではフレーム0〜40です。
FBXへのオブジェクト(複数可)とエクスポート]を選択します。
あなたのファイルの確認
このプロセス全体がオープンオートデスクFBXコンバータを働いているかをチェックし、「FBXビューア」を選択します。あなたの3Dモデルがアニメーションで表示された表示するにはウィンドウに、ハードドライブ上のフォルダから、あなたのFBXファイルをドラッグします。 - | whaison | Maya | 16:10 | comments(0) | - | pookmark |
- 2015.05.26 Tuesday
- jameskyleさんのFBX Batch Exporter 0.0.1 (maya script)
-
jameskyleさんのFBX Batch Exporter 0.0.1 (maya script)
Unity 2D Game Development Cookbook
https://books.google.co.jp/books?id=Yii5BgAAQBAJ&hl=ja&source=gbs_navlinks_s
この本の中に
https://books.google.co.jp/books?id=Yii5BgAAQBAJ&pg=PA31&lpg=PA31&dq=Maya+mel+Fbx+Animation+Animation+Name+Unity+clips+start+end+setting+Editor&source=bl&ots=t4kICRAuE2&sig=jn2Hi9WcWsZbN1VmIxOIVpQHfVY&hl=ja&sa=X&ei=QlRkVdnAA4fHmwX5nYHoCA&ved=0CCAQ6AEwAA#v=onepage&q=Maya%20mel%20Fbx%20Animation%20Animation%20Name%20Unity%20clips%20start%20end%20setting%20Editor&f=false
こんなURLがあって
http://www.jameskyle.net/2013/03/maya-to-fbx-batch-export/
こっちが最新で。
http://www.jameskyle.net/2013/04/maya-fbx-batch-exporter-complete/
使い方がイマイチわからないんだけど複数AnimationNameを出力してくれそうなものを見つけた!
うまくいってないのはどうすればいいかわからない。fbxFileNameを別にしたほうがいいのかな
1
2
3
4
- | whaison | Maya | 21:16 | comments(0) | - | pookmark |
- 2015.05.22 Friday
- Maya2016でスキンウェイトセーブ保存復帰できる Dora SkinWeight Import Export 3.6.0 (maya script)
-
Maya2016で
スキンウェイトセーブ保存復帰できるDora SkinWeight Import Export 3.6.0 (maya script)
http://www.creativecrash.com/maya/script/dora-skinweight-import-export
本家日本語
http://dorayuki.com/doramaya/SkinWeightIE.htm
skin Weight .dswが吐き出される
skin Weight .dswをインポート
チェック???
DoraSkinWeightImpExp001.mel
global string $gDoraSkinWeight_ver = "3.60";
proc string DoraSkinWeightImpExp_vtx2uv( string $vtx )
{
string $ret;
string $workString[];
$workString= `polyListComponentConversion -fv -tuv $vtx`;
$ret= `substitute ".map" $workString[0] ".uv"`;
return( $ret );
}
proc string DoraSkinWeightImpExp_checkOverlapsList( string $list[] )
{
string $shorteList[];
string $overlapsList[];
string $overlapsList2[];
int $overlapsListN;
int $i, $j, $k;
string $retString;
int $overlapsCount;
$shorteList = stringArrayRemoveDuplicates($list);
if( size($list)==size($shorteList) )return("");
else
{
$overlapsListN=0;
for( $i=0 ; $i<(size( $list )-1) ; $i++ )
{
for( $j=$i+1 ; $j<size( $list ) ; $j++ )
{
if( $list[$i]==$list[$j] )
{
$overlapsList[$overlapsListN]= $list[$i];
$overlapsListN++;
}
}
}
$overlapsList2= stringArrayRemoveDuplicates($overlapsList);
$retString="";
for( $i=0 ; $i<size($overlapsList2) ; $i++ )
{
$overlapsCount= stringArrayCount( $overlapsList2[$i], $list );
$retString+= ( $overlapsList2[$i] + " (" + $overlapsCount + ") " );
if( $i<size($overlapsList2)-1 )
{
$retString+= ", ";
}
}
return ( $retString );
}
}
proc string DoraSkinWeightImpExp_extCheck( string $name, string $ext )
{
string $ret;
$ret= $name;
if( size($name)<=size($ext) )
{
$ret= $name + $ext;
}
else
{
if( tolower(substring( $ret, size($ret)-(size($ext)-1), size($ret) )) != $ext )
{
$ret= $name + $ext;
}
}
return $ret;
}
proc string DoraSkinWeightImpExp_shapeName( string $obj )
{
string $shape[];
$shape= `listHistory $obj`;
$shape= `ls -type shape $shape`;
if( size($shape)==0 )return( "" );
else return( $shape[0] );
}
proc vector DoraSkinWeightImpExp_vtx2vector( string $vtxName )
{
vector $vtx;
float $workXYZf[];
$workXYZf= `pointPosition -w $vtxName`;
$vtx= <<$workXYZf[0], $workXYZf[1], $workXYZf[2]>>;
return( $vtx );
}
proc vector DoraSkinWeightImpExp_vtx2uvVector( string $vtxName )
{
vector $vtx;
float $workXYZf[];
string $workString;
$workString= DoraSkinWeightImpExp_vtx2uv( $vtxName );
$workXYZf= `getAttr $workString`;
$vtx= <<$workXYZf[0], $workXYZf[1], 0.0>>;
return( $vtx );
}
proc string DoraSkinWeightImpExp_dswAppendListGet()
{
string $ret;
string $fileList[];
string $dswDir;
int $i;
$dswDir= (`workspace -q -fn`+"/dsw/");
$fileList= `getFileList -folder $dswDir -filespec "*.dsw"`;
for( $i=0,$ret="" ; $i<size( $fileList ) ; $i++ )
{
$ret= ($ret + "-a ¥"" + $fileList[$i] + "¥" ");
}
return $ret;
}
proc string DoraSkinWeightImpExp_searchSC( string $meshShape )
{
string $cList[];
$cList= `listHistory $meshShape`;
$cList= `ls -type skinCluster $cList`;
if( size($cList)==0 )return( "" );
else return( $cList[0] );
}
proc string DoraSkinWeightImpExp_simpleObjName( string $name )
{
string $ret;
$ret = `substitute ".*|" $name ""`;
return( $ret );
}
global proc int DoraSkinWeightExport( string $dsw_name )
{
string $exportFileName;
int $fileId;
string $slList[];
string $shape;
string $sc;
string $jointList[];
int $i,$j;
int $wp[];
string $workString,$workVtx;
string $outputFileLine;
float $weightList[];
global string $gMainProgressBar;
float $wpos[3];
float $uv[2];
int $noneUVCount;
int $mode;
if( $dsw_name=="")
{
error("No Export Name");
return( 0 );
}
$slList= `filterExpand -sm 12`;
if( size( $slList )==0 )
{
$slList= `filterExpand -sm 31`;
$slList= `ls -fl $slList`;
if( size( $slList )==0 )
{
error("No objects SmoothSkinMesh selected (1)");
return( 0 );
}
else{ $mode=2; }
}
else{ $mode=1;}
$shape= DoraSkinWeightImpExp_shapeName( $slList[0] );
$sc= DoraSkinWeightImpExp_searchSC( $shape );
if( $sc=="" )
{
error("No objects SmoothSkinMesh selected (2)");
return( 0 );
}
$jointList= `listConnections -type "joint" ($sc+".matrix")`;
for( $i=0 ; $i<size($jointList) ; $i++ )
{
$jointList[$i]= DoraSkinWeightImpExp_simpleObjName( $jointList[$i] );
}
$workString= DoraSkinWeightImpExp_checkOverlapsList( $jointList );
if( $workString!="" )
{
error("JointName Overlaps [ " + $workString + "]" );
return( 0 );
}
switch( $mode )
{
case 1:
$wp= `polyEvaluate -v $shape`;
break;
case 2:
$wp[0]= size( $slList );
break;
}
$exportFileName = toNativePath(`workspace -q -fn` + "/" + "dsw/" + DoraSkinWeightImpExp_extCheck($dsw_name, ".dsw"));
sysFile -makeDir `dirname( $exportFileName )`;
progressBar -edit
-beginProgress
-status ("Export [ " + $exportFileName +" ]")
-maxValue $wp[0]
$gMainProgressBar;
$fileId=`fopen $exportFileName "w"`;
fprint $fileId ("DoraYuki Skin Weight Format 3.00¥n");
$outputFileLine= "";
for( $i=0 ; $i<size($jointList) ; $i++ )
{
$outputFileLine+= ($jointList[$i]);
if( $i+1 < size($jointList) )
{
$outputFileLine+= ",";
}
}
fprint $fileId ( $outputFileLine + "¥n" );
$noneUVCount= 0;
for( $i=0 ; $i<$wp[0] ; $i++ )
{
switch( $mode )
{
case 1:
$workVtx= ($shape + ".vtx[" + $i + "]");
break;
case 2:
$workVtx= $slList[$i];
break;
}
$weightList= `skinPercent -q -v $sc $workVtx`;
$outputFileLine= "";
for( $j=0 ; $j<size($weightList) ; $j++ )
{
$outputFileLine+= $weightList[$j];
if( $j+1 < size($weightList) )
{
$outputFileLine+= ",";
}
}
$outputFileLine+= "|";
$wpos= `pointPosition -w $workVtx`;
$outputFileLine+= ( $wpos[0] + "," + $wpos[1] + "," + $wpos[2] + "|" );
$workString= DoraSkinWeightImpExp_vtx2uv($workVtx);
if( $workString!="" )
{
$uv= `getAttr $workString`;
}
else
{
$noneUVCount++;
warning("noneUV Vartex[ " + $i + " ]");
$uv[0]=0.0;
$uv[1]=0.0;
}
$outputFileLine+= ( $uv[0] + "," + $uv[1] );
fprint $fileId ( $outputFileLine + "¥n");
progressBar -edit
-step 1 $gMainProgressBar;
}
fclose $fileId;
progressBar -edit
-endProgress
$gMainProgressBar;
$i= $wp[0];
$wp= `polyEvaluate -v $shape`;
confirmDialog -title "DSW Exported" -message ( "[ " + $shape + " ] Vertex : " + $wp[0] + "¥n¥nDSW VertexPoint : " + $i + "¥n¥nnoneUV VartexPoint : " + $noneUVCount + "¥n¥nExportDSWFile : ¥n[ "+ $exportFileName + " ]") -button "OK" -defaultButton "OK";
return( 1 );
}
proc int DoraSkinWeightImpExp_compDistance( vector $xyz, vector $a, vector $b, float $distance[] )
{
$distance[0]= abs(mag($xyz-$a));
$distance[1]= abs(mag($xyz-$b));
if( $distance[0] > $distance[1] )return(0);
else return(1);
}
proc int DoraSkinWeightImpExp_vtxDistanceMin( vector $xyz, string $shape, int $mode, int $setF[], float $range )
{
int $wp[];
vector $vtxA;
int $minNo;
int $i;
float $dis[2];
int $hitF;
$minNo=-1;
$wp= `polyEvaluate -v $shape`;
for( $i=0,$hitF= 0 ; $i<$wp[0] ; $i++ )
{
if( $setF[$i]==1 )continue;
if( $mode==0 )$vtxA= DoraSkinWeightImpExp_vtx2vector($shape + ".vtx[" + $i + "]");
else $vtxA= DoraSkinWeightImpExp_vtx2uvVector($shape + ".vtx[" + $i + "]");
$dis[0]= abs(mag($xyz-$vtxA));
if( $dis[0]<=$range )
{
$hitF=1;
$minNo= $i;
break;
}
}
if( $hitF==1 )return( $minNo );
return( -1 );
}
proc DoraSkinWeightImpExp_weightCopy( int $an, int $bn, string $sc, string $shape )
{
string $workString;
string $jointList[];
float $weightList[];
float $weight;
int $i;
$jointList= `listConnections -type "joint" ($sc+".matrix")`;
for( $i=0 ; $i<size($jointList) ; $i++ )
{
$jointList[$i]= DoraSkinWeightImpExp_simpleObjName( $jointList[$i] );
}
$workString= ($shape + ".vtx[" + $an + "]");
$weightList= `skinPercent -q -v $sc $workString`;
$workString= "";
for( $i=0 ; $i<size($jointList); $i++ )
{
$weight= float($weightList[$i]);
$workString+= ( "-tv " + $jointList[$i] + " " + $weight + " " );
}
if( $workString!="" )
{
$vtxName= ($shape + ".vtx[" + $bn + "]");
$workString= ("skinPercent " + $workString + $sc + " " + $vtxName );
eval( $workString );
}
}
proc string DoraSkinWeightImpExp_getParam_weightSet( string $selectJoint[], int $exist[], int $unknown[], string $joint[], string $weight[] )
{
string $workString= "";
string $jName="";
string $jWeight="";
for( $i=0 ; $i<size($exist); $i++ )
{
$jName= $selectJoint[$exist[$i]];
$jWeight=" ";
for( $j=0 ; $j<size($joint) ; $j++ )
{
if( $jName==$joint[$j] )
{
$jWeight=$weight[$j];
$workString+= ( "-tv " + $jName + " " + $jWeight + " " );
break;
}
}
}
for( $i=0 ; $i<size($unknown); $i++ )
{
$workString+= ( "-tv " + $selectJoint[$unknown[$i]] + " 0 " );
}
return( $workString );
}
global proc int DoraSkinWeightImport( string $dsw_name, int $importMode, int $interpolationWeight, int $interpolationMode, float $para)
{
global string $gDoraSkinWeightImpExp_jointNameNew[];
string $ImportFileName;
int $fileId;
string $textLine;
string $slList[];
string $shape;
string $sc;
string $jointList[];
string $selectMeshJointList[];
int $existJointN[];
int $unknownJointN[];
string $weightList[];
int $wp[];
string $vtxName;
int $i, $j, $k, $l;
string $workString,$workString2;
string $pointData[];
float $weight;
global string $gMainProgressBar;
string $workXYZs[];
float $workXYZf[];
vector $workVec[2];
vector $wpos[2];
int $minNo;
float $workDistance[2];
int $weightSetF[];
int $dataCount;
int $weightSetCount;
int $weightSet2Count;
if( $dsw_name=="")
{
return( 0 );
}
$slList= `filterExpand -sm 12`;
if( size( $slList )==0 )
{
error("No objects SmoothSkinMesh selected (1)");
return( 0 );
}
$shape= DoraSkinWeightImpExp_shapeName( $slList[0] );
$sc= DoraSkinWeightImpExp_searchSC( $shape );
if( $sc=="" )
{
error("No objects SmoothSkinMesh selected (2)");
return( 0 );
}
$selectMeshJointList= `listConnections -type "joint" ($sc+".matrix")`;
for( $i=0 ; $i<size($selectMeshJointList) ; $i++ )
{
$selectMeshJointList[$i]= DoraSkinWeightImpExp_simpleObjName( $selectMeshJointList[$i] );
}
$workString= DoraSkinWeightImpExp_checkOverlapsList( $selectMeshJointList );
if( $workString!="" )
{
error("JointName Overlaps [ " + $workString + "]" );
return( 0);
}
$importFileName = toNativePath(`workspace -q -fn` + "/dsw/" + $dsw_name);
$wp= `polyEvaluate -v $shape`;
for( $i=0 ; $i<$wp[0] ; $i++ )$weightSetF[$i]=0;
$fileId=`fopen $importFileName "r"`;
$textLine= `fgetline $fileId`;
$textLine= `substitute "¥n" $textLine ""`;
if( $textLine!="DoraYuki Skin Weight Format 3.00" )
{
error( "No DSW Format 3.00" );
return( 0 );
}
$textLine= `fgetline $fileId`;
$textLine= `substitute "¥n" $textLine ""`;
if($textLine=="" )
{
return( 0 );
}
tokenizeList($textLine, $jointList);
for( $j=0 ; $j<size($jointList) ; $j++ )
{
$jointList[$j]= DoraSkinWeightImpExp_simpleObjName( $jointList[$j] );
}
if( `window -ex DoraSkinWeightImpExpJointNameEditWindow` == true )
{
for( $i=0 ; $i<size($jointList) ; $i++ )
{
$jointList[$i]= $gDoraSkinWeightImpExp_jointNameNew[$i];
}
}
$e=0;
$u=0;
for( $s=0 ; $s<size($selectMeshJointList); $s++ )
{
$check=0;
for( $d=0 ; $d<size($jointList) ; $d++ )
{
if( $selectMeshJointList[$s]==$jointList[$d])
{
$existJointN[$e]= $s;
$e++;
$check=1;
break;
}
}
if( $check==0 )
{
$unknownJointN[$u]=$s;
$u++;
}
}
progressBar -edit
-beginProgress
-status ("Import [ " + $importFileName +" ]")
-maxValue $wp[0]
$gMainProgressBar;
setAttr ( $sc + ".normalizeWeights") 0;
setAttr ( $sc + ".envelope") 0;
$dataCount=0;
$weightSetCount=0;
$weightSet2Count=0;
switch( $importMode )
{
case 0:
for( $i=0 ; $i<$wp[0] ; $i++ )
{
$textLine= `fgetline $fileId`;
$textLine= `substitute "¥n" $textLine ""`;
if($textLine=="" )break;
tokenize( $textLine, "|", $pointData );
tokenizeList($pointData[0], $weightList);
$dataCount++;
$workString=DoraSkinWeightImpExp_getParam_weightSet( $selectMeshJointList, $existJointN, $unknownJointN, $jointList, $weightList );
if( $workString!="" )
{
$vtxName= ($shape + ".vtx[" + $i + "]");
$workString= ("skinPercent -r false " + $workString + $sc + " " + $vtxName );
eval( $workString );
$weightSetCount++;
$weightSetF[$i]= 1;
}
progressBar -edit
-step 1 $gMainProgressBar;
}
break;
case 1:
$textLine= `fgetline $fileId`;
while( $textLine!="" )
{
$textLine= `substitute "¥n" $textLine ""`;
tokenize( $textLine, "|", $pointData );
tokenizeList($pointData[0], $weightList);
tokenizeList($pointData[1], $workXYZs);
$wpos[0]= << float($workXYZs[0]), float($workXYZs[1]), float($workXYZs[2])>>;
$dataCount++;
$minNo= DoraSkinWeightImpExp_vtxDistanceMin( $wpos[0], $shape, 0, $weightSetF, $para);
if( $minNo!=-1 )
{
$workString=DoraSkinWeightImpExp_getParam_weightSet( $selectMeshJointList, $existJointN, $unknownJointN, $jointList, $weightList );
if( $workString!="" )
{
$vtxName= ($shape + ".vtx[" + $minNo + "]");
$workString= ("skinPercent -r false " + $workString + $sc + " " + $vtxName );
eval( $workString );
$weightSetCount++;
$weightSetF[$minNo]= 1;
}
}
progressBar -edit
-step 1 $gMainProgressBar;
$textLine= `fgetline $fileId`;
}
break;
case 2:
$textLine= `fgetline $fileId`;
while( $textLine!="" )
{
$textLine= `substitute "¥n" $textLine ""`;
tokenize( $textLine, "|", $pointData );
tokenizeList($pointData[0], $weightList);
tokenizeList($pointData[2], $workXYZs);
$wpos[0]= << float($workXYZs[0]), float($workXYZs[1]), 0>>;
$dataCount++;
$minNo= DoraSkinWeightImpExp_vtxDistanceMin( $wpos[0], $shape, 1, $weightSetF, $para );
if( $minNo!=-1 )
{
$workString=DoraSkinWeightImpExp_getParam_weightSet( $selectMeshJointList, $existJointN, $unknownJointN, $jointList, $weightList );
if( $workString!="" )
{
$vtxName= ($shape + ".vtx[" + $minNo + "]");
$workString= ("skinPercent -r false " + $workString + $sc + " " + $vtxName );
eval( $workString );
$weightSetCount++;
$weightSetF[$minNo]= 1;
}
}
progressBar -edit
-step 1 $gMainProgressBar;
$textLine= `fgetline $fileId`;
}
break;
}
if( $interpolationWeight == 1 )
{
switch( $interpolationMode )
{
case 1:
$workString="";
for( $i=0 ; $i<size($weightSetF) ; $i++ )
{
if( $weightSetF[$i]==1 )continue;
$minNo= -1;
for( $j=0 ; $j<$wp[0] ; $j++ )
{
if( $i!=$j && $weightSetF[$j]==1 )
{
$workVec[0]= DoraSkinWeightImpExp_vtx2vector($shape + ".vtx[" + $j + "]");
$minNo= $j;
break;
}
}
for( ; $j<$wp[0] ; $j++ )
{
if( $i!=$j && $weightSetF[$j]==1 )
{
$workVec[1]= DoraSkinWeightImpExp_vtx2vector($shape + ".vtx[" + $j + "]");
if( DoraSkinWeightImpExp_compDistance( DoraSkinWeightImpExp_vtx2vector($shape + ".vtx[" + $i + "]"), $workVec[0], $workVec[1], $workDistance )==0 )
{
$workVec[0]= $workVec[1];
$minNo= $j;
}
}
}
progressBar -edit
-step 1 $gMainProgressBar;
if( $minNo == -1 )break;
DoraSkinWeightImpExp_weightCopy( $minNo, $i, $sc, $shape );
$weightSet2Count++;
$weightSetF[$i]=2;
}
break;
case 2:
$workString="";
for( $i=0 ; $i<size($weightSetF) ; $i++ )
& - | whaison | MEL(Maya Embedded Language) | 13:05 | comments(0) | - | pookmark |
- 2015.05.20 Wednesday
- Metasequoia4.4.3 から Maya2015へのOBJエクスポートの設定
-
Metasequoia4.4.3 から Maya2015へのOBJエクスポートの設定
UVマッピング
V方向を反転にチェックをいれる
- | whaison | Metasequoia | 12:53 | comments(0) | - | pookmark |
- 2015.05.20 Wednesday
- Maya2015 で板ポリ平面を合成したら、表示順序がおかしくなった件
-
Maya2015 で板ポリ平面を合成したら、表示順序がおかしくなった件
合成されたポリゴンごとに透明度ソートできてるかにかかわっていたようです。 Unity5.0.2の場合>ShaderをUnit/Transparent Cutoutのシェーダーに変更したらうまく表示されました。 これでもジャギーがてるようなので他も考え中です。 Maya2015の場合 そのままではポリゴン透明度ソート 選択できないので ビューポートのレンダラ>旧式の既定ビューポート(Renderer > Default Quality Rendering) ビューポートのシェーディング>ポリゴン透明ソート(Shading > Polygon Transparency Sorting) で解決しました。 左が:合成したもの:重なり順がおかしい 右が:合成してないもの:重なり順正常 これが こう 関連 http://www.polycount.com/forum/showthread.php?t=101813 ああ
- | whaison | Maya | 11:12 | comments(0) | - | pookmark |
- 2015.05.08 Friday
- Blender2.72b でメタセコMetasequoiaのMQOファイルをimportExportするプラグイン objが入出力可能になる。
-
Blender2.72b でメタセコイアMetasequoiaのMQOファイルをimportExportするプラグイン
objが入出力可能になる。
http://nullorempry.jimdo.com/2014/07/21/blender/
にね
以下のURLから「mqo_script_268」というzipファイルをダウンロードしてお確かめください。
https://onedrive.live.com/?cid=CE4C74EDA2A73245&id=CE4C74EDA2A73245%21276&sc=documents
。。。。
バックアップ
- | whaison | Blender | 17:48 | comments(0) | - | pookmark |
- 2015.05.02 Saturday
- maya2015 スムースバインドと反対のスキンのデタッチ
-
メッシュと
ボーンをくっつける
スキン > スキンのバインド > スムース バインド(Skin > Bind Skin > Smooth Bind) を選択します
メッシュと
ボーンをはずす
スキン > スキンのデタッチ(Skin > Detach Skin) を選択します。
関連
スキン > スキンのバインド > スムース バインド(Skin > Bind Skin > Smooth Bind)
http://me.autodesk.jp/wam/maya/docs/Maya2009/index.html?url=Skin__Bind_Skin__Smooth_Bind.htm,topicNumber=d0e334830
バインドのオプション設定
スキンをデタッチするには
http://area.autodesk.jp/column/tutorial/maya_atoz/skin_weights_1/index-2.html
http://me.autodesk.jp/wam/maya/docs/Maya2010/index.html?url=Skinning_Detach_smooth_skin.htm,topicNumber=d0e322298
- | whaison | Maya | 11:19 | comments(0) | - | pookmark |
- 2015.05.01 Friday
- maya component Editer コンポーネントエディタの使い方
-
maya component Editer コンポーネントエディタの使い方
https://www.youtube.com/watch?v=bqrwmDRnLZ4
ビデオのまんまだけど
ポリゴンメッシュモデルと
ボーンを作ったら、
スムースバインド
して
メッシュ上で右クリックして、
下でゆうVertex(頂点)モードにして適当に選択したいとこ選択して shift+『 . 』で自動的に追加選択してくれる。
注意:ボーンを選択しちゃうと解除されちゃうので上の方法で逃げる。
ウィンドウ>一般エディタ>コンポーネントエディタ>スムーズスキンのタブ
でこんな感じでいっぱい表示されるので
ひつようなボーンからだけ影響するように変更していく
今回割り当てたいボーンはこれだけだったから1列と総数だけになった。
- | whaison | Maya | 21:29 | comments(0) | - | pookmark |