楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル

log

2011.05.26 Lscript:モーションリターゲットスクリプト

ファイル 348-1.jpg

自作のモーションリターゲットスクリプトでワールド-ローカル座標系の変換がうまく
いかなってここ数日四苦八苦してましたが。。とりあえず固定回転記録を使って
初期回転値を0にしてからリターゲットすれば、ボーンの構造が違っていてもうまく
リターゲットできる様子なので、ワールド-ローカル座標系変換はとりあえず一旦
保留にしようと思います。何だかあと少しでできそう、、な気がするのですが。
出来るといった確証は無いですからね。

ここまででキャラクター間のモーションリターゲットの画像を用意していなかったので
一枚用意してみました。標準体型からちびキャラへのリターゲットの場合に足が
少し地面にめり込んだりといった不都合がでたので少し修正が必要ですが、
ひとつひとつキーをコピー&ペーストするといった手間がなくなったのが何より嬉しい!

ただ、今のところポーズの左右反転コピーは未だにコピー&ペーストといったチマチマ
した手法をとっているので…苦笑。後はこの辺だけでも自動化したいところです。

2011.05.24 LScript:MultiGameMove

LW10のゲームデバイスが自身の環境で利用できなかったので、代わりに
キーボードを使ってアイテムを動かすLScriptを作ってみました。

UP/DOWN/LEFT/RIGHTキーで選択アイテムを移動させます。ただ単に移動させる
だけなので、指定アイテムを地面として高さを変えたりとかはやってません。C++では
以前やったことですが、LScriptでそれをやるととてもしんどそうなので保留です苦笑;

何気なしに作ってみましたが、サクサクっとカメラを動かしたい場合に使えるかな。

http://green.ribbon.to/~takehouse/archive/MultiGameMove.zip

追記:
Stickyモディファイアを利用して、指定アイテムの高さを取得するサンプルシーンを
追加で入れておきました。それとVPRだとキー入力が続いている間は以前の
位置・フレーム時の画面を描画し、キー入力が終わったらその時点での新しい
位置・フレーム時の画面を描画、という感じになりますね。ちょっと残念…。

2011.05.18 Lscript:モーションリターゲットスクリプト作成中

色々とスクリプトが出来てきたので、今回は練習で作ったスクリプトたちを
いくつかご紹介してみようと思います。

・MultiSetValue
 座標値、UV値、頂点カラー値、ウェイト値、法線値の数値設定。
・MultiScale
 スケール・法線方向スケール・Inflate・Increase機能をまとめたスクリプト。
・MultiSmooth
 スムース・Flatten機能をまとめたスクリプト。
・MultiMirror
 ウェイトマップ名の左右反転を考慮したミラー。
・MultiMerge
 ウェルド・マージ・不正ポリゴン修復機能をまとめたスクリプト。

こんなところです。ちなみに全てのスクリプト名に"Multi"という名前がついているのは
スクリプトの頭文字が同じだとファイル名でソートしたときに並んで自分のスクリプトが
表示されることを考えてです。スクリプトフォルダでソートできたらいいんですが、
それができないですからね。。
それとサイトでは2つしか公開してませんが、下の3つは完全に自分用の組み方
なので公開は特に考えてません苦笑。

それと現在はモーションリターゲットのスクリプトを作るためにレイアウトのスクリプトを
勉強中です。リターゲットに必要なアイテムのプロパティは大方取得できたので、
後は座標系のローカル-ワールド変換くらいです。とりあえず、リターゲット機能が
一番実装したかった機能なので割とすんなり組めそうでほっとひと安心です。
こんなにすんなりできるのであれば、もっと早めにやっておくんでしたね;

2011.05.14 LW:MultiScale

ファイル 345-1.jpg

MultiSetValueと平行してMultiScaleというスクリプトも作ってみました。こちらは
LWのサイズ、ストレッチ、法線方向移動の機能を1つにまとめたものです。
MultiSetValueと同様リアルタイム確認がとれるようにしたのと、選択頂点を
元にセンターを1ボタンで設定できるようにしてみました。

それほど対したスクリプトでもないんですけどね苦笑;何故こんなスクリプトを作った
かといえば、コマンドパネルのレイアウトをすっきりしたかったからな訳です。
今まではスケール処理のコマンドで3つも表示コマンドをとっていましたが、これが
スッキリとまとまった上に今まで小さく押し込めていたコマンドを表示させることが
できるようになったので意外や意外、これが結構嬉しい結果となりました。というより
ショートカットを沢山覚えれば、こんなスクリプトも必要ないんですが…、まあ色んな
ソフトを扱っているとショートカットもバラバラなので沢山のショートカットを長時間
覚えるのは個人的にしんどいのであった。

