XSI Foundation 【初級者 カモーンщ(゚Д゚щ)】 Part 6

このエントリーをはてなブックマークに追加
932名無しさん@お腹いっぱい。:2007/08/27(月) 16:30:00 ID:HVeCcK9p
(Dim n)
n = Null
で正解みたいだな。

Nothingはオブジェクトの参照を解除するものらしいからちょっと違う。

If Typename(n) = "Null" Then みたいな判定をしたいんだろうと推測すると、
>>931では文字列だからダメだな
933名無しさん@お腹いっぱい。:2007/08/28(火) 01:13:17 ID:P+RMSEVv
ヌルヌルがたまらない!
934名無しさん@お腹いっぱい。:2007/08/28(火) 09:19:17 ID:JQHWqKaq
タイムリーに知ってそうな人がいるので質問させてください。
TransformUVs内でりんぷるさんのUValignスクリプトの機能が使えたら理想的だと思い
JAVAに直してみているのですが、うまくいきません。
下記の部分なのですがこんなにわからねーのかとあきれずに助けて頂けると幸いです。

If typename(oUV) = "Nothing" then
ActivateObjectSelTool
msgbox "select sample point again",,"Error"
Exit sub
End if
aUV = oUV.elements.Array
maxPos.set round(aUV(0, selectedIndices(0)), 7), round(aUV(1, selectedIndices(0)), 7), 0
minPos.set round(aUV(0, selectedIndices(0)), 7), round(aUV(1, selectedIndices(0)), 7), 0

for i = 0 to Ubound( selectedIndices, 1 )
sampleU = round(aUV(0, selectedIndices(i)), 7)
sampleV = round(aUV(1, selectedIndices(i)), 7)

よろしくお願いしますorz
935名無しさん@お腹いっぱい。:2007/08/28(火) 11:41:27 ID:tON7F+Bk
どう上手く行かないのか、自分の書いたコードを晒した方が良くない?
936名無しさん@お腹いっぱい。:2007/08/28(火) 12:08:55 ID:p+FKksrU
質問の答えになってないけど
機能がおなじでいいなら単純にExecuteScriptかExecuteScriptCommandで
スクリプトを呼び出すようにしてみては

function TransformUVs_align_OnClicked( )
{
ExecuteScriptCommand("********");
}
937名無しさん@お腹いっぱい。:2007/08/28(火) 12:34:45 ID:515unEnP
vbscriptの中からjavascriptを実行させ、そこからvbscriptを呼び出すと。
これは色々応用利くな。

ところで、TransformUVsの中にUValignを組み込むのはできないのか?
938名無しさん@お腹いっぱい。:2007/08/28(火) 13:04:15 ID:460fY+LC
レンズシェーダのtoon_inkで同じオブジェクトのある部分だけ線を表示させないことは可能ですか?
目の部分に穴をあけていてそこだけ線を消したいんですが別な作り方じゃないとだめなんでしょうか
939名無しさん@お腹いっぱい。:2007/08/28(火) 16:39:58 ID:W4iOLanI
>>938
「線を消したいところを白」「線を残したいところを黒」のテクスチャを作って
Toon_Paint_and_HostのInkタブにあるBypassに貼る。
940名無しさん@お腹いっぱい。:2007/08/28(火) 18:08:22 ID:d9hqta8i
クロスやソフトボディーなどシュミレーションで変形させたモデルを保存することはできますか?
941名無しさん@お腹いっぱい。:2007/08/28(火) 21:37:39 ID:/8CmNUyv
UIの色ってグレーにしかできないの?
例えば、maxみたいに黒にしたりとか
942名無しさん@お腹いっぱい。:2007/08/30(木) 01:02:58 ID:XkmgejsK
>>940
フリーズ or Geometry Duplicateかな?
943名無しさん@お腹いっぱい。:2007/08/30(木) 01:34:38 ID:UrgzMdGi
Set oSel = Selection(0)
Set oSubComp = oSel.Subcomponent
Set oObj = oSubComp.Parent3DObject
Set oUV = oObj.Material.CurrentUV
Set oNewSubComp = oSubComp
Dim sel_minU, sel_maxU

