ソースを整理しました

次はプラグインを作るなどと言っておきながら、
今まで作ったソースの整理などやっておりました…
続きを読む »

modtoolで竜の頭18 - 番外編youtube

唐突ですが、youtubeに初めて動画を張ってみました。

レンダリングする前に動画を編集するツールを入れていないことに気が付き、フリーのツールを探していたのですが

modtoolでmpeg4をそのまま吐き出すことが出来ました。

 

吐き出される連番ファイルの形式をtgaに変えてもpicで保存されるのは謎です。

結局picとaviが同時に作られました。

 

アップした動画のものはウェイトを全く調整していない状態です。

これだけ小さくて画質も荒いので、許容範囲かと。

モーションを作るのが久しぶりなので、勘を取り戻そうとあせって作りました。

モデリングもそうですが、モーションもやっていると分からなくなります。

日を空けると少し見えてきます。

 

昨日作って先ほど少し修正して動画にしました。

もう少し手を入れる必要がありますが、説明する分には十分だろうかと思っておりますがいかがなものでしょうか?

 

そういえば昨日ページの設定を変え、トップページに最新の更新記事が出るようにしました。

ブログです。

なんだか人のとずいぶん違うような気もしますが、、

 

カテゴリーを整理しもう少し見やすいようにしてゆきたいと思います。

何にせよ早く竜の頭を終わらせないといけませんね。

 

では、今回はこの辺で。

modtoolで竜の頭17 - プロジェクトの作成とobjの読み込み

プロジェクトフォルダの設定とobjファイルの読み込みをしてゆきます。

objは最新の07.objをダウンロードしてください。

(アスキーデータなので左クリックしてもダウンロードは出来ないかもしれません。その場合は右クリックでお願いします)

 

File>Project Manager…を開きます。

image022s

(上図ではプロジェクトがありませんが、間違えて「ClearList」を押してしまっただけです。お気をつけください)

「New Project…」

を押し新規プロジェクトを作成します。

出てくるウィンドウの「Projct Name」にプロジェクトの名前を、「Location」にファイルパスを入力します。

「…」をクリックすればブラウザが開きます。こちらでは「dragon」というプロジェクト名にしました。

 

image023s

Modtoolを再起動したらリストが戻りました、、怪奇現象です。

新たに出来た「dragon」をクリックし、「Set as Default」を押し、デフォルトプロジェクトに設定します。

 

プロジェクトをセットできたら、早速objファイルよ読み込みます。

 

File>Impotr>Obj File…でウィンドウを出します。

image024s

Filenameの「…」からブラウザを出し、07.objを選択し「OK」を押します。特に設定を変える必要はありません。

image166l

読み込みました。

こちらではパスが通っているので張られているテクスチャが付いた状態です。

テクスチャが付いていなくても気にすることはありません。テクスチャ自体違うものですし。

 

まずはオブジェクトをクリックして選択します。

Modify>Poly.Mesh>Symmetrize Polygonsを実行します。

image167l

出てくるダイアログはそのまま「OK」を押します。

 

「8」(テンキーではない)を押しエクスプローラを表示します。

image025s

エクスプローラ上にポインタを置き、「o」を押します。シーン内の画像を表示できます。

image026s

「Images」を展開し「Check_psd」を選択し、「Delete」キーを押します。

image027s

ダイアログが出てきますが、かまわず「OK」もしくは「Enter」を押します。

OSに戻り、tex00をプロジェクトフォルダの「Pictures」に入れておきます。

「Alt」+「6」(テンキーでない)でクリップビューアを開きます。

File>Import…からtex00.psdを選択し、読み込みます。

 

再びモデルを選択し(解除してなければそのままで)、「7」(テンキーでない)を押し、

レンダーツリーを表示されます。

Clips>tex00_psdを選びます。

image028s

「tex00_psd」ノードの青い丸からドラッグし、「txt2d-image-explicit」ノードの青い丸にドロップし

接続します。

image168l

modtoolでも無事に表示させることが出来ました。

「Ctrl」+「s」でセーブしておきましょう。ファイル名は「dragon」としました。

 

次回から骨入れに入ります。

XSIの骨入れが久しぶりなので不安があります。途中でやり直すかもしれません。

 

では、今回はこの辺で。

ウィルス駆除 + XSIのイベントスクリプトのインストール場所

wordpressのカスタマイズを試みておりました。

