<新規>
・ファイルメニューに、テクスチャ切り替えを追加しました。

・アニメーションメニューに、タイムワープを追加しました。

・リギングメニューに、ジョイントダイナミックスを追加しました。

 

<修正>
・StorePoseで、新しく作成したアイコンが表示されない不具合を修正しました。(Maya2010以下)
タブを移動した状態で、更新ボタンを押した際の不具合を修正しました。

・リグコントローラに、色の設定を追加しました。

・初期状態のクリアで、一部ちゃんと初期化されない不具合を修正しました。

・Maya2012で、「Edit Mesh」→「CreaseSets」のメニューの不具合を修正しました。
・Maya2011で、コネクションエディタを実行できない不具合を修正しました。

 

ダウンロードはこちら!
http://takkun.nyamuuuu.net/guren/wiki/?download

 

Maya上で、キャラクターアニメーションのTimeWarp / Limited Animation を想定したリグを作成します。
(対象は、アニメーションカーブのみ。Particle/Fluid/GeometryCacheなどは対象外です。)

ツールオプション画面

オリジナル動画

1コマうち&サンプルスクリーンショット

1コマうち(等間隔) プレイブラスト

2コマうち(等間隔) プレイブラスト

タイムワープのカーブを以下の様にし、アニメーションを調整してみます。

タイムワープのプレイブラスト

 

Maya2012を一度アンイストールしてから、DLしたインストーラーでインストールしてください。
アンインストールせずにインストールしようとすると、インストール済みとなってインストールできません。

SAP SP1のダウンロード
サブスクリプションセンターより、DLできます。

Maya2012 SP2
http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=18428455&linkID=9242259

スプラッシュウインドウに表示されていた、Hotfix *の表記がなくなります。
Maya起動後、「Help」→「About Maya」の上部にある「Version」が
「Autodesk Maya 2012 x64 Subscription Advantage Pack Service Pack1」となれば成功です。
( Maya2012 SAP SP1 の場合 )

1月 242012
 

ObakeDeformerを使用した動画をアップロードされたとの事で
ご紹介させて頂きます!

Animation Style :::CGW160::: from kohta0130 on Vimeo.

 

シェイプ選んで、トランスフォーム選んで以下のMELを実行

parent -add -s;
1月 152012
 

新年会をやろうと話していたら、Tweetviteで公募しちゃえ!ってことになりましたので、ポストしました!
もしご都合がよろしければ、参加お待ちしております!

http://tweetvite.com/event/yr8m

 

ジョイントチェーンに、MayaHairを入れてシュミレーションで動かす方法です。
実際には、ダミーのジョイントに作成し、リグに流し込んだ方が後から修正や
アニメーターが微調整したりしやすいと思います。

 


 

1)ジョイントのチェーンを作成します。

 

2)「Animation」メニューで「Skeleton」→「IK Spline Handle Tool」のオプションを実行し
以下の設定で、スプラインIKを設定します。
これは、ジョイントに沿ったカーブを作るためでIKは使用しません。
もちろん自分でカーブを作成してもOKです。

 

3) IKハンドルを削除します。

 

4)「Dynamics」メニューで、
「Hair」→「Make Curves Dynamic」のオプションを実行し、以下の設定で適用します。
( MayaHair以外にも、Jiggleデフォーマや、Sineデフォーマなど適用する場合もあります:) )

 

5)「Animation」メニューで「Skeleton」→「IK Spline Handle Tool」のオプションを実行し
以下の設定にします。

 

開始ジョイント、終了ジョイント、MayaHairカーブを選択し、スプラインIKを作成します。

 

6)整理します。

 

7) Follicleを選択しアトリビュートエディタを開きます。
「Point Lock」を「Base」にして、先端が固定されないようにします。

 

8 ) MayaHairの設定を適当にしていきます。

 