flag = 0
aUVW = oUV.Elements.Array
selectedIndices = oNewSubComp.ElementArray
sel_maxU = -10000
sel_minU = 10000

For Each sIndex In selectedIndices
u = aUVW(0, sIndex)

If flag Then
If sel_minU > u Then
sel_minU = u
ElseIf sel_maxU < u Then
sel_maxU = u
End If

Else
sel_minU = u
sel_maxU = u
flag = 1
End If
Next


LogMessage sel_minU &" minU" &" ," & sel_maxU &" maxU"
944名無しさん@お腹いっぱい。:2007/08/30(木) 01:35:43 ID:UrgzMdGi
あ あれ? タブが・・・
945名無しさん@お腹いっぱい。:2007/08/30(木) 01:37:27 ID:UrgzMdGi
var oSel = Selection(0);
var oSubComp = oSel.Subcomponent;
var oObj = oSubComp.Parent3DObject;
var oUV = oObj.Material.CurrentUV;
var oNewSubComp = oSubComp;
var sel_minU, sel_maxU;

flag = 0;
aUVW = oUV.Elements.Array;
selectedIndices = oNewSubComp.ElementArray;
sel_maxU = -1000;
sel_minU = 1000;

946名無しさん@お腹いっぱい。:2007/08/30(木) 01:38:31 ID:UrgzMdGi
for( sIndex in selectedIndices)
{
u = aUVW(0, sIndex);

if (flag != "null" )
{
if (sel_minU > u )
{
sel_minU = u;
}
else if (sel_maxU < u )
{
sel_maxU = u;
}
}
else
{
sel_minU = u;
sel_maxU = u;
flag = 1;
}
}

LogMessage (sel_minU +" minU" +" ," + sel_maxU +" maxU" );
947名無しさん@お腹いっぱい。:2007/08/30(木) 01:52:06 ID:UrgzMdGi
たびたびすみません。ご助言ありがとうございました。
力不足を痛感し必要機能(選択UVの平均最大最小座標の取得)だけを移そうとしているのですが
やはり分かってないようです。
943は選択UVの最大Uと最小Uをログに出すVBです。正しく出ます。
これを945と946でJsで直そうとしています。for内に入っていないようです。oUV.Elements.Array??このあたりで失敗してるような・・・
ご教示よろしくお願いします。
948名無しさん@お腹いっぱい。:2007/08/30(木) 02:29:45 ID:ta3oosI2
forの書き方がいかんのでは
foreachジャマイカ
それはともかく、選択しているサンプルのindexを表示するjs
あとはまかせた


oSelList = Selection(0);
var oSub = oSelList.SubComponent;
var samppnts = oSub.ComponentCollection;

for (var i=0; i<samppnts.Count; i++) {
   Application.LogMessage( samppnts(i).Index);
}

949名無しさん@お腹いっぱい。:2007/08/30(木) 02:37:22 ID:JlE9rzj+
>>947
UVの配列はVBArrayだから、変換しないとJSではアクセスできない仕様。
ここら辺はMSのスクリプトリファレンスに目を通した方が良いかも。

以下、ウチで使ってるやつから引っこ抜いて弄ったやつです。
記述がちょっと違うけど機能は同じなんで、参考にどうぞ。

//------------------------------------------
aUVBB = UVBounding();
logmessage( "[U] min:" +XSIRound( aUVBB[0], 3 ) +" / max:" +XSIRound( aUVBB[1], 3 ) );
logmessage( "[V] min:" +XSIRound( aUVBB[2], 3 ) +" / max:" +XSIRound( aUVBB[3], 3 ) );