要望は、カテゴリーの一覧だけではなく、カテゴリーに含まれる記事を全部表示する。

という機能が欲しかったのです。

 

どうも無理そうです。

ソースコードを見てみるとまだまだ汚い部分があるのでそれらもそのうち直さないといけないなぁ

と思いながらも新たな機能の追加を試みてみましたが、結局どちらも出来ない、という最悪の結果に終わりました。

しかもそれに時間をとられ、記事の更新が出来ませんでした。

 

なので、今日は自分のメモ用にと記事を書きます。

ウィルス駆除ソフトについてですが、以前はノートンを使っていたのですが、

最近は商用でなければ無料で使えるツールがあるようなので、そちらに切り替えました。

avast!つい先ほどまで使っておりました。DownloadからJapanese Versionをダウンロードすれば日本語版を手に入れられます。

しかしこれはスパイウェアには対応しておりません。

なので、Spybot-S&DのSpybotというソフトも入れる必要があります。DownloadからSpybot – Search & Destroy

を選べばダウンロードできます。

 

二度手間で面倒です。

なのでつい先ほどアンインストールをしました。

新たに見つけたAVGというツールを入れてみました。ダウンロードからAVG Anti-Virus Free Editionを選べばダウンロードできます。

こちらはスパイウェアも検出してくれます。

まとめられました。

 

前回ソースを載せたXSIのイベントスクリプトですが、あのまま使うとエラーが表示されますね、、

確認しておりませんでした。問題は無いようです。作った人の名前が書いていない。という警告のようです。

あと、入れるディレクトリを書くのを忘れておりました。

C:\users\***\Softimage\XSI_6 Mod Tool\Application\Plugins\

***はユーザ名。

現在ダウンロードするとXSI_6 Mod ToolではなくSoftimage_6 Mod Toolとでもなるのでしょうか?

modtoolで竜の頭16 - 準備2

前回に引き続き準備を進めます。

 

こちらの準備は人それぞれ、です。

好みの問題なので自分で試してみてください。

 

XSIにはスタートアップ時にツールの初期設定を設定できます。

何のこっちゃ?といった感じですが、

開くウィンドウ、そのウィンドウの設定等をあらかじめ設定しておくことが可能です。

特にアンビエントカラー等は用途によって全く異なると思います。

プリレンダを最終形体とするのであれば0が好ましいと思いますし、

リアルタイムレンダであればその仕事により異なる、かと思います。

 

そういった環境を設定するには、

ファイルメニューFile>Plug-in Managerを起動し、

File…>New>Eventを実行します。

image019s

図のパネルが表示されるかと思います。

帰る部分は特にありません。Filenameは自分が理解しやすい名前に変えてもいいかもしれません。

CodingLanguageは使用する言語です。得意な言語があればそちらを選択してください。

無ければとりあえずJScriptを選んで置いてください。

image020s

タブを切り替えるとさらにややこしいです。

よくよく見てゆくとしたから5番目にsiOnStartupと書かれております。

ここにチェックを入れます。

image021s

そうしたら一番下のスイッチ、Generate Codeをクリックしてからのコードが作成されます。

 

このようなコードが吐き出されたかと思います。

エラーが出ますがよく読んでません。生成されるのでたぶん問題はないかと思います。

 

このコードの

// TODO: Put your code here.

の部分に追加したい要素を書き加えればカスタマイズが可能になります。

個人的なカスタマイズコードを置いておきます。

function XSILoadPlugin( in_reg )
{
	in_reg.Author = "ken_a";
	in_reg.Name = "NewEvent Plug-in";
	in_reg.Email = "";
	in_reg.URL = "http://giken.workarea.jp/";
	in_reg.Major = 1;
	in_reg.Minor = 0;

	in_reg.RegisterEvent("siOnStartupEvent",siOnStartup);
	//RegistrationInsertionPoint - do not remove this line

	return true;
}

function XSIUnloadPlugin( in_reg )
{
	var strPluginName;
	strPluginName = in_reg.Name;
	Application.LogMessage(strPluginName + " has been unloaded.",siVerbose);
	return true;
}


