2009年5月27日水曜日

◇アップデート◇ スクリプトオペレータを使用してポイントをX軸に固定するプラグイン

発見したバグを修正した
スクリプトオペレータを使用してポイントをX軸に固定するプラグイン(バージョン1.1)を
アップロードしました。
昨日と同じく以下のアドレスよりダウンロードしてくださいませ。

http://mochi-mochi-web.hp.infoseek.co.jp/


現在までにダウンロードしたかたはダウンロード後ファイルの上書きでOKです。

今日の朝発見したバグですが、どうやらポイントクラスタの特性によるものだったようです。
ポイントクラスタはクラスタ内に含まれるポイントから延びているエッジに新規ポイントが追加された場合、
自動的にクラスタ内に追加するようです。
たぶん。
なので、

1.ポイントクラスタにスクリプトオペレータを実行。
2.ぺったんこになる。
3.ポイントから延びるエッジに新規ポイントを追加
4.新規ポイントもクラスタに強制追加
5.新規ポイントもいっしょにぺったんこ。

という流れになっていたようです。
なので、バージョン1.1ではポイントクラスタではなく、エッジクラスタを使用することとしました。
エッジクラスタであれば不要な新規エッジが追加されることもないようなので、大丈夫かとおもわれます。
たぶん。

なので、使用方法としては『エッジを選択してから実行』となりました。
ご注意くださいませ。



これで、はれてモデリングのお供になるのではないかと・・・。
ただ、処理内容が少し複雑になったため、高ポリゴンになるにつれ処理が重くなることが予想されます。orz

あと、画像のようにクラスタに隣接する場所に新規ポイント等と追加すると少し挙動がおかしくなるようです。
(真中にポイントを追加したつもりでも、ずれてしまう。)
というのも、スクリプトオペレータで強制的にポイントを0にしているだけで本来のポイント位置は別にあるからというのが理由のようです。

これは・・・トレードオフというところでしょうか・・・。
う~~~ん・・・。
常に適用しないほうがいいのかもしれませんねー。
こればっかりは使っていってみないとわからない点です。
とりあえず今はこれで妥協ということで。


拍手する

2009年5月26日火曜日

スクリプトオペレータを使用してポイントをX軸に固定するプラグイン

追記:バグ発見!
またやってしまった・・・orz
ポイントを追加選択ポイント付近に新規ポイントを追加すると
そのポイントもクラスタ内に含まれてしまうようで、X軸0に固定されてしまいます。
クラスタの作成方法が問題か??
近々アップデートしますので、それまではまともに使えないと思われます。
申し訳ないです。

前回の続きその2です。
できました。☆-ヽ(*´∀`)八(´∀`*)ノイエーイ
スクリプトオペレータを使用してポイントをX軸に固定するプラグイン。