ちょっとコマンドをすっきりさせたいなあ、という方は是非お試しあれです笑。
http://green.ribbon.to/~takehouse/archive/MultiScale.zip

追加:
試しにInflateとCrease機能もつけてみました(上の画像参照)。
ちゃんとしたInflate,Creaseのアルゴリズムを知らないのでいんちき実装ですが、
やっとこさこしらえましたよ笑。時間かかった~。

2011.05.11 Lscript:MultiSetValue

ファイル 344-1.jpg

最近Lscriptを触り始めていたのですが、ようやくLscriptでそれっぽいものを
ひとつ作ってみました。その名もMultiSetValueです!

LW標準のSetValueの機能追加版です。実は似たような他のプラグインがいくつも
あるのですが、それらの機能がまとまったらいいのになあと以前から考えていたので
今回は自分が思う理想のSetValueスクリプトを手がけてみることにしました。

とりあえず、まだ実装していない機能がいくつかあるのですが、使ってみたいという方が
いらっしゃるかもしれないので配布してみようと思います。
詳しい説明はZipアーカイブの中に入れておきましたのでそちらを参照してください。

http://green.ribbon.to/~takehouse/archive/MultiSetValue.zip

というか使いたいLWユーザさん、いるかなあ苦笑。

2011.03.26 LW:ようやくテクスチャ作成

ファイル 342-1.jpg

プログラムやら何やらで1ヶ月ほどほったらかしにしていたモデルを久しぶりに
更新。テクスチャとウェイトをある程度作成して、とりあえず完成手前といった感じです。

ちなみに公式設定をみると身長が95cmだそうですが、さすがにその通りに設定
すると他のキャラと比べて小さすぎる感じだったので1m数cm程度にしてみました。

ようやく出来てきたなあ、と思いつつ。これから背景も作らないといけないな;

2011.03.03 LW:LWO読み込みその3

ファイル 334-1.jpg

LWOのスケルゴンとウェイトマップを読み込めるようになりました。
スケルゴンはLWSでボーンを読み込めば別に必要ないのですが、、まあこちらの
方が色々と便利かなと思ったのでこちらでボーンをプログラムに読み込んで
いきたいと思います。とりあえずこれでLWOの読み込みは完成ですが、
LWOフォーマットはスキップ処理の実装はすんなりと出来ましたが頂点マップの
情報が至る所に分岐していたので、エラー処理にすごく苦戦してしまいました。
頂点マップ名だけを格納するチャンクとか、他のチャンクにまとめた方がいいと
思ったものですが、既に完成しているフォーマットに云っても仕方がありません。

次はLWS読み込み!一番実装が不明瞭なのはスケルゴンからどうやって
LWSと同じ初期姿勢を得るのかということですが、ただいまちょっと考え中です。

2011.03.01 LW:LWO読み込みその2

ファイル 333-1.jpg

LWOファイルの読み込みがある程度できてきました!
けれど、実装してみると当初の予想よりも結構難しかったという印象でした。
というのも頂点座標等の取得はそれなりにすんなり出来たのですが、何故か
プログラム上では正常に描画されないという問題が発生したのです。

この問題について色々と試行錯誤するうちに、どうやらマルチレンダーターゲットと
固定機能パイプラインを併用すると描画されないということが分かったので、それで
一件落着なのですが。。たったこれだけのことで2日近くかかってしまいました苦笑;
正直もう駄目かもしれないなんて、軽く絶望しかけましたよ。まあ、プログラムを
しているときはこんなこと日常茶飯事なのですが、…これって自分だけかな。。

そういえば、Xファイル読み込めるのならLWOの読み込みいらないんじゃないかと
思われそうですが。一応利点を大きく2つ挙げてみます。

・Xファイルはインポートは自作ですが、エクスポートは他者のプラグインなので
 バグを発見しても修正できないが、自作ならそれが可能。
・LWのモーフやマルチUVをそのまま読み込める。

この2つとも自分にとってはかなり大きなアドバンテージになるので、LWOと
LWSが読み込めるとすごく助かるのです。ちなみに現状はXファイルが読み込め
たり読み込めなかったりといった感じなので、プログラム上のモデルがいつまで
立ってもやたら古いのは実はそのせいなのです;

他所様のプラグインとか見ていて思いますが、Xファイルの出力の際、何らかの
不都合が生じた場合はその問題についての適切なメッセージを返してほしい
ものなんですけどね。。例えば、インデックスサイズがWORDサイズを
超えている場合は"このモデルのインデックスサイズはWORDを超えています。"
というメッセージを返してほしかったりするんじゃないかな、と思います。