// Callback for the siOnStartupEvent event.
function siOnStartupEvent_OnEvent( in_ctxt )
{
	Application.LogMessage("siOnStartupEvent_OnEvent called",siVerbose);

SetValue("Scene_Root.AmbientLighting.ambience.green", 1, null);
SetValue("Scene_Root.AmbientLighting.ambience.blue", 1, null);
SetValue("Scene_Root.AmbientLighting.ambience.red", 1, null);
SetValue("light.light.soft_light.intensity", 1, null);
SetValue ("light.kine.rotx", -10);
SetValue ("light.kine.roty", 15);
SetValue ("light.kine.rotz", 0);
var vw = Desktop.ActiveLayout.Views.Find( "View Manager" );
vw.setattributevalue ("suspenddrawing","true");
vw.setattributevalue ("activecamera:a","user");
vw.setattributevalue ("activecamera:b","user");
vw.setattributevalue ("layout","vertical:ab");
vw.setattributevalue ("suspenddrawing","false");
SetValue ("Views.ViewA.UserCamera.camvis.selectioninfo", true,null);
SetValue ("Views.ViewA.UserCamera.camvis.sceneinfo", true);
SetValue ("Views.ViewA.UserCamera.camera.proj", 0, null);
SetValue("Views.ViewB.UserCamera.camera.fov", 20, null);
SetDisplayMode ("Views.ViewA.UserCamera", "texturedecal");


// 	Return value is ignored as this event can not be aborted.
	return true;
}

やっていることは、

アンビエントライトのカラーを全部1に、

デフォルトライトの明るさを1に、

デフォルトライトの角度を変更

レイアウトを水平で二分し、両方ともユーザービューに、

片方のビューにシーン情報を表示

そのビューのパースを無くす(オーソグラフィ、Orthographic)

そのビューのシェーディングを(テクスチャデカール、texturedecal)

に変更しました。

そのほか、デュアルモニタを使われている場合は、以下のようなコードが便利かと思います。

二つ目のモニタにエクスプローラ、スケマティック、テクスチャエディタを表示させます。

完全にモデラー仕様です。

XSIはデュアルモニタの設定がデフォルトであり、アプリケーションウィンドウ自体を

デュアルモニタのサイズに引き伸ばすことは可能ですが、個人的な経験ですが

どうも落ちやすくなるように思います。

Mayaと違い気軽に同じウィンドウが出せるのは良い点ですが、メインビューに色々な種類の

ビューを埋め込むととたんに動作が怪しくなる傾向があるように思います。

なのでこういった形で対応してみました。

function XSILoadPlugin( in_reg )
{
	in_reg.Author = "ken_a";
	in_reg.Name = "NewEvent Plug-in";
	in_reg.Email = "";
	in_reg.URL = "http://giken.workarea.jp/";
	in_reg.Major = 1;
	in_reg.Minor = 0;

	in_reg.RegisterEvent("siOnStartupEvent",siOnStartup);
	//RegistrationInsertionPoint - do not remove this line

	return true;
}

function XSIUnloadPlugin( in_reg )
{
	var strPluginName;
	strPluginName = in_reg.Name;
	Application.LogMessage(strPluginName + " has been unloaded.",siVerbose);
	return true;
}


// Callback for the siOnStartupEvent event.
function siOnStartupEvent_OnEvent( in_ctxt )
{
	Application.LogMessage("siOnStartupEvent_OnEvent called",siVerbose);

SetValue("Scene_Root.AmbientLighting.ambience.green", 1, null);
SetValue("Scene_Root.AmbientLighting.ambience.blue", 1, null);
SetValue("Scene_Root.AmbientLighting.ambience.red", 1, null);
SetValue("light.light.soft_light.intensity", 1, null);
SetValue ("light.kine.rotx", -10);
SetValue ("light.kine.roty", 15);
SetValue ("light.kine.rotz", 0);
var vw = Desktop.ActiveLayout.Views.Find( "View Manager" );
vw.setattributevalue ("suspenddrawing","true");
vw.setattributevalue ("activecamera:a","user");
vw.setattributevalue ("activecamera:b","user");
vw.setattributevalue ("layout","vertical:ab");
vw.setattributevalue ("suspenddrawing","false");
SetValue ("Views.ViewA.UserCamera.camvis.selectioninfo", true,null);
SetValue ("Views.ViewA.UserCamera.camvis.sceneinfo", true);
SetValue ("Views.ViewA.UserCamera.camera.proj", 0, null);
SetValue("Views.ViewB.UserCamera.camera.fov", 20, null);
SetDisplayMode ("Views.ViewA.UserCamera", "texturedecal");
var exp = Application.Desktop.ActiveLayout.CreateView("Explorer", "Explorer");
exp.Resize(800,1000);
exp.Move(1680,0);
var sche = Application.Desktop.ActiveLayout.CreateView("Schematic", "Schematic");
sche.Resize(1600,1000);
sche.Move(1680,750);
var uvv = Application.Desktop.ActiveLayout.CreateView("Texture Editor", "Texture Editor");
uvv.Resize(1200,1200);
uvv.Move(1680,50);

// 	Return value is ignored as this event can not be aborted.
	return true;
}