せっかく作ったので、公開してみます。
XSI徒然日記さまの「ポイントを0平面で固定」とほとんどおんなじですが気にしない!!
任意のポイントに適用するのででちょっとだけ違うってことで。(;´Д`)
(…スイマセン…orz)


以下のページに飛んで最新プラグインの項目からダウンロードしてください。
PointCls_Zero_Fixation.jsって名前です。

http://mochi-mochi-web.hp.infoseek.co.jp/

ダウンロードしたら解凍して
C:\users\ユーザー名\Softimage\XSIバージョン\Application\Plugins
内にぶち込んでやってくださいませ。
正常にプラグインがインストールされていたらXSI画面右 Transform > 選択ポイントをX軸0に固定 が追加されてるはずです。たぶん。




使用方法は

・ポイントを選択状態にし、Transform > 選択ポイントをX軸0に固定 を実行

のみです。
簡単です。
選択したポイントがX軸に固定されているのをご確認くださいませ。キタ━(゚∀゚)━!
動かしてもX軸は移動しないはずです。


画像はわかりやすく左半分を選択してますが、通常使用用途となるとX軸0付近のポイントのみでしょう。

間違えてしまった場合はオブジェクトのシェイプコンストラクションモードにあるClsZero_Fixationという名前のスクリプトオペレータを(#゚Д゚)ゴルァ!!(削除)してください。
元に戻ります。
逆に用済みになった場合はオブジェクトをフリーズして頂ければきれいさっぱり姿を消します。




ちなみに、そんな複数オブジェクトに一度に適用しないだろうという勝手な考えの元、
オブジェクトの複数選択には対応してないっす。

注意点としてはX軸とはオブジェクトのローカルのX軸となります。
グローバルではありませんのでご注意くださいませ。

疲れたので、苦労した点などはまた後日。
ではぁ~。




あ、ちなみにLand-Yさまからのリクエストされたプラグインの作成は諦めてませんよ~!
とある問題にぶち当たっていまして…orz
もう必要とされていないと思われますが、気長におまちくださいませ。
修行を積んでまいりますので…。


拍手する

2009年5月22日金曜日

前回の続き

前回書いたクラスタに含まれるポイントのX軸を0にするスクリプトの続き。

予告通りスクリプトオペレーターでの適用に挑戦してみました。
手動ですが、一応成功したっす。☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ

手順としては…

1.ポリゴンメッシュオブジェクトのプリミティブノード(Explorerでは[Polygon Mesh])上で右クリック
2.[スクリプトオペレータの設定]を選択。
3.X軸を0にしたいポイントのクラスタを作成
4、3をScripted Operator Rditor 内上部の表の部分にドラッグ(名前:InPoint アクセス:In ってのができるはず。名前等はそのままでOK)
5.下記ソースを真ん中のウインドウにコピペ

  //クラスタオブジェクトを取得
  var Pnt = Dictionary.getobject(InPoint.value ,false);
  //クラスタ内のコレクションを取得
  var PntList = Pnt.CreateSubComponent().ComponentCollection;
  //すべてのポイントの位置を取得
 var AllPntPos = new VBArray(Inpolymsh.value.Geometry.Points.PositionArray).toArray();
 //配列の書き換え(該当ポイントのX軸が0になるようにする)
  for(var i = 0; i < PntList.count; i++)AllPntPos[PntList(i).Index * 3] = 0;
  //結果の適用
  Out.Value.Geometry.Points.PositionArray = AllPntPos;

6.適用ボタンをクリック

以上でスクリプトオペレータの作成は完了です。
適用をクリックした瞬間にクラスタ内のポイントがOのポイントに移動したはずです。

ただしローカル基準の話です。
グローバルではありません。
回転が0で移動だけしているのならグローバル基準での適用も可能なんですが、回転値なんて入ってた日にゃ無理っす。
(簡単な方法しらないだけかも?)

前回の記事ではJScriptはポイントを編集する際オブジェクトをフリーズしなければならないと書きましたが、
スクリプトオペレータは例外のようです。
なんでかは知らないので聞かんといてちょーだい。

それとクラスタ内のポイントを取得する際、何故かそのままでは取得できなかったので
一旦オブジェクトを取得してからサブコンポーネントの取得をしました。
これ↓↓じゃなんでダメなんですかね??
InPoint.value.CreateSubComponent().ComponentCollection;
ご存じの方いましたら是非教えて下さいませ。 ナンデダロ~ォ♪((乂(゚д゚ ;)≡(; ゚д゚)乂))ナンデダロ~♪


あと、スクリプトオペレータ適用後にポイントの編集などした場合は見事に0以下に移動しちゃいます。
総スルーです。(´○`; ポカーン
これはポイント編集の履歴のほうがスクリプトオペレータよりモデリング上位に来てしまうからみたいですねー。
なのでそのスクリプトオペレータをポイント編集の履歴より上位に持っていけば無問題っす。
さらに言うとシェイプコンストラクションモード内に置いておけばモデリング中は常にスクリプトオペレータが適用されることになるようです。キタ━(゚∀゚)━!


次の展開としてはXSI徒然日記さんの「ポイントを0平面で固定」の様にプラグイン化ですねー。
プラグインからスクリプトオペレータを作成するっていう練習であります。
また成果が出たら報告しますー。

では~~~。☆。.:*:・'゜ヽ( ´ー`)ノ


拍手する

2009年5月18日月曜日

クラスタ(エッジ)内に含まれるポイントのX軸を0にする

エッジのクラスタを作成。
クラスタを選択した状態で実行するとクラスタ内に含まれるエッジを取り出し、
さらに中に含まれるポイントを取り出して、ポイントのX軸を0にするというもの。

プラグイン化もされてないし、ソース貼り付けるだけですが…。

///////////////////////////////////////////////////////////////////////////////////////////////
var oCluster = Selection(0);
//クラスタからサブコンポーネントコレクションを取得
var oSubComponent = oCluster.CreateSubComponent().ComponentCollection;

//コレクション作成
//var PointArray = new ActiveXObject( "XSI.Collection" );
var PointArray = new Array();

for(var i = 0; i < oSubComponent.count; i++){
for(var h = 0; h < oSubComponent(i).Points.count; h++){
var flg = true;
for(k = 0; k < PointArray.length; k++)if(PointArray[k] == oSubComponent(i).Points(h).index)flg = false;
if(flg)PointArray.push(oSubComponent(i).Points(h).index);
}
}


//オブジェクトのポイント
var ObjPnt = oCluster.Parent3DObject.ActivePrimitive.Geometry.Points;
var aPos = new VBArray(ObjPnt.PositionArray);
var aPos2 = aPos.toArray();


for(var i = 0; i < PointArray.length; i++)aPos2[PointArray[i]* 3] = 0;

//オブジェクトをフリーズ
FreezeObj( oCluster.Parent3DObject.name );

ObjPnt.PositionArray = aPos2;

///////////////////////////////////////////////////////////////////////////////////////////////


ポリゴンとかエッジとかポイントとかあんまりスクリプトからいじったことがないので練習がてら作ってみました。
(めんどくさいことをしてるのは練習のため。)
今回明らかになったのはJScriptではポイントのポジション配列を戻す際、オブジェクトをフリーズしなくてはならないということ。
VBではそんなことないように見えるんだけど…なんとめんどくさい仕様なんだろ。
それもこれもJScriptが2次元配列をだね…ブツブツ…。

ポイントのX軸を0にするっていうのは、対象化した際マージするポイントにはよくやる作業ですよね。
たぶん。

このままプラグイン化するのは簡単だけども、
今後できたらいいなーと思ってるのがスクリプトオペレータを使った展開。
毎回スクリプトを実行するのはめんどうですし。
スクリプトオペレータだったらクラスタ内に含まれるポイントには常に効果が表れるということになりますからね。

というのも、
XSI徒然日記さんの「ポイントを0平面で固定」
を見たからなんですけどね。
数万ポリゴンになると重いって書いてたのでクラスタ内だけなら処理も軽いかな~なんて。

まぁ、まだスクリプトオペレータ勉強中なのでどうなるか分かりませんが…。
なんか成果がでたら報告します。


拍手する

2009年4月29日水曜日

自動インストールプラグインバージョン更新メッセージ表示

- 追記 -
えぇっと・・・この記事間違ってたようです。
改めて職場で実験したら見事にXSIが立ち上がるたびにポップアップウインドウが表示されてしまいました・・・
むぅ・・・やはり外部にファイルを置くしかないのか・・・。orz


最近仕事でバリバリと自動インストールプラグインを作成しております。
お陰でだいぶ慣れてきました。
半年にくらべてかなり上達したんじゃぁないだろうか??ヽ(´ー`)ノ

半年前に作ったプラグインの中身なんて見た日にゃ、目も開けられない状態なのです。w|;゚ロ゚|w ヌォオオオオ!!
つい最近も半年ほど前に作ったプラグインの修正要望が来たついでに、
良くしようと思ったらフルスクラッチになってしまったという…

それはそうと、プラグインを大量に作るようになって、更新の際に関係者に告知をするのが面倒になってきました。
告知時に関係者が全員いないこともあるわけで…。
なので、ここはプラグインが更新されたら自動的にポップアップウインドウを出して告知しようと思いました。

今まで職場で使われてきた方法は

  1. バージョン情報を別ファイルに記録
  2. プラグイン更新時に別ファイル内のバージョンと見比べて更新されているか判断
  3. 更新されていたら告知

でした。
でもそれってスマートじゃない!!
別ファイルだったら消されちゃった日にゃ泣くしかないじゃん!!
…と思ったので別手口を模索。

プラグインの更新を行うコマンド Application.UpdatePlugins(); ってのがあるんですが、
これって更新されたかどうかスクリプトログには出力されるのに、なんにも返してくれないんです。
使えねぇやつめ…。ヽ( ・∀・)ノ┌┛ガッΣ(ノ`Д´)ノ

そこで XSILoadPluginコールバックに注目。
XSILoadPluginコールバックはプラグインがロードされたら呼ばれる関数です。
なのでここでポップアップウインドウ出せばいいのでは!!
ということで試してみました。


////////////////////////////////////////////////////////////////////////
function XSILoadPlugin( in_reg )
{
in_reg.Author = "mochio";
in_reg.Name = "hogehoge";
in_reg.Email = "";
in_reg.URL = "";
in_reg.Major = 1;
in_reg.Minor = 0;

//コマンド登録
in_reg.RegisterCommand(hogehoge,hogehoge);
var msg = "\n" +
"■更新情報■\n"+
"いろいろと新しい昨日盛り込んでみました。\n" +
"詳しくはヘルプドキュメントをご覧下さい。";

XSIUIToolkit.MsgBox("――― Plugin " + in_reg.Name + "が更新されました。――――\n" + msg,siMsgOkOnly,"更新情報");

return true;
}
////////////////////////////////////////////////////////////////////////


  1.  プラグインファイルを更新
  2.  XSIでプラグインの更新をポチっとな
  3.  ポップアップウインドウが表示される。
  4.  もう一回XSIでプラグインの更新をポチっとな。
  5.  ポップアップウインドウは表示されず。

おぉ!!これいいのでは!?
しかし…
  1.  XSIを立ち上げる
  2.  かならずポップアップウインドウが表示される。∑ヾ( ̄0 ̄;ノ オーット!
という罠が…。
というのもXSIを立ち上げたときにもすべてのプラグインがロードされてるからですね。
そりゃそうか。ε=( ̄。 ̄;A フゥ…

まぁいっか~と放置して数日。
また気になり始めたので再度挑戦。

今度はXSILoadPluginコールバック内で、バージョン等を記述している点に注目。
ってことはその記述よりも前にバージョンを取得して、後に再度取得すればバージョンの比較ができんじゃねぇだろうか??
ということで試してみたのがρ( ̄∇ ̄o) コレ

////////////////////////////////////////////////////////////////////////
function XSILoadPlugin( in_reg )
{
//旧プラグインバージョンの確認(文字列なのはわざとよ~)
var Old_Plugin_Version = in_reg.Major + "." + in_reg.Minor;

in_reg.Author = "
mochio";
in_reg.Name = "hogehoge";
in_reg.Email = "";
in_reg.URL = "";
in_reg.Major = 1;
in_reg.Minor = 0;

//新プラグインバージョンの確認
var New_Plugin_Version = in_reg.Major + "." + in_reg.Minor;

//コマンド登録
in_reg.RegisterCommand(hogehoge,hogehoge);

if(Old_Plugin_Version != New_Plugin_Version){
var msg = "\n" +
"■バージョン情報■\n"+
Old_Plugin_Version + " >> "+ New_Plugin_Version + " \n\n" +
"■更新情報■\n"+
"いろいろと新しい昨日盛り込んでみました。\n" +
"詳しくはヘルプドキュメントをご覧下さい。";

XSIUIToolkit.MsgBox("――― Plugin " + in_reg.Name + "が更新されました。――――\n" + msg,siMsgOkOnly,"更新情報");

}

return true;
}
////////////////////////////////////////////////////////////////////////


こんどこそ出来た~~!!d(>_< )Good!!
これで更新情報を告知したいときはバージョン情報を書き換えればOKだわ~~!
一応個人的要件は満たしてるから満足。

…でももっと簡単な方法あったりします??
だれか知ってたら教えて下さいーー (;^_^A アセアセ・・・



拍手する

2009年3月30日月曜日

のぉぉぉぉぉぉ!!! ウワァァ-----。゚(゚´Д`゚)゚。-----ン!!!!

さっきの記事を投稿して10秒。
メールを確認したらLand-Yさまより、
「他の方にプラグイン作っていただきました」
とのメールが!!
それも2日前。
(ブログへのコメントなんですが、メールでも届く設定にしております。)

やっちまったよー!!
かぁーちゃん!!orz

ウワァァ-----。゚(゚´Д`゚)゚。-----ン!!!!


せっかくリクエストしてくださったのにーーーーーーーーーーーーーーー!!
何たる失態!!!
アホー!自分のアホーーーー!!!ヽ(`Д´#)ノ ムキー!!

…ちなみに代わりに作って下さったのはゲームモーションブログさまです。

で、でも、ゲームモーションブログさまのものは選択している頂点にのみ有効…なのかな???
い、一応自分で今作っているのはポリゴンでもいいようにする予定だったから続けて開発はしよう…うん、そうしよう。
でもって詫びることによう。
いや、いま詫びよう。

m(_ _)m m(_ _)mホントすいませんでした。m(_ _)m m(_ _)m



拍手する

復活… _| ̄|○ il||li

ど、どうも…
お久しぶりです。ヾ(・∀・;)オイオイ

ようやく周りが落ち着いてもどってこられました。
はい。
見事な放置っぷり。
情けのうございます…(;´∀`)…うわぁ…

公私共にゴタゴタしていたわけなんですが、
公の部分はゲーム業界ですからGDCですねー。
ゲーム業界はGDC、E3、TGSの前にはどうしても修羅場を迎えてしまうものなのでしょうねー。
まぁ発表するものがなければ違うのかもしれませんが…。

GDCと言えば様々な公演が見ものなわけですが、個人的にうれしいのがカプコンの公演です。

「バイオハザード5」を彩るインゲームムービー制作。技術がどんなに進んでも“最後の10%は手作業”


なんたって現在の国内ゲーム業界では一人勝ち状態ですからねー。
いやでも気になるってもんです。
まぁまだ読んでないですがw  Σ(゚Д゚;)ギクッ
いつか自分もこんな風に公演するのが目標ですねー!
頑張るぞー!Σヽ(`д´;)ノ うおおおお!

そうそう、この更新しない間にも「たんじぇんとくん」をDLしてくださる方が多いようで、嬉しいことです。
プラグインといえばLand-Yさまにリクエストされたプラグインも作ってます。
まだ途中ですが。(;´Д`)
リクエストからずいぶん経ってしまいまして…ほんとスイマセン。
出来あがったらこちらからお知らせしなくては…。(; ・`д・´)

ということで今後はぼちぼちと更新していく所存です。
ということでまたよろしくお願いします。m(_ _)m


拍手する

2009年2月11日水曜日

代金セミナー

「だいきん」で変換したら「代金」になったけどメンドイのでこのまま続行。

10日にあった代金セミナー行ってきました。
詳細はこれ↓
http://www.comtec.daikin.co.jp/event/cg_sem.html

感想としては非常に面白かったです。
といっても4種類あった中の

///ユーザー講演 Part1
「Genius Party BEYOND」メイキング
~ 「次元爆弾」「わんわ」のメイキング ~
講演者:スタジオ4℃

///ユーザー講演 Part2
「ケータイ捜査官7」における制作ワークフロー
講演者:株式会社OLMデジタル様

///ユーザー講演 Part3
Mudbox2009 の機能紹介と
  SONIC NIGHT OF THE WAREHOGでの使われ方
講演者:株式会社セガ VE研究開発部

は分野が違ったので仕事の参考にはなりそうにはありませんでしたが・・・。
でも具体的な話も多かったので同じ分野の方々には参考になったように思います。


///ユーザー講演 Part4
バイオハザード5におけるリアルタイムムービーの作成ワークフロー
~ 海外チームとの連携、新しい技術への挑戦について ~
講演者:株式会社カプコン

は同じゲーム業界の事例ということもあり、大変面白かったです。
さすが最近の日本ゲーム業界内で一人勝ちのカプコン様でございました。
いろいろうらやましかった。
自分もがんばらねばと思った次第であります、はい。

講演の最後に最新トレーラーを披露してくれたのはうれしかったんですが、
前の人たちが邪魔すぎてなんのこっちゃわかりませんでしたorz
バイオ5たのしみっす。
でもって発売後のメイキングも楽しみっす!!


今回の代金セミナーにはXSIブログをやっている方々もこられていたようで…
帰ってから知ったんですけどね。
せめて挨拶したかった…orz

いつも思いますがこういう講演って大切ですよねー。
日本は昔から技術は隠して外に出さない風潮ですよね。
うちの会社も昔からそうだったようで、正直個人的には理解できません。
もちろん行ってはいけないクリティカルな部分も多いですけどね。
技術を外に披露することでのメリットも大きいのではないかと思うのです。
業界が活性化するのもひとつだと思いますし、
いい仕事をすれば自社にとっても外部からの評価が上がり、
結果いい人材が集まるというメリットもあるのではないかと。
日本も最近は変わりつつあるように思いますが、まだまだ欧米などに比べると技術交流も少ない気がします。
まさに

いいぞ、もっとやっれ代金!!

ですw


拍手する

2009年1月29日木曜日

Deltaのバグ晒します。

1週間も開いてもーーーーーたーーーー!!!
最近仕事が忙しいです。
鬼のように仕事が山積みとなっている今日この頃。(´;ω;`)ウッ…
呑みに行きたいです。
そこのあなた!誘ってやってください。

それはそうと、最近仕事でリファレンスモデルとデルタを使用した環境の構築を行っています。
XSI様が胸を張っておりましたDeltaシステム。
使わせていただきました。
大人数の作業において大変有意義でございます。
しかし一言言わせて下さい。


マジでバグだらけじゃねぇぇか
(#゚Д゚)<ゴラァァァァァァァァァァァァァァァァァァァ!!!!



使い物にならんわ!!( ゚Д゚)ヴォケ!!
明らかにバグってのが多すぎる。
ちなみにXSIのバージョンは6.5です。
最新バージョン使えってことですが、プロジェクトの関係上できんのです。
悔しいです!!(byザブングル加藤)

7では直ってるかもしれないけど、あまりに腹が立つので遭遇したバグを晒します。( `д´) ケッ!

・プラグインで、オブジェクトのコンストレイントのアクティブのオン・オフを切り替えたら
 (実際にはもう少し複雑なことをしてますが)コンストレイントが消える。

・プラグインで、オブジェクトに存在するアニメーションを削除し、値を0にして、
 シーンのセーブ→ロードもしくはリファレンスモデルの更新を行うと、値が0になっていない。
 (アニメーションを消去した状態に戻っている。)

・プラグインで、リファレンスモデルのコンストレイント情報のみを初期化してもコンストレイントのオン・オフなど
 などの数値は初期化されない。

・プラグインで、リファレンスモデルのコンストレイント情報のみを初期化してセーブ→ロードを行うと
 初期化前の状態に戻っている。

・リファレンスモデル内にカスタムプロパティは作れるが消せない。

・上記のケースは手動で同じことをやると同じ結果にはならない。( ゚д゚)ポカーン
 (こちらの方が望んだ結果になる)


まだまだ遭遇したものはこんなもんじゃないけど…
かといってデルタの利便性は捨てられずどうにかバグを回避しながら進んでおります。
それにしても(7使ってみないとなんとも言えないけど)スクリプト上からの操作とかは考慮に入れてない気がしてならない。


どうにかしてくれオートデスク!!

今、XSIのサイトの機能紹介ビデオをみてたら新事実発覚!!
デルタって重ねて適用できるんか!!!
ショーーーック!!(;><)



拍手する

2009年1月19日月曜日

さらにタンジェントくん改造中

どうも。

まだタンジェントくん改造してます。
終わったと思ってたのに…。
なんかいろいろとやろうと思うとほんとに終わらないですねー。
今回は内部的なところをイジっておりました。
今後のバージョンアップを見据えてカスタムプリファレンス内にバージョン情報を持たせてみたりしました。
前回の記事に書いたカスタムプリファレンスを消去するには\Data\Preferencesディレクトリにある
関連したPresetファイルを削除するのが唯一の方法という件ですが、
どうしてもそれを手動でやるのが許せなかったので、バージョンアップしたら自動的に作り直されるようにしました。ヾ(*´∀`*)ノキャッキャ

手法は簡単でした。
まず、既存のカスタムプリファレンス内に保持しているバージョンと現在のプラグインバージョンを比較
バージョンが古ければカスタムプリファレンスを破棄、新しいカスタムプリファレンスを作る。
です。

最初はユーザーファイルの中にあるPresetファイルを直接削除していたんですが、その必要はないようでした。
かといって、新しいものを作るだけでは重複してしまうので、XSI内での消去は必要のようです。

次に、困ったのは新しいカスタムプリファレンスを作った際にPPGの見た目が更新されない点に苦労させられました。
内容的には更新されているようなのですが、レイアウトが更新されないのです。
これは前々から疑問だったんです。
まぁそもそもあまりレイアウトを作りかえることなんてないでしょうから普段は問題ないんでしょうけど…。

カスタムプリファレンスは Defineコールバック や DefineLayoutコールバック を使っています。
SDKでDefineコールバックの説明は以下のようになっています。

**********************************************************************
プロパティページ上のコントロールの基礎になるパラメータもすべて含め、プロパティセットを定義します。
プロパティのインスタンスを作成するときに発生します
**********************************************************************

ということなので、カスタムプロパティを作った際に必ず実行されるので、XSI内で何度作っても問題ないです。
GJです。期待どおりです。

つぎにDefineLayoutコールバックですが、この説明は以下のようになっています。

**********************************************************************
プロパティページに表示されるコントロールのレイアウトを定義します。
**********************************************************************

これは問題ありません。
これだけならば作り直した時点で新しいレイアウトは変わっているはずです。
変わりません…。(#^ω^)ビキビキ
どうなっとんじゃ!(#゚Д゚)ゴルァ!!
(XSIを立ち上げなおすと更新されています。)
ということでさらに詳しく見ると以下の文章が。

**********************************************************************
XSIセッションでDefineコールバックが初めて実行された直後に発生します。
**********************************************************************

ということは…XSIを立ち上げてから最初にカスタムプリファレンス(パラメータ)を作った時にしか実行されないってこと??
意味あんの??
Defineコールバックとセットで呼び出してくれた方が使い勝手よくない??
ねぇ違うの??XSIさん?( ゚Д゚)∂゛チョットコイヤ
なんて言っていてもラチがあかないので、さらに見てみると以下の記述が。

**********************************************************************
また、PPG.Refreshメソッドを使用すると、このコールバックを強制的に発生させることができます。
**********************************************************************

んん?
PPG.Refreshメソッドって今回の場合使えなくない?
Defineコールバック や DefineLayoutコールバック を使わないカスタムプロパティならよく使ってるけど…。
たぶん方法があるんでしょう。
でもわかりません。
知りません。
誰か教えて…。

ということで違う方法を探してみますか…。
見つけました。
XSIUtils.Reload()メソッド君です。
PPG.Refreshメソッドとあまり変わらないようです。
カスタムプロパティをインスペクトする前に実行する必要があるようですねー。
注意としてはそのくらいかな?
ということで具体的には

var hogehoge = ActiveSceneRoot.AddProperty( OptionName );
XSIUtils.Reload(hogehoge);
InspectObj(hogehoge);

こんな感じでしょうか。
う~ん、なんとか解決…かなぁ? +(0゚・∀・) + テカテカ +

あと、カスタムパラメータ―を作りなおした際に、バージョン情報用のパラメータにも新しい数値を
初期値としてセットしているはずなんですが、これも更新されないようでした。
カスタムプリファレンスだからかな~~??
実験してないから分かんないですが…。
なので作ったあとに自分でセットしなおすという手間が発生しました。
その値セットの際になぜか値がバグるという不具合も…。
これはなぜだかはわかりませんでした…。
分かんないこと多いです。ホント…。orz

そうそう説明ページもまだ作ってます。
どうしてもある程度キチンと作ろうとしてしまいまうんですよー。
たぶん性分でしょう。うん。
しょうがない…じっくり作りますか。
まぁ待ってる人もいないだろうし…。
早くしやがれ(#゚Д゚)ゴルァ!!って方もしもいらっしゃったらコメントくださいませ。
では~。

追記:一応Ver2.5を公開しました。
以下のページよりDLしてください。

http://mochi-mochi-web.hp.infoseek.co.jp/

今回からZIP形式にしときました。
使い方なんかも中に書いてありますので。m(_ _)m



拍手する

2009年1月16日金曜日

タンジェントくん改造中

どうも。
ただいまの時間、午前4時半です。
明日会社なのに、こんな時間までタンジェントくん改造してます。
完全にプラグイン開発魂に火がついております。
バカです。
社会人失格です。ヽ(*´∀`)ノ キャッホーイ!!

でもようやくできました。
タンジェントくんVer2.5です。
改造できただけで、まだ説明ページとか作れてないので、公開はまた後日ということで。

Ver1.0を公開してからいろいろとご意見や要望をいただいたので、機能拡張をしました。

まず、基準フレームの指定方法の変更です。
Ver1.0では自分でコピーするフレームを指定していましたが、Ver2.5では以下のようになります。

・junkiさまよりご提案いただいたフレーム指定ではなくFカーブからマスターキーとスレイブキーを割りだしタンジェントをコピーするという方法
・PlayControlのインとアウトからキーを参照する方法

の2種類となりました。(これはVer2.0からです。)

次に、各種設定機能が加わりました。

・PlayControl参照の場合、キー検索の許容範囲
・マスターキーの値をスレイブキーにコピーするかどうか
・キーが見つからなかった場合、新たにキーを追加するかどうか

の3つの設定を行えるようにしました。
この設定はjunkiさまの神プラグイン『はいカラさん』を参考とさせていただき、
カスタムプリファレンスに登録、XSIを再起動しても設定が保持されるようにしました。

ご存じの方も多いかと思いますが、上記『はいカラさん』、ホントに(×100)神プラグインです。
リギングの際などないと死にます。
その他『ぬるぬる』などなど、多数のないと発狂して死んでしまうプラグインの開発をされていて、ホント尊敬します。
すごいです。
恩恵を受けている方は数知れずでしょう。
ビールウェアなのでjunkiさまはビールの海の上で暮していけますね。絶対。
自分もそうなれたらいいなー、という夢を見つつ頑張ります。はい。

さてさて、今回初挑戦のカスタムプリファレンスですが、結構苦労させられました。
それは自分で作ったカスタムプロパティをカスタムプリファレンスにインストールした後、『あ、レイアウトが変だわ。コード間違えてた!』となった時に起こりました。
カスタムプロパティを作るプラグインを修正して、再度インストールしなおしてもレイアウトが更新されやがらねぇ!!
何度やっても何度やっても…!!!
挙句の果てには自分の手で消去後にXSIを再起動しても復活してやがるのです。
キィィィィィーーーーーーーー!!!
と発狂後、SDKを読み直してみました。

ありましたよ!!
原因判明!!

*********** XSI SDKより抜粋 ************************************************

また、CustomPropertyオブジェクトを作成すること、およびInstallCustomPreferencesを呼び出すことによってもカスタム設定は作成できます。
このようなカスタム設定を削除す唯一の方法は、\Data\Preferencesディレクトリにある関連したPresetファイルを削除することです。

*****************************************************************************

消してやりました。
消えました。
せいせいしました。( `д´) ケッ!
もう帰ってくんな(#゚Д゚)ゴルァ!!

で、作りなおしたらようやくレイアウトが思い通りになりました
…が、値がデフォルトじゃねぇじゃねーか!!(`Д´)ゴゴゴ…━(ノдヽ)━( 乂 )━━━ヽ(゚Д゚)ノゴルァァア!!
またSDKを読み直してみました。
発見!!

*********** さらにXSI SDKより抜粋 ************************************************

ユーザが設定の値を変更する場合、新しい値は、デフォルトの.xsiprefファイルに保管されます。

*****************************************************************************

こいつの中身直接消してやりましたわ!!☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ
…なかなかの強敵だった…orz

カスタムプリファレンスってこんな風にして保持してたんですねぇー。
大変勉強になりました。
あぁーーー楽しかった。

というのが言いたかっただけです。はい。(∀`*ゞ)エヘヘ
タンジェントくんVer2.5は説明のページができたらまた後日ご紹介しますのでー。
ではーー(´∀`*)ノシ バイバイ


拍手する

2009年1月12日月曜日

なんとなくLogicが嫌いです。

どうもです。
前回のタンジェントくんですが、なんとソッコーXSI道場さまで紹介していただけました。
投稿して寝て起きたらもう載ってました。
感無量っす+(0゚・∀・) + テカテカ +
アリガトウゴザイマス!!

それにしても前回投稿時間を間違ったような…。
知ってはいましたが、XSI道場さま主催の
懇親会の日だったのです。
(行きたかった…。今度は是非昼からにしてください~!)
朝起きると参加者のみなさまのお疲れ様記事の洪水によって
XSI道場さまの最新の記事一覧から押し流されておりました…。
紹介していただかなければ今頃下水処理施設に到達して跡形もなく処理されていたでしょう…。

それにしても前回の記事、拍手もたくさん頂けたのですが、どのくらいの方がDLしてくださったんでしょうか…。
使って下さった方もいるのかな~~??
ごみ箱に直行してなければいいなぁ~。
などなどやっぱりそのあたり興味あります。

そういえば先のことも考えてプラグインをまとめたページも作らなきゃですね。
なので、タンジェントくんの置場は変わってしまうかもです。
もちろんそのときはリンク先も編集しときますが。

さてさて本題ですが、XSIのスクリプトでPPGを表示するときなどに出てくる
Logicってなぜかあんまり好きになれません。
Logicで宣言してやった関数しかPPG内から利用できないないし、グローバル変数とか読み取ってくれないし…。
めんどくさいんです。(´;ω;`)ウッ…

かといって_Defineとかは、カスタムプロパティの実体が残ってしまうし…。
まぁ消せばいいんですが、右上の「×」とかでPPG閉じられたりしたら消せないし…。
なんというかシーンにカスタムパラメータを残す方が適しているような気がします。
まぁ知識不足なだけでもっとスマートな方法があったりするんだとおもうんですが…。

ちなみに今日PPG内のパラメータを変数で指定して取得するのに手間取ってしまいました。
簡略化すると

PPG.hogehoge.value

となるんですが、今回このhogehogeの部分を変数にしたかったのです。
正解は、

PPG.Inspected(0).Parameters("hogehoge").value

だったのですね。(゚∀゚)キタコレ!!
これならばhogehogeは文字列なので変数で置き換えが可能ですね~。
当初 PPG.Parameters("hogehoge").value とかだと思って『あれれ~?』と困ってました。
あと関係ないですが最近の個人的な流行りは

var oHoge1 = Dictionary.getobject("hogehoge",false);
var oHoge2 = oHoge1 .NestedObjects();

の2つです。
1つ目は指定したオブジェクトを取得するんですが、falseを指定してやれば指定のオブジェクトがない場合
nullを返すのでエラー処理にも使えますし、
2つ目はオブジェクトにどんなプロパティがあるのかが取得できるってのが便利です。
(そこっ!!SDK見ればいいとか言わない!)
ついでにoHoge1 .NestedObjects("hogehoge").value;と直接プロパティ名を指定してやることもできますしね。
こっちの方が便利なこともありました。たぶん。

みなさんもスクリプトで好きなコマンドとか嫌いなコマンドとかありそうですよねー。
…自分だけかな(;^ω^)


拍手する

2009年1月11日日曜日

MOCHI-MOCHIプラグイン第一弾:タンジェントくん

どうもです。
やはり仕事がはじまるとこまめに更新は難しくなりますね…。
でも頑張ります!!!

さて、今回ですがようやくオリジナルプラグインの公開を致します。
というのも、このMOCHI-MOCHIプラグインプロジェクト、
『XSI道場さんのTOPトピックスに紹介されてるのいいなー、うらやまCcccc-!
自分も紹介されたいーーー!! ウワァァ-----。゚(゚´Д`゚)゚。-----ン!!!!』
…という不純な動機の下、始まった経緯が…


冗談です。
この当初からこのブログの目的の一つでしたからね。
ちゃんとやらないと。
ということで記念すべき第一弾登場です。
その名も

タンジェントくん(右クリックで保存してください)
090119追記:場所が変わりました。以下の場所に飛んでDLしてください。
http://mochi-mochi-web.hp.infoseek.co.jp/

です。

……名前なんてこんなもんです。orz

で、肝心のなにをするプラグインかというと、簡単に言うと『ループモーション作成支援』です。
元ネタとなったものがSOFTIMAGE Japanのユーザ事例:株式会社スクウェア・エニックス「ラスト レムナント」内にありますので、ちと抜粋おば。

*****SOFTIMAGE Japanより抜粋************************************
-どんなツールを作成されたのでしょうか?

たとえば、F-curveの繰り返しを実施するときにキーの最初と最後のタンジェントの振る舞いが問題になるのですが、それを自動的に修正するツールや、カーブにフィルタをかける際に使うオプションの拡張などを行いました。

****************************************************************

これです。
『うぉーこれちょーべんりー!』ってことでこの発想をパクりました。
えぇ。パクりました。

いろいろな場面で多用されるループモーションですが、
そのループの開始フレームと終了フレームのFカーブキーの値と角度をキチンとあわせてあげないときれいなループにはなりません。
でもロケーターが多くなってきて、こといちいち手でやってると…やってられっか( ゚Д゚)ゴルァ!!となります。
そこでタンジェントくんの登場というわけです。はい。

インストール方法は…。

1.こちらのしてC:\users\<ユーザ名>\Softimage\XSI_6.0(バージョンにより可変)\Application\Plugins内に保存
090119追記:バージョン変更により、使い方など下記から多少変更されています。

以上です。
XSIを立ち上げると以下のような感じで項目が追加されておれば完璧です。




さてさて、使い方ですが手順は以下の通りです。

1.任意のオブジェクトを選択する。(複数選択可)
2.カレントフレームをコピー元したいフレーム(マスターフレーム)に合わせる。
3.タイムスライダー上で中クリック(ドラッグ)をしてコピー先にしたいフレーム(スレイブフレーム)に緑色のバーを合わせる。
4.Animation>タンジェントくん:Fカーブキーのタンジェントを統一 を選ぶ。

で、完了です。
オブジェクトに移動・回転・スケールのFカーブが存在していたらそれぞれループ波形になっているはずです。



ちなみに、マスター・スレイブフレームともにキーが存在していなくても問題ありません。
勝手に作ります。
(まぁ普通はそんな使い方しないと思うけど)
バージョン1ですので、いろいろと注意点が…。(バージョン更新されるかどうかもわからないけど。

1つ目はキーフレームがきっかり整数値にないといけません。
小数点が入っていると無駄にキーが打たれてしまうことになります。

2つめは、マスターフレームからスレイブフレームへタンジェントの振る舞いがそのままコピーされてしまうので
マスターフレームのスロープが片方が極端に短いとかだと、ループがいい感じになってくれません。
逆に長すぎるとイビツなFカーブとなってしまいます。
まぁその時は手動でスロープ調整やってください。

このあたりの問題はそのうち解決させようと思っております。f(^_^; スンマセン


ちなみにXSI6.0でプラグインを作成しましたので、そのほかのバージョンでは動作確認を行っておりません。
なにか問題がおきましたら誰か教えてくださいませ。


う~ん…それにしても公開したはいいが、誰か使ってくれるんだろうか
…っていうかその前にダウンロードしてくれるんだろうか?
ダウンロードしてくださった方の中で使ってみた感想とか教えて頂けると幸いです。はい。


拍手する

2009年1月6日火曜日

MOCHIくんモーション第2弾 -ダッキング-

今日はMOCHIくんモーション第2弾を作ってみました。
と言っても小物ですが…。

今回は第一弾で公開したファイティングをベースとしたもので、仮想敵『球』がお相手です。
前方から飛んでくるのでMOCHIくん頑張って避けます。
ボクシングで言うとダッキングですね。(たぶん
ではどぞ。

video

ある程度動きは大げさにつけております。
でもボクシングのことは詳しくない上に資料なんぞ見ずに作ったので、根本的に間違ってることがあるかもです。

今回のモーションは個人的にモーションミキサーの練習としての意味も含めて作ってみました。
実は仕事でもモーションミキサーはあまり触らないのです。
ミキサーは便利なのです。
知ってるんです!!!
だけど仕事では…ごにょごにょ…
ということで、実践あるのみです。

今回は以下のような個別モーションを用意してモーションミキサーでつなげてみました。

・ファイティングループ
・立ち~ファイティングポーズ
・ファイティングポーズ~右ダッキング
・ファイティングポーズ~左ダッキング

これをモーションミキサー上にずらずら並べて、トランジションツールを使い一連のモーションとしてみました。
見た目はこんな感じですね。



でもこれだけだと、モーションのつなぎに角がある個所が見受けられるので、
あとはプロットして手で修正しました。
う~~ん。ミキサーって効率的で生産性高いですねー!!

ちなみに、これからファイティングから○○○といった単品ものが続くと思われます。
(もちろん間に違うものは入れますが)
で、単品がそこそこの数になったらミキサーなど使って
少し長めで面白い感じのモーションが作れたらな~と企んでおります。

個人的にも一連の流れがあるモーションというのはあまり作らないので楽しみだー。
では今日はこんなところで…。

拍手する

2009年1月5日月曜日

正月休み終了っす。

今日はブログに拍手ボタンを追加してみました。
追加してみたはいいんですが、記事を全部編集しなおしたため
XSI道場さんのブログ更新情報欄の半分くらいを占領してしまいました…。
ほんとスイマセン(m´・ω・`)m ゴメン…

さてさて正月休み今日で終わりました。
明日から仕事です。
仕事好きなので苦じゃありません。
ありませんが、やっぱ終わってしまうのは悲しいなぁー。(ノд・。) グスン

それでもこの休みの期間中には新しく素敵な出会いがいくつもありました。
これは自分から行動しなければ起こり得なかったことです。
自分から行動することで輪が広がる。
当たり前ですが非常に重要なことを学びました。ヾ(^∇^)

会社が始まってもちゃんとブログは更新していこうと思っております。
会社でこっそり書いたりします。うししし…|゚Д゚)))コソーリ!!!!
でもそんなにネタがあるかどうかは知りません。
どなたかネタあったらください。

今日は専門色ゼロ!では( ´Д`)ノ~バイバイ


拍手する

2009年1月4日日曜日

MOCHIくんモーション第一弾

今日は昨日紹介したMOCHIくんを早速動かしてみました。ヽ(*´∀`)ノ キャッホーイ!!
さすがに静止画だけでは作った意味もないですしねー。
(作ったからにはやりますよーーー!!Σヽ(`д´;)ノ うおおおお!)

今回は2種類のモーションを作ってみました。
まずは立ちモーションです。


video

ありゃ?
なんか結構画質が落ちますねー。Σ(゚Д゚;)アラマッ
こりゃしょうがないんですかね?どうしましょ?
(まぁそれはまた今度考えるとして)

やる気なくニブそうな感じなのは仕様です。
こういう基本は間抜けなキャラクターにしようかと…。
見た目的に個性のないキャラクターにもさまざまな個性がつけられる。
これがモーションの醍醐味であり、目的ですからねー。
そういう意味でもMOCHIくんの無個性さはいいのかもれません。

…って後付けだろって?
あははーーーー。だまらっしゃい!!(#゚Д゚)ゴルァ!!

ちなみにこういうモーションは、仕事ではニュートラルモーションって呼んでおります。
呼び名は会社それぞれ違うようで、アイドリングと呼ばれてたりもするようですねー。
(たしかRPGに多かった気がします)
なので仕事でたまに話が通じなかったりもするので困ったものです…。

さてさて、続いてはファイティングポーズです。

video

うーーん。やる気満々です♪♪♪
殺る気かもしれません。知りません。
間抜けなキャラクターじゃなかったのかって??
いやー実はMOCHIくんやるときはやる男なのです。
とりあえず、そういうことにしときます。
これは、ちょっと前足動かしすぎたかもしれません。
でももうレンダリングするのメンドィので直しません。ァ '`,、'`,、('∀`) '`,、'`,、

それにしても今回モーション作成時間よりも、
レンダリングやら動画作成時間の方が時間かかった気がします。
こんな簡単なモデルなのにレンダリングが40分もかかってしまうなんて…。(´・ω・`)ショボーン
ちまたの綺麗なムービーなんてどれだけ大変なことでしょう…。
って普通のパソコンと比較したってしょうがないことですかねー。

レンダリング中ってばCPU100%なのでなにもできませんね。
(それにブォォォォォォォォンって暴走したかのような音がするし)
普通こんなものですか?
それともうちのPCがヘボいだけですか?
うーーん…

そうだ゜∀゜!!
いいこと考えました。
もうすぐ仕事が始まるんで仕事場のPCでやっちゃおう!!
うちのより断然高性能だし。
帰り際にバッチレンダリングかましとけばOKでしょ。バレないっしょ!|゚Д゚)))コソーリ!!!!
にゃはは。いい考えだー!


( ・_・)XXXXXXXXXXXC<―_-))))))スリスリ



【警察署】  ヽ(~-~(・_・ )ゝ 連行します♪



||Φ|(・|・|)|Φ|| ガシャン!



…嘘です。 (´Д⊂ヽウェェェン


拍手する

2009年1月3日土曜日

モーション野郎MOCHIくん登場

遅ればせながら年末ジャンボの結果を確認しました。
撃沈でした。まぁそりゃそうか。(´Д⊂グスン

さてさて、今日は当MOCHI-MOCHIブログのマスコットになるであろう、お方の登場です。
その名も『モーション野郎MOCHIくん』!!v( ̄Д ̄)v イエーイ



う~ん…まぁ名前考えるのメンドかったんだわ。うん。m9(^Д^)プギャー
一応ね。胸にMとMOCHIって書いてます。
まぁ申し訳程度ですが…。
(Mだけだと○クドナルドになっちゃうんでMOCHIも入れました。)

で、このMOCHIくんにはこの先いろいろなアクションに挑戦してもらおうかと。
一応ブログの最初の記事に「キャラクターアニメーションの公開」ということを書きましたので。
それ専用です。

モデルも頑張って作りました。
見て下さいこの作りこみ!!いやー!大変だった!!
…ジョークです。(;゙゚'ω゚'):サムィー
まぁでも真面目な話、モーション専用なのでそんなきれいなモデルはいらないのです。
モーションが見えればいいだけですからね。
エンベロープなんて贅沢なものは使っておりません!
すべて親子関係!!

棒立ちもあれなんで、ポーズとってもらいました。

やる気満々のようです。(;´Д`)

ちなみにこのモデル、株式会社モックスさまという会社のHPに掲載されているモーションのモデルを
真似て作りました。
この株式会社モックスさま、3DCGキャラクターのモーションを「手付け」にて専門的に制作する会社なのだそうです。
まだできて間もないのですが、「手付け」にて専門と言っているだけあってモーションのクオリティーは高いです。
自分も頑張らないとなーと思う次第です。

そうそう。
MOCHIくんの画像を作る時に、「さすがに画面キャプチャじゃなぁー」ということでXSIでの
初レンダリングに挑戦したのですが、レンダリングって難しいですねー。
触ったこともないからもうまったく分からない!
株式会社モックスさまみたくしたかったので頑張ったんですが、上記の感じにしかなりませんでした。
まぁそこも「ま、いっか。」の精神でやめときました。
ちなみに最初にレンダリングしたのがこちら。

うーん…まぁ最初よりは少しだけマシになってますかねー。
それにしてもレンダリングってまったく分かんないけど楽しかったです。
ゲーム畑&モーションデザイナーなので、かなり無関係なんですが…。(´・ω・`)ショボーン


ではでは、今後のMOCHIくんの様々なアクションへの果敢なる挑戦、お楽しみにです。
(仕事始まってもちゃんと作れる時間あるかなぁー)

拍手する

2009年1月1日木曜日

Syflexでスカート動かしてみた。

どうも。m(_ _)m
2009年始って早くも1日ですね。

さてさて、今日は簡単ですがSyflexでスカートを作ってみました。
といってもゲーム畑の人間なので手法がゲーム寄りです。
映像の方たちがどんな風な手段とってるのかまったくしりません。(´;ω;`)ブワッ
逆に教えてください。だれかー。・゚・(つД`)・゚・ ウェ―ン

今回の手順は以下のうような感じです。

1.実モデルを用意する。
2.実モデルとほぼ同じ形の簡易モデル(シュミレーション用モデル)を用意する。
3.シュミレーション用モデルのポリゴンにヌルをクラスターコンストレイントしてく。
4.出来上がったヌルを実モデルのデフォーマーとして適応する。

これで準備完了。
あとはシュミレーション用モデルにSyflexを…
…とそのまま適応すると形はグチャグチャになるわ、
足は突き抜けるわで(´・ω・`)ショボーンな感じになってしまうので
スカートの形を保つためのアタリと、動いた時足が突き抜けないようにするためのアタリを作りましょ。
今回は球を使ってみました。
あたりは簡素な方が引っ掛かりもなく、計算も早いです。たぶん。
詳しくは知りません。保障もできません。

以上の手順を動画…はメンドくさかったので、GIFアニメにしてみました。
(GIFアニメなんてすげーー久さしぶりに作った…)
えーーっと…

…  ゚(∀) ゚ エッ?
…………  (つд⊂)ゴシゴシ
………………………  ( ゚д゚)ポカーン

ってGIFアニメアップロードできんがな!!
どうなっとんじゃ(#゚Д゚)ゴルァ!!

う~ん…しょうがない…。
諦めるか。
…嘘です。JPEGにしました。(右
詳しくはクリックして見てやってください。

手持ちのキャラクターにスカートをはかせて、腰ふり&足あげの
モーションをつけてテストしてみました。
で、できた動画がこれです。↓↓


video

うーん…まぁまだまだ調整は必要です。
でも大まかにはこんな感じです。
あとはパラメータとにらめっこです。

ちなみに、Syflexは途中から再生やレンダリングをしようとすると計算してくれないので、
キャッシュをとっておきましょう。
(実際なにかに使うときはシュミレーションが落ち着くまでちょっと余白をとりましょ。)
下の画像のキャッシュってところでフォルダを指定したあとに再生してやれば、
キャッシュファイルが書き出されます。(大量に
間違えてデスクトップとかにしちゃったら惨劇が待ってます。



あと、ポリゴンは□より◇の方が布っぽくなるそうです。
試してはおりません。
たしかどこかで見ました。
どこかは忘れましたが。'`,、('∀`) '`,、

キャラクタが座ったときなどどうしてもシュミレーションがうまくいかないときはデフォーマーを
プロットとかしてやって手でFカーブを地道に直しましょう。
あとは愛次第です。ガン( ゚д゚)ガレ

では~ ( ´Д`)ノ~バイバイ


拍手する

謹賀新年

あけましておめでとうございます。~ヘ(´ー`*)

このブログは2、3日前に初めたばかりなのでいきなり年をまたぐのもおかしな感じがしますが、
2009年は無理をせず、ある程度定期的にブログを更新していけたらとおもいます。
それと、プラグインとか公開してみなさまのお役にたてるブログになれるよう頑張ります。

コメントなんてまだ夢のまた夢ですが、早くつくといいなぁー。
でもって役に立ったというお言葉がもらえた日にゃ…じゅるり…(*´Д`*)

とにかく今年一年どうかよろしくお願いします。m(_ _)m