function UVBounding() {
var oSel = Selection(0);
var oSubComp = oSel.Subcomponent;
var oObj = oSubComp.Parent3DObject;
var oUV = oObj.Material.CurrentUV;
var oNewSubComp = oSubComp;

flag = 0;
aUVW = new VBArray( oUV.Elements.Array ).toArray();
selectedIndices = new VBArray( oNewSubComp.ElementArray ).toArray();
umax = -100, umin = 100;
vmax = -100, vmin = 100;
950名無しさん@お腹いっぱい。:2007/08/30(木) 02:38:40 ID:JlE9rzj+
for( n = 0; n < selectedIndices.length; n++ ) {
indx = selectedIndices[n] * 3;
u = aUVW[indx];
v = aUVW[indx+1];
if( flag ) {
if( umin > u ) {
umin = u;
} else if( umax < u ) {
umax = u;
}

if( vmin > v) {
vmin = v;
} else if( vmax < v ) {
vmax = v;
}

} else {
umin = umax = u;
vmin = vmax = v;
flag = 1;
}
}
return( Array( umax, umin, vmax, vmin ) );
}
951名無しさん@お腹いっぱい。:2007/08/30(木) 03:50:27 ID:Vt74EQOY
>>942
ありがとうございます
助かりました
952名無しさん@お腹いっぱい。:2007/08/30(木) 11:37:55 ID:xDlhd2bd
>>945
>aUVW = oUV.Elements.Array;
aUVWの実体が無いのでは?
あと
>if (flag != "null" )
ここは正しいの?
単にif(flag == 1)かif(flag != 0)が確実かと
953949:2007/08/30(木) 12:37:38 ID:JlE9rzj+
今見たらちょっと間違ってたので訂正。
>>949のLogmessageの "min" と"max"が逆ですた。
954名無しさん@お腹いっぱい。:2007/08/31(金) 10:55:50 ID:t/gJcL99
UVのある1ポリゴンを、UVから削除ってどうやるか知ってる方いますか?
955名無しさん@お腹いっぱい。:2007/08/31(金) 14:38:39 ID:27AdKlDn
>>954
テクスチャエディタで、問題のポリゴンだけ動かしゃええんちゃうの?
956名無しさん@お腹いっぱい。:2007/08/31(金) 15:08:04 ID:g9nq6Z2c
>>954
クラスタからいらないポリゴンを削除
957名無しさん@お腹いっぱい。:2007/09/01(土) 23:48:19 ID:mNxNq+Ny
インテリア、人物を作るのに参考になる海外のチュートリアルサイトってどの辺ですか?
DVD販売なら沢山見つけたのですが、他にもあるらしいので教えていただけると幸いです。
958名無しさん@お腹いっぱい。:2007/09/02(日) 00:16:29 ID:3tt7bvcZ
959名無しさん@お腹いっぱい。:2007/09/02(日) 00:55:41 ID:bJgKGSOa
>955
それでもいいんですけど、消すことが出来るなら消しちゃいたいな、っと思いまして

>956
これがよく分かりません。
不正な引数指定ですって出て、UVはなくなりませんよね?
960名無しさん@お腹いっぱい。:2007/09/02(日) 01:45:18 ID:hKtTcruc
samples2componentsは違いますか?
http://eldorado.xrea.jp/xoops/modules/pukiwiki/250.html
961947:2007/09/02(日) 02:14:55 ID:hKtTcruc
みなさんありがとうございます。特に>949さん。どんぴしゃの関数でした。
おおよその機能を載せ終わりました。
現在UIの設定をしているのですがまた詰まりました。
ttp://recon.hp.infoseek.co.jp/cgi-bin/img-box/img20070902020815.jpg

・ボタンにビットマップを使用する方法があれば教えてください。siControlIconListだと使えるようなのですが。
・ボタンを十字になるように配置したいのですが、うまく動かすことはできますでしょうか。
AddSpacerを試してみましたがうまくいきませんです。