ちなみにこれらのコードは最初の起動時しか適用されません。

新たなシーンを作る時にも適用したい場合は、siOnEndNewSceneEventにチェックを入れてコードを作れば大丈夫です。

ちなみにそれもあげておきます。

function XSILoadPlugin( in_reg )
{
	in_reg.Author = "ken_a";
	in_reg.Name = "NewEvent2 Plug-in";
	in_reg.Email = "";
	in_reg.URL = "http://giken.workarea.jp/";
	in_reg.Major = 1;
	in_reg.Minor = 0;

	in_reg.RegisterEvent("siOnEndNewSceneEvent",siOnEndNewScene);
	//RegistrationInsertionPoint - do not remove this line

	return true;
}

function XSIUnloadPlugin( in_reg )
{
	var strPluginName;
	strPluginName = in_reg.Name;
	Application.LogMessage(strPluginName + " has been unloaded.",siVerbose);
	return true;
}


// Callback for the siOnEndNewSceneEvent event.
function siOnEndNewSceneEvent_OnEvent( in_ctxt )
{
	Application.LogMessage("siOnEndNewSceneEvent_OnEvent called",siVerbose);

SetValue("Scene_Root.AmbientLighting.ambience.green", 1, null);
SetValue("Scene_Root.AmbientLighting.ambience.blue", 1, null);
SetValue("Scene_Root.AmbientLighting.ambience.red", 1, null);
SetValue("light.light.soft_light.intensity", 1, null);
SetValue ("light.kine.rotx", -10);
SetValue ("light.kine.roty", 15);
SetValue ("light.kine.rotz", 0);
var vw = Desktop.ActiveLayout.Views.Find( "View Manager" );
vw.setattributevalue ("suspenddrawing","true");
vw.setattributevalue ("activecamera:a","user");
vw.setattributevalue ("activecamera:b","user");
vw.setattributevalue ("layout","vertical:ab");
vw.setattributevalue ("suspenddrawing","false");
SetValue ("Views.ViewA.UserCamera.camvis.selectioninfo", true,null);
SetValue ("Views.ViewA.UserCamera.camvis.sceneinfo", true);
SetValue ("Views.ViewA.UserCamera.camera.proj", 0, null);
SetValue("Views.ViewB.UserCamera.camera.fov", 20, null);
SetDisplayMode ("Views.ViewA.UserCamera", "texturedecal");


// 	Return value is ignored as this event can not be aborted.
	return true;
}

こちらはデュアルモニタ用です。

function XSILoadPlugin( in_reg )
{
	in_reg.Author = "ken_a";
	in_reg.Name = "NewEvent2 Plug-in";
	in_reg.Email = "";
	in_reg.URL = "http://giken.workarea.jp/";
	in_reg.Major = 1;
	in_reg.Minor = 0;

	in_reg.RegisterEvent("siOnEndNewSceneEvent",siOnEndNewScene);
	//RegistrationInsertionPoint - do not remove this line

	return true;
}

function XSIUnloadPlugin( in_reg )
{
	var strPluginName;
	strPluginName = in_reg.Name;
	Application.LogMessage(strPluginName + " has been unloaded.",siVerbose);
	return true;
}