この投稿はパスワードで保護されています。表示するにはパスワードを入力してください:


  •  2011年12月31日
  •  Posted by takkun
  •   コメントを読むにはパスワードを入力してください。
  •   未分類
 

何もしないと、モジュールを読みこむごとにpycが作成されますが
pycの作成をOFFにするやりかたです。
(前にも書いた気がするんですが、残ってないのでまたポスト)

「マイドキュメント」→「maya」→「scripts」→「userSetup.py」に以下のコマンド書いてください。

import sys
sys.dont_write_bytecode = True

※「sys.dont_write_bytecode」は、Python2.6からなのでMaya2010以降から使用できます。
Nukeは、Python2.5なので使用できません。

 

Mayaには、SetRangeがありますが、自前でやる方法です。
似たような説明は省きますので、以前の記事をご参照ください。
http://takkun.nyamuuuu.net/blog/archives/category/maya/mentalray

 

古い範囲を、新しい範囲にする式は以下のとおりです。比率の計算です。
result = Min’ + ( ( Input – Min ) / ( Max – Min ) ) * ( Max’ – Min’ )

 

1)ti_FacingRatio.hと、ti_FacingRatio.cppを作成してください。

2)ti_FacingRatio.hの記述

//==============================================================================
//
// Set Range
//
//------------------------------------------------------------------------------

#include <shader.h>

#if defined __cplusplus
extern "C" {
#endif

// バージョン
#define SETRANGE_VERSION 1

// パラメータ
typedef struct setRangeParameter
{
	miVector	input;
	miVector	oldMin;
	miVector	oldMax;
	miVector	newMin;
	miVector	newMax;
}setRangeParameter;

// バージョン応答
DLLEXPORT int ti_SetRange_version();

// メイン
DLLEXPORT miBoolean ti_SetRange( miVector *outValue, miState *state, setRangeParameter *paras );

#if defined __cplusplus
} // extern "C"
#endif

 

3)ti_FacingRatio.cppの記述

//==============================================================================
//
// Set Range
//
//------------------------------------------------------------------------------
#include <math.h>
#include "ti_SetRange.h"

//==============================================================================
//
// バージョン応答
//
//------------------------------------------------------------------------------
DLLEXPORT int ti_SetRange_version( void )
{
	return SETRANGE_VERSION;
}

//==============================================================================
//
// メイン
//
//------------------------------------------------------------------------------
DLLEXPORT miBoolean ti_SetRange(
	miVector	*outValue,
	miState		*state,
	setRangeParameter	*paras
	)
{
	// アトリビュートの取得
	miVector input  = *mi_eval_vector( &paras->input );
	miVector oldMin = *mi_eval_vector( &paras->oldMin );
	miVector oldMax = *mi_eval_vector( &paras->oldMax );
	miVector newMin = *mi_eval_vector( &paras->newMin );
	miVector newMax = *mi_eval_vector( &paras->newMax );

	// 計算
	outValue->x = newMin.x + ( ( input.x - oldMin.x ) / ( oldMax.x - oldMin.x ) ) * ( newMax.x - newMin.x );
	outValue->y = newMin.y + ( ( input.y - oldMin.y ) / ( oldMax.y - oldMin.y ) ) * ( newMax.y - newMin.y );
	outValue->z = newMin.z + ( ( input.z - oldMin.z ) / ( oldMax.z - oldMin.z ) ) * ( newMax.z - newMin.z );
	return miTRUE;
}

 

4)ti_FacingRatio.miの記述

declare shader
	vector "ti_SetRange"
	(
		vector	"input",
		vector	"oldMin",	#:default 0.0 0.0 0.0
		vector	"oldMax",	#:default 1.0 1.0 1.0
		vector	"newMin",	#:default 0.0 0.0 0.0
		vector	"newMax"	#:default 1.0 1.0 1.0
	)
	#: nodeid 123455
	version 1
	apply texture
end declare

 

プロジェクトデータ
ti_SetRange.zip