・プロパティの横幅を決める方法があれば教えてください。デフォルトでは少し大きく感じます。
siUICXで個々の大きさを指定すればいいかなと思ったのですが駄目でした。
・UIを変更したときにプラグインをアップロードをしてもXSIを立ち上げなおすまで変更が反映されないのですが、
何か上手い方法ないでしょうか。
よろしくお願いします。
962名無しさん@お腹いっぱい。:2007/09/02(日) 02:18:17 ID:7PDrhNsf
少しはSDKガイドに目を通せよ
963名無しさん@お腹いっぱい。:2007/09/02(日) 02:31:15 ID:hKtTcruc
すみません。小僧の手習いなもので。
このところずっとSDKガイドを読んだりコピペ試しているのですが、なかなか…。
964名無しさん@お腹いっぱい。:2007/09/02(日) 06:15:44 ID:hKtTcruc
ボタンを十字に配置は自己解決しました。SpacerをRowで挟んでませんでした。すみません。
残りはまだわかりません。
ビットマップをカスタムプロパティで扱えるのはSPDLで書く、ビットマップウィジェット、siControlIconListのみという認識であってますか?
カステムプロパティ関連のSDKはすべて読んだと思うのですが。
965名無しさん@お腹いっぱい。:2007/09/02(日) 14:51:01 ID:zJgJSVYO
要らないポリゴン選んで別のマテリアル割り当てるとか。
966名無しさん@お腹いっぱい。:2007/09/02(日) 15:07:03 ID:uDvJh3fX
>>959
「クラスタの追加と削除」を勉強シル!
967名無しさん@お腹いっぱい。:2007/09/02(日) 15:41:34 ID:tXG7Tqn9
v5.11なんですが、>>700のLSCM Unwrappingのインストールってどうやるんですか?
dllの他にsoファイルってゆうのがあるんですが、これはどうすればいいんでしょうか?
968名無しさん@お腹いっぱい。:2007/09/02(日) 16:46:12 ID:7PDrhNsf
969名無しさん@お腹いっぱい。:2007/09/02(日) 17:08:55 ID:87dAnV2f
ボタンにビットマップ
できない アイコンリストに一つだけ表示させるのはスマートじゃないか
プロパティの横幅
できない 横幅変えるのそんな面倒か?

UI変更反映
プラグインに入れてると駄目 通常のプロパティならいくらでも新規で出せるからトライアンドエラーして本番に持ち込む
えー 俺もいまいち自身がない
970967:2007/09/02(日) 18:28:15 ID:tXG7Tqn9
>>968
すいません、見逃してましたorz
971名無しさん@お腹いっぱい。:2007/09/03(月) 00:08:30 ID:cbZ8pkAn
XSI道場の見かたがよくわからないです
972名無しさん@お腹いっぱい。:2007/09/03(月) 01:06:50 ID:LAhXz2jh
諦めてください
973名無しさん@お腹いっぱい。:2007/09/03(月) 01:47:33 ID:UBfPLu7j
僕もよくわからないですから安心してください
974名無しさん@お腹いっぱい。:2007/09/03(月) 02:39:08 ID:xnOckBXJ
>>969
ありがとうございます。ためになります。
SDKガイドしっかり読み込んでみます。
975名無しさん@お腹いっぱい。:2007/09/03(月) 13:02:01 ID:+AUKOl8i
みんな、何見て覚えてんの?付属の本だけでも一通り出来る様になりまつか?
976名無しさん@お腹いっぱい。:2007/09/03(月) 13:09:08 ID:z9D3vxkU
そろそろゴーゴーキャンペーンで買ったfndを触らないと。
977名無しさん@お腹いっぱい。:2007/09/03(月) 16:01:18 ID:s3qDrNmu
俺も。
978名無しさん@お腹いっぱい。:2007/09/04(火) 21:50:57 ID:mjOYn0lc
説明書設計してる本人もわかってないらしいので
どうしたら良いかご意見くださいとのこと。
979名無しさん@お腹いっぱい。:2007/09/05(水) 00:16:40 ID:SApkrW6C
じゃあ、付属の本見ても使えるようになれんの?みんな一体何で覚えてん?
学校行ってんの?んな金ないぞ?
980名無しさん@お腹いっぱい。:2007/09/05(水) 00:24:17 ID:7FPmH3L2
体で覚えてん・・・
冗談 マニュアルとヘルプと作りたいものがあれば普通に使えるようになると思うよ 最近は本家のビデオやyoutubeなんかもあるし
道具は使えるように作られているんだし見てればなんとなく分かるよ
981名無しさん@お腹いっぱい。
>>979
ソフトの操作覚えるためにわざわざ学校行くわけないだろ