// Callback for the siOnEndNewSceneEvent event.
function siOnEndNewSceneEvent_OnEvent( in_ctxt )
{
	Application.LogMessage("siOnEndNewSceneEvent_OnEvent called",siVerbose);

SetValue("Scene_Root.AmbientLighting.ambience.green", 1, null);
SetValue("Scene_Root.AmbientLighting.ambience.blue", 1, null);
SetValue("Scene_Root.AmbientLighting.ambience.red", 1, null);
SetValue("light.light.soft_light.intensity", 1, null);
SetValue ("light.kine.rotx", -10);
SetValue ("light.kine.roty", 15);
SetValue ("light.kine.rotz", 0);
var vw = Desktop.ActiveLayout.Views.Find( "View Manager" );
vw.setattributevalue ("suspenddrawing","true");
vw.setattributevalue ("activecamera:a","user");
vw.setattributevalue ("activecamera:b","user");
vw.setattributevalue ("layout","vertical:ab");
vw.setattributevalue ("suspenddrawing","false");
SetValue ("Views.ViewA.UserCamera.camvis.selectioninfo", true,null);
SetValue ("Views.ViewA.UserCamera.camvis.sceneinfo", true);
SetValue ("Views.ViewA.UserCamera.camera.proj", 0, null);
SetValue("Views.ViewB.UserCamera.camera.fov", 20, null);
SetDisplayMode ("Views.ViewA.UserCamera", "texturedecal");
OpenView ("Explorer");
OpenView ("Schematic");
OpenView ("Texture Editor");


// 	Return value is ignored as this event can not be aborted.
	return true;
}


カスタマイズはご自由に行ってください。

では、今回はこの辺で。

modtoolで竜の頭15 - 準備

Modtoolで作業を始める前に準備をしておきたいと思います。

まずは、XsiBOX1080というページに行ってください。

XSIの便利なプラグインがあります。

SCRIPTをクリックしスクリプトページに行きます。

特に今回の作業で必要だと思われるスクリプトは、

X<0 のポリゴンを選択する

x>0のポイントを選択する

さらに一番下のゴミ箱から

エンペローブウェイトの対称化

です。

 

細かい気遣いが利いているとても良いスクリプトです。

一番上のものは左右対称モデリングをしていて、自分だけかもしれませんが

対称を整える場合に画面向かって右側のポリゴン群を消します。

まさにこのスクリプトのとおりです。

 

そして二番目のスクリプトは、

自分もそうなのですがウェイトを反転コピーする際は画面向かって左側の

ポイントを選択し、右側にコピーします。

 

このスクリプトもそうであることを考えると、皆さん結構そうなのでしょうか?

そういった部分が細かい気遣いとなって現れているスクリプトです。感心させていただきました。

 

さらに最後のスクリプトは

左側のウェイトを右側にコピーするものです。

便利なのは、XSIはどういうわけかシンメトリーマップを勝手に作る時があります。

まずシンメトリーマップについての説明ですが、

XSIは他のツールと違い左右対称モデリングに独自の概念を入れました。

それがシンメトリーマップです。

詳しい仕様は分かりませんが、どうやらマップを生成した時の頂点番号を参照して

左右対称情報と共にそれを記憶しておくもののようです。

 

なのでオブジェクトをいくら動かそうが、片方だけ形状を移動しようが対称情報は保持されます。

便利な点としては、基本的に左右対称で、微妙に違いを持たせたい。

等という時はシンメトリーマップを生成してからシンメトリーを切り、片方だけ形状を変形させ

大きくあわせたい部分を再び編集したい時はシンメトリーを入れ編集すれば保持されている

左右対称情報を元に形状を編集できます。

 

不便な恬としてはマップを生成した後に形状は変えていなくても頂点を足すと

情報が狂う、というところです。

結局利点欠点はどちらにもあります。

 

ただ、自分が良く分かっていないせいかもしれませんが、

作業をしていてシンメトリーマップの作り直しを何度かしてExplorer「8」)で後から確認すると

古いシンメトリーマップが残っていてどんどんと追加されている時があります。

 

このスクリプトは古いシンメトリーマップがあればそれを消し、

新たにシンメトリーマップを生成してくれます。

地味なのですが、余計なことに気を使わなくてすむようになるので使っている方としてはありがたいです。

 

キャラクターのウェイト付けはどのツールを使っていてもとてもめんどくさい作業です。

本当にいやになります。

なのでこういったツールがあるととても助かります。

XSIはそれでもウェイトをつける作業は比較的楽なツールだと思います。

 

まずは足元を固めてから進みましょう。

 

では、今回はこの辺で。

フォトショップスクリプト4 - tgaとpsdの保存

以前公開を迷っていたスクリプトを公開します。

このスクリプトを実行すると開いているファイルをpsdで保存し、

その上のディレクトリにtgaを保存してくれます。

 