そして残るはウェイトの読み込みとLWSファイルの読み込みです。
LWSファイルはSDKのマニュアルにはものすごく簡素に書かれていて、どうしよう
かと思いましたが、ファイルを眺めているうちにモディファイア系の処理は
plugin~EndPluginという部分にまとめられていることが分かったので
まとめて読み飛ばせば割とシンプルに実装できることが分かってきました。
早く実装できるといいなあ。

2011.02.26 LW:LWOフォーマットについて

ちまちまとLWOフォーマットについて勉強中です。
今までは3Dソフトのフォーマットは難しそうだから敬遠してたのですが、ようやく
ある程度理解できるようになってきたので。少しプログラムを組んでみて、今回
LWOファイルの頂点情報とインデックス情報とテクスチャ情報が取得できるように
なりました!まだまだ序盤ですが、これだけでもシンプルなモデルなら読み込んで
そのままプログラム上で使える感じです。

それと読み込んだモデルのバッファを最適化する関数を作成したり、Xファイルを
書き出す関数も作成したりしてみました。2つともまだ中途半端な実装なのですが、
これらの機能がうまく組み合わさることでプログラムと3Dソフトのデータ以降が
すごくスムーズになると思うので、ここは頑張りたいところです。

ただ少し気になるのが、LWOの読み込みをサポートしているソフトは色々とある
のですが、LWSの読み込みまでサポートしているソフトになると、何故かすごく
少ないんですよね。。こちらはテキストフォーマットなので簡単に読み込めそうな
気がするのですが、モディファイア系の読み込みが面倒くさいのかもしれない。
バイナリファイルの方が読み込みしやすいとは、、これ如何に笑。

LWOフォーマットはIFF(Interchange File Format)という汎用フォーマットを
採用してるのですが、正直3Dソフトのフォーマットはどれも互換性が無さ過ぎる
ので、IFFのような汎用フォーマットの記述で統一してしまえばいいと思ったり。
ColladaのようなXMLタイプでもいいんですが、各情報のスキップとかは
IFFのようなチャンク構造じゃないとしづらいし、スキップが容易に出来ない以上、
全ての情報について把握する必要がありますからね。。
多分Colladaを自作読み込みなんて個人レベルでは出来ないと思うんです。
まあ汎用フォーマットで統一しようにも、実際は各社の思惑なんかも色々と
ありそうなので、そうはいかないのが現実なのであった。

2011.02.03 LW:LW10の小さな新機能

LW10の新機能まだまだ他にないかな、と今現在も探っているところですが。
3つほどプラグイン形式の新機能を発見したので、ちょっとご紹介。

・Weight Blur
 モデラー。Mapタブに入っている。
 ウェイトにブラーをかける。
・DNA
 モデラー。Additionalに入っている。
 DNAっぽい(?)ポリゴンを作成。
・SpriteGen
 レイアウト。RenderGlobal>Outputに入っている。
 レンダシーンを1枚のタイル状のスプライト画像として出力。

SpriteGenについては公式サイトの新機能一覧に載っていたのでそこから
気づきましたが、DNAについては「何だろうこれは」としかいいようがありません;
機能はまさにそのまま、医学系の番組で見かけるようなDNAモデルを作成します。
使いどころはものすごく限定されそうですが、、覚えておいて損はない、かも。

ちなみにまだまだ他にもないかな、とLW9とLW10を同時に起動させながら
探していたのですが。LW10が突然強制終了してしまい、LW9の方をみて
みるとコマンドが半分近く減っていた、という現象が発生!

いざという時のためにコンフィグファイルをバックアップしてあったので復旧は
すぐ出来ましたが、やってくれますなあLWさん。
そこで気がつきましたが、LW10のコンフィグファイルはユーザディレクトリ直下
ではなく.NewTekというフォルダ内に作成して住み分けしてました。
そもそも何故LW9はユーザディレクトリ直下に堂々と置くのやら…苦笑。

それと上の3つのプラグインはLW9でも読み込んで使用することが出来ます。
ただし奨められた方法ではないので、やらない方がいい気がします。ちなみに
コンフィグファイルの破損はLW9にプラグインを読み込ませる前に発生した
のでLW9とLW10の同時起動をする際は一応コンフィグファイルのバック
アップをしておいた方が無難だということが分かりました。

追記:
他にもレイアウトのモーションオプションのコントローラタブにFollowという項目が
追加されてました。これだけだとモディファイアからFollowするのと同じかな
と思ったのですが、なぜかTexture Editorボタンがついてるので不思議です。
テクスチャでコンストレインの度合いを調節するんだろうか?今のところ謎です。