注意点は、ファイルを一度名前をつけてからpsdで保存することと、

アルファチャンネルは二つ以上作らない。ということです。

アルファチャンネルが無いデータでは24ビットとして保存され、

アルファチャンネルがあるデータでは32ビットとして保存されます。

アルファチャンネルが2枚以上あるとtgaには白いアルファチャンネルが保存されてしまいます。

効果レイヤーのアルファチャンネルは数に含まれません。


var docRef = app.activeDocument;

var fPath = new String( app.activeDocument.path );
fPath = fPath.substring( 0, fPath.lastIndexOf("/") );
fPath = fPath.concat( "/" + app.activeDocument.name );
fPath = new File( fPath );

targaSaveOptions = new TargaSaveOptions();
targaSaveOptions.alphaChannels = true;
targaSaveOptions.resolution = TargaBitsPerPixels.TWENTYFOUR;
if(activeDocument.channels.length >= 4)
{
	targaSaveOptions.resolution = TargaBitsPerPixels.THIRTYTWO;
}
targaSaveOptions.rleCompression = false;

docRef.saveAs( fPath, targaSaveOptions, true, Extension.LOWERCASE );
docRef.save();

最近はどのツールでもpsdファイルを読み込むことが出来るので必要ないかと思ったのですが、

データコンバートなどで大量のpsdファイルを変換する必要があるときにめんどくさいだろうと思い公開しました。

どうぞご自由に。

といっても相変わらず元ねたはパクリですが、、

modoで竜の頭 - 14追記

前回と前々回の記事は二つとも13にしていたのですね、、

気が付きませんでした。でも直しません。

 

お茶を濁すような記事ですが、折角アップロードの制限を緩和できたので。

image156l

フォトショップでテクスチャを合成したものをアップします。

tex00

ちゃんとアップできました。

 

modoとは違う感じになりますが、まぁ許容範囲内かと思います。

今度はMayaでペイントする方法でも書いてみようかとも思っております。

PLE版だとシェーディング時に画面に文字が出てくるのが鬱陶しいですね。

image158l

ちなみにMaya8.5PLEではobjが読み込めないのですね、、知りませんでした。

fbxのファイルをアップします。

d00

こちらはきちんと読み込むことが出来ます。

しかし、テクスチャにpsdを張ったためかテクスチャが読み込まれません。

上記のテクスチャを新たに読み込みアサインすればきちんと表示されます。

 

modo401の情報が次々と更新されております。

もしかすると今月中にリリースされるのでしょうか?

トポロジーのデフォームが個人的にはびっくりしました。

素人的には出来て当たり前、と言われてしまいそうなことですが実際の3DCGでは

一番厄介なことでもあるのです。と言いたくなるような事を平然とやられております。

思わず笑ってしまいました。

 

モデリングは特に建築を意識したバージョンアップのようですね。

とても便利そうです。

またLightwaveの話で申し訳ないのですが、LightwaveのプラグインでLWCADというものがあります。

とても刺激的なツールです。昔のバージョンでは、Lightwaveの補助的な形でしたが、

最新のは殆ど独自のツールになっているようです。modo版も出してもらえないものでしょうか。

出たら欲しくなってしまいます。

Lightwaveにもmodoにも共通している考えはヒストリーはとらずに、一つのプロセスを簡単にやり直せる。

ということかと思います。

LWCADにもその思想は受け継がれていると思います。

 

次回はModtoolで骨を入れる前にしておくと便利な事などを書いてゆこうと思います。

 

では、今回はこの辺で。

WordPressでのアップロード制限

WordPressのアップロード制限、といいますかサーバ側のアップロード制限といいますか、

以前から何度か記事に書きましたが、アップロードの容量制限で1MB以上のファイルがアップロードできなくなりました。

 

色々と解決策を探していたのですが、中々見つからず

どうしようかと思っていたのですが、恐らくついに解決されたかと思います。

 

解決策は、

WordPressがインストールされているディレクトリに.htaccessを作成し、

.htaccessはテキストエディタで保存する際に「.htaccess」と入力すれば作ることが出来ます。

 

その中身に

#Change upload limits
php_value memory_limit 34M
php_value post_max_size 33M
php_value upload_max_filesize 32M
php_value max_execution_time 600
#Change upload limits end

と書き、サーバにアップすると制限を解除できます。

元ネタです。WordPressのインポート機能で2MB制限を突破する方法 – IDEA*IDEA ~ 百式管理人のライフハックブログ ~

 

助かりました。

試しにアップしてみたところ出来たので、多分問題ないかと思います。

Maya2009でプロポーショナルモデリング

Maya2009になり、ソフト選択という機能が加わりました。

 

個人的に使うツールの優先順位が、

modo>XSI>Maya

なので、modoやXSIにあるソフトドラッグ、もしくはプロポーショナルモデリング、

が出来ないものかと思っておりました。

 

Maya2008はそれほど触っていないので分かりませんが、

Maya2009になりソフト選択が加わったものかと思います。

 

それを使い上記のツールを作ってみます。

といっても相変わらず大本はパクリです。ただ、改良したので原型はほぼとどめておりません。

string $currentPanel = `getPanel -withFocus`;
string $panelType = `getPanel -to $currentPanel`;
if ($panelType ==  "modelPanel")
{
	if(`selectPref -q -clickDrag`==0)
	{
		SelectVertexMask;
		manipOptions -s 0.1;
		manipOptions -hs 4;
		softSelect -softSelectEnabled 1;
		MoveTool;
		selectPref -clickDrag 1;
	}
	else
	{
		selectPref -clickDrag 0;
		SelectTool;
		manipOptions -s 1.5;
		manipOptions -hs 35;
		softSelect -softSelectEnabled 0;
		changeSelectMode -object;
	}
}
else if ($panelType ==  "scriptedPanel")
{
	if(`selectPref -q -clickDrag`==0)
	{
		SelectUVMask;
		softSelect -softSelectEnabled 1;
		MoveTool;
		selectPref -clickDrag 1;
	}
	else
	{
		selectPref -clickDrag 0;
		SelectTool;
		softSelect -softSelectEnabled 0;
		changeSelectMode -object;
	}
}

このスクリプトの注意点としては、

プリファレンスのクリックドラッグ(手元にMaya2009がないので不確かです)をオフにしてあることが前提です。

それとスクリプトでオン、オフにしているのでXSIやmodoと違いツールドロップすれば機能が解除されるのではなく、

もう一度実行しなくてはいけません。

ホットキーにアサインし、解除する際も同じホットキーを使う、といった使い方になります。

 

一応解説です。

一行目から三行目は以前記事で書いたライトを使用しないのそのままです。

五行目でselectPrefに-q(問い合わせ)をし-clickDrag(クリックドラッグ)がオンかオフかを聞いております。

==0(オフの場合)今回発動したいスクリプトが起動します。

7行目で選択を頂点にし、

8,9行目でマニュピュレータのサイズを小さくしています。

10行目でソフト選択をオンにしています。

11行目で移動ツールにしています。

12行目でクリックドラッグをオンにしています。

14から22行まではオフにする機能です。

24行目からはポインタがテクスチャエディタにある場合です。

マニュピュレータのサイズは変えませんでした。モデルビューとテクスチャエディタでマニュピュレータ

の大きさが格納されている場所が違うのですね。なので、いっそうのこと大きさを変えないようにしました。

 

Mayaを使っていると、本当にこの使い方で良いのか?という疑問が絶えずあります。

今回のスクリプトも疑問は拭えません。人により使いやすさは違うと思うのでまた難しい話ですが。

 

話は変わりますが、前回紹介したページのmelスクリプト、選択範囲を記憶するものですが、

結局削除しました。

個人的にSelectUVShell(polySelectBorderShell 0;)をホットキーに割り当てており

フェース選択で一部選択し、SelectUVShellを実行するとそのフェースに繋がったUVを選択してくれます。

その後UVに変換して、それを編集する、ということをやります。

その時に選択範囲を記憶するスクリプトが入っているとうまく動きませんでした。

なので、削除してしまいました。完全に個人的な理由です。

 

もし一度入れていまい、削除する場合は要注意です。

ホットキーの設定が全て消えます。

正確に言うとこのスクリプトは独自のアトリビュートを作っているようで、

スクリプトを入れてセットアップを実行すると、ホットキーの設定がその独自部分に入れられるようです。

内容を見ていないので、確かではありませんが。

ただ、設定したホットキーが違う名前に変換されていたのは事実です。

なので、このスクリプトを入れる前にプリファレンスを別な場所にコピーしておくことをお勧めします。

いまさらですが。

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です