MAXSCRIPT_Vol1at CG
MAXSCRIPT_Vol1 - 暇つぶし2ch95:名無しさん@お腹いっぱい。
04/12/16 23:35:04 w/9wxO44
さとうさんのスクリプト講座ってどこにあるんですか?
URL貼ってくれませんか?

96:40
04/12/17 01:01:33 0654/xYU
>>95
HALLUCINOフォーラムの「スクリプト講座をchmに」っていうスレッドにchm版がアップされてます。
ダウンロードには登録が必要ですのでURLは貼りません。

97:名無しさん@お腹いっぱい。
04/12/18 04:24:41 O/Kgcyuv
極論をいえば、ひとつひとつの意味は、なんとなく理解しているのかも
しれんが、アップしたスクリプトとのかかわりかた具合が、わからんのじゃない?


98:名無しさん@お腹いっぱい。
04/12/20 11:22:43 jxRJPalx
max5以降はリファレンスにチュートリアルもあるんで、それやれば理解が進む。
正直、scriptは自分で勉強する意思がないやつはやる必要なし。

99:名無しさん@お腹いっぱい。
04/12/21 00:46:03 tSLbRQpk
ipo

100:名無しさん@お腹いっぱい。
04/12/21 13:06:28 yMa6rVoM
MAXのスクリプトでシェーダーは書けないんでしょうか。
他のソフトのようにシェーダーツリーで色々カスタマイズしたいのですが。

101:名無しさん@お腹いっぱい。
04/12/21 15:12:45 mQCgdCDp
>>100
pluginScriptで書けなくはない。
以前はrenderman記述で書けるpluginScriptも存在した(もちろん対応している関数は少ない)
同じようなものでpluginのmaxShaderつうのもあった。
どちらも現在は開発は続いていない。maxでこんなこともできるかもってもんだった。実用性はあんまない。

ちなみに、シェーダーツリーはシェーダーを組むGUIであって、シェーダー自身を書くとかとは意味合いが違うだろ。
シェーダーをGUIで書けるツールだべ?
maxのマテリアルブラウザをスケマティック表示させたい、それをmaxScriptで作りたいってならboboさんとこですでにあるし、pluginでも存在してるよ。
ちなみに、boboさんのScriptは凄すぎ。ActiveXとかつかわないでmaxScriptでスケマティックを自前で描画してるw

102:名無しさん@お腹いっぱい。
04/12/22 22:46:54 BZc0vkhD
78>私の場合は、Bipedではなくて、シーンにカメラとライトを配置していて、そのカメラとライト両方を
  ヘルパーにリンクさせて、まわすのはどうすればいいでしょうか?


103:名無しさん@お腹いっぱい。
04/12/22 22:49:00 BZc0vkhD
ターゲットカメラとライトで、ターゲット固定(ターゲットを中心に)です。


104:40
04/12/23 03:03:33 Cjant1mf
>>102

pH = undefined
for n in cameras where classof n == Targetobject do (
pH = point pos:n.pos
exit
)
/*もしターゲットの命名規則が決まってて一意の名前である場合は上のforループの代わりに
pH = point pos:$Camera01.Target.pos
みたいにしてやった方がいいかもしれない*/
if pH != undefined do (
pH.rotation.controller = Euler_XYZ()
cameras.parent = lights.parent = pH
animationRange = interval 0 36
with animate on
for i = 1 to 4 do
at time (9 * i) pH.rotation.z_rotation += 90
pH.rotation.z_rotation.controller.keys[1].outTangentType = #linear
pH.rotation.z_rotation.controller.keys[5].inTangentType = #linear
)

例によって最初に見つけた(カメラの)ターゲットオブジェクトの位置にポイントヘルパーを作成してます。
ターゲットの名前が決まってたらforループ消してコメント内のコードの$ほげ.posのほげ部分をその名前に書き換えればおk。


105:102
04/12/23 15:34:56 c7oiyKn/
作成されるヘルパーが、必ず原点にくるようにするにはどうすればよいでしょうか?
複数カメラがある場合に、どれかのカメラのターゲットをランダムに選択するため
ヘルパーの位置が、変化していまいます。
ご教授よろしくお願いします。

106:102
04/12/23 17:45:59 c7oiyKn/
上記に加えて、モーフモデファイヤが仕込んであり、
上から順番に、ターゲット1:0-100-0 ターゲット2:0-100-0 ...
で、キーを打ち込んでいき、レンダリングしていくという仕様を
考えてるんですが、モーファモディファイヤのノードの記述方法が、
いまいちうまくいかず苦戦しています。
初歩的なことかもしれませんが、何卒よろしくお願いします。





107:40
04/12/23 19:15:42 06S7Eu8r
>>102
> 作成されるヘルパーが、必ず原点にくるようにするにはどうすればよいでしょうか?

ターゲット中心にって書いてたじゃん・・・
原点にヘルパー持ってくるだけなら
cameras.parent = lights.parent = pH
の上か下かに
pH.pos = [0,0,0]
を追加するだけ。
上に追加したらターゲット中心とは限らなくなるし
下に追加したら子オブジェクトごと移動するからね。

> モーファモディファイヤのノードの記述方法が、
> いまいちうまくいかず苦戦しています。

いまいちうまくいかずって・・・
もちっと具体的に書いてくれ。

108:102
04/12/23 22:26:37 c7oiyKn/
Morpher modifiersにフレーム数とチャンネルと値
を代入してキーを作成する方法がうまくいきません。

こんな感じで考えてるんですが。
以下。

$.modifiers[#Morpher][2].object
k = addNewKey $.modifiers[#Morpher][1].object
k.value = 0.8

チャンネル2のコントローラを取得して、
フレーム10に、0.8の値の入力という具合です。

これを前スレッドで書いたように、
例えば、最初の10フレームで、チャンネル2が100。次の10フレームで、チャンネル2
が0に戻り、チャンネル3が100になり、どんどん下のチャンネルまで下っていき、
各フレームでレンダリングしていくという感じです。

で、上記に合わせ、カメラとライトは、そのチャンネルが全て一順するまでは、
固定カメラで、一順終わると、カメラ、ライトが90度周り、
再び、上のチャンネルからキーが入っていき、レンダリングしていくという
工程を考えてます。

また複数カメラがある場合は、カメラ(Cam1、Cam2...カメラの名前はデフォルトの名前ではないです。)
ごとに、レンダリングをかけることはできるのでしょうか?

109:69です!!
04/12/24 00:46:16 PELn8VFb
ファイル名の変更のところでつまづいています。


edittext edt_filename "Filename" pos:[6,155] width:300
height:17

---以下略。

実行部分。
filename = (edt_filename.text + ".tif")

上のように、スクリプトを書き換えました。
この場合、複数MAXファイルがある場合に、
次々に、ファイル名が上書きされてしまいます。
MAXファイルごとにファイル名を決めたいと思ってます。
んー むずかしいでしょうか?
最悪、ファイル名をこちらで決めたもので、
あとのMAXファイルは、連番でつながっていくというような感じで
もいいかな。とは思ってます。。。

110:40
04/12/24 05:38:36 cZ3GLrJ4
>>108
activeCh = #() --アクティブなチャンネルのインデックスを格納
for i = 1 to 100 do
if $.modifiers[#morpher][i].object != undefined and WM3_MC_IsActive $.modifiers[#morpher] i do append activeCh i
newRange = interval 0 0
for i = 1 to activeCh.count do (
maxF = (i - 1) * 10
fArr = #(maxF-10, maxF, maxF+10)
for f in fArr do (
k = addNewKey $.modifiers[#morpher][activeCh[i]].object f
k.value = if f == maxF then 100. else 0.
)
if fArr[1] < newRange.start do newRange.start = fArr[1]
newRange.end = fArr[3]
)
animationRange = newRange
pH = point cross:false box:true size:100
cameras.parent = lights.parent = pH
for i = 1 to cameras.count where classof cameras[i] != Targetobject do (
viewport.setCamera cameras[i]
for i = 1 to 4 do (
--ここにレンダリング処理を入れる
--for f = animationRange.start to animationRange.end do (sliderTime = f; sleep (1./30)) --テスト
pH.rotation.z_rotation += 90
)
pH.rotation.z_rotation = 0
)

ややこしいのでとりあえず書いてみた。
キーはとりあえず100の値になるフレームを割り出してその両脇+-10Fを0にした。ここらへんは適当に。
あと3行目の「WM3_ほにゃらら」はmax5以降のメソッドなので4の人は注意。(4の時はエクステンションだったはず)

111:40
04/12/24 05:43:03 cZ3GLrJ4
>>109
maxファイルごとに名前変えたいんなら素直に
maxFileName + edt_filename.text + ".tif"
とかにすればいいんでないの?

とりあえずどんな命名規則でやってるのかも分からないんで
この程度の答えしか書けません。

112:102
04/12/24 11:14:22 PELn8VFb
実行部分を以下のように書き換えてみました。
そのまんまなんですが。。。

実行部分のみ--

on go_button pressed do
(

CloseRolloutFloater BRobot_batchRenderFloater
maxfiles = getFiles (browse_max_label.text + "\\*.max")
outputpath = (browse_output_label.text + "\\")
local arr = filterString ddl_outsize.items[ddl_outsize.selection] "x"

for i in 1 to maxfiles.count
do
(
loadMaxFile maxfiles[i]
filename = (getFileNameFile maxfiles[i] +".tif")
myoutput = (outputpath + filename)



113:102
04/12/24 11:15:25 PELn8VFb
続き

activeCh = #() --アクティブなチャンネルのインデックスを格納
for i = 1 to 100 do
if $.modifiers[#morpher][i].object != undefined and WM3_MC_IsActive $.modifiers[#morpher] i do append activeCh i
newRange = interval 0 0
for i = 1 to activeCh.count do (
maxF = (i - 1) * 10
fArr = #(maxF-10, maxF, maxF+10)
for f in fArr do (
k = addNewKey $.modifiers[#morpher][activeCh[i]].object f
k.value = if f == maxF then 100. else 0.
)
if fArr[1] < newRange.start do newRange.start = fArr[1]
newRange.end = fArr[3]
)


114:102
04/12/24 11:15:44 PELn8VFb
続き

animationRange = newRange
pH = point cross:false box:true size:100
cameras.parent = lights.parent = pH
for i = 1 to cameras.count where classof cameras[i] != Targetobject do (
viewport.setCamera cameras[i]
for i = 1 to 4 do (
pH.rotation.z_rotation += 90
)
pH.rotation.z_rotation = 0
)


myanim = render camera:$Camera01 outputSize:(point2 (arr[1] as number) (arr[2] as number)) pixelascept:1.0 imageaspept:1.333 fromframe:spn_from.value toframe:spn_to.value outputfile:myoutput
undisplay myanim
saveMaxFile maxfiles[i]
)



115:102
04/12/24 11:17:42 PELn8VFb
上のスクリプトを実行すると
以下のエラーがダイアログででました。

-- Unknown property: "modifiers" in undefined

プロパティがない? みたいなことをいわれます。
これは、どういうことなのでしょうか?

Verは、MAX6.Eです。

116:40
04/12/24 17:43:57 7yypda9c
>>112-115(>>102)

パス名リテラル
名前
ObjectSet値
MAXScriptトレーニング - ボックスの操作

あたりを読んでみて。
それでも分からなかったらどこが分からないか聞くといい。

ちなみにレンダリングの処理を書く場所が違ってる。

117:102
04/12/24 18:25:56 PELn8VFb
ありがとうございます。
リファレンスで、教えていただいた場所を読んでみました。

要するに、現在は、選択しているオブジェクトに対しての処理ということ
なんですね。 なので、シーンにあるオブジェクトの名前でイベントを
起こすように考えてみました。


$.modifiers→$*モーフモディファイヤがかかっているオブジェクトの頭文字*.modifiers

上のように処理を書き換えました。

リスナーで、エラーを確認しながらやっているのですが
下記のエラーがでています。activeChの行~pH.rotation.z_rotation = 0
)までで。


118:102
04/12/24 18:26:40 PELn8VFb
#()
-- Error occurred in i loop
-- Frame:
-- i: 1
-- Unknown property: "modifiers" in $$objects/.../*E01_Base*
(interval 0f 0f)
OK
-- Runtime error: animationRange cannot be set to a zero-length interval.
$Point_Helper:Point11 @ [0.000000,0.000000,0.000000]
$Point_Helper:Point11 @ [0.000000,0.000000,0.000000]

//続き

レンダリング処理とは、どこを差しているのでしょうか?

myanim←ここからの行のことを差しているのでしょうか?
インサートする場所が違うだけなのでしょうか?


119:102
04/12/24 20:15:38 PELn8VFb
オブジェクトを抽出するのが、できなかったので
直接オブジェクト名を指定しました。
そうすると、-- Unknown property: "modifiers" in undefinedの
エラーはなくなりました。

以下。

animationRange = newRange
pH = point cross:false box:true size:100
cameras.parent = lights.parent = pH
for i = 1 to cameras.count where classof cameras[i] != Targetobject do (
viewport.setCamera cameras[i]
for i = 1 to 4 do (
myanim = render camera:$Camera[i] outputSize:(point2 (arr[1] as number) (arr[2] as number)) pixelascept:1.0 imageaspept:1.333 fromframe:spn_from.value toframe:spn_to.value outputfile:myoutput
pH.rotation.z_rotation += 90
)
pH.rotation.z_rotation = 0
)

120:102
04/12/24 20:18:45 PELn8VFb
また、レンダリング処理の記述場所もわかりました。
書いて頂いてましたね。すいませんでした。

-- Error occurred in i loop
-- Frame:
-- i: 1
-- called in i loop
-- Frame:
-- filename: "MAY_Uqwqwq.tif"
-- myoutput: "D:\tmp\aaaa.tif"
-- myanim: undefined
-- i: 1
-- called in go_button.pressed()
-- Frame:
-- maxfiles: #("D:\Test\aaa.max")
-- arr: #("320", "240")
-- outputPath: "D:\tmp\"
>> MAXScript Rollout Handler Exception: -- No ""get"" function for undefined <<

また新たなエラーが発生しました。上のようなエラーです。

121:名無しさん@お腹いっぱい。
04/12/24 20:28:56 NhYORbEP
あのさあ、
どうでもいいけど下げてやってくんない?

122:40
04/12/24 22:12:59 +e2ZwavD
>>119(>>102)
モーフ対象のオブジェクトが確実に一つしか無いと分かっている場合は
($*E01_Base*)[1].modifiers
でいけると思う。
複数の場合は
mMod = for i in $*E01_Base* where i.modifiers[#morpher] != undefined collect i.modifiers[#morpher]
こんな感じでMorpherだけを集めて
for m in mMod do (
--for i = 1 to 100 do if m[i].object != undefined ~中略~ animationRange = newRange
)
こんな感じでキーを打っていけばいい。

>>120(>>102)
MAXScriptのエラーは訳分かんないことが多いね。
いろいろ想像するのは面倒なのでとりあえずコード書いておく。

for ang = 1 to 4 do (
--↑の i をfor i = 1 to cameras.count where~の<var_name>と被らないように変えて。じゃないとカメラが正しく指定できないから。
myoutput = outputpath + maxFileName + cameras[i].name + ((ang - 1) * 90) as string +".tif"
myanim = render camera:cameras[i] outputSize:(point2 (arr[1] as number) (arr[2] as number)) pixelascept:1.0 imageaspept:1.333 fromframe:spn_from.value toframe:spn_to.value outputfile:myoutput
undisplay myanim
pH.rotation.z_rotation += 90
)
saveMaxFile maxfiles[i]

後は自力でガンガレ。

123:102
04/12/24 23:16:52 PELn8VFb
//実行部分のみ

on go_button pressed do
(

CloseRolloutFloater RenderFloater
maxfiles = getFiles (browse_max_label.text + "\\*.max")
outputpath = (browse_output_label.text + "\\")
local arr = filterString ddl_outsize.items[ddl_outsize.selection] "x"

for i in 1 to maxfiles.count
do
(
loadMaxFile maxfiles[i]
filename = (getFileNameFile maxfiles[i])

124:102
04/12/24 23:17:29 PELn8VFb
--activeCh = #() --アクティブなチャンネルのインデックスを格納
for i = 1 to 100 do
if ($*E01_Base*)[1].modifiers[#morpher][i].object != undefined and WM3_MC_IsActive ($*E01_Base*)[1].modifiers[#morpher] i do append activeCh i
newRange = interval 0 0
for i = 1 to activeCh.count do (
maxF = (i - 1) * 10
fArr = #(maxF-10, maxF, maxF+10)
for f in fArr do (
k = addNewKey ($*E01_Base*)[1].modifiers[#morpher][activeCh[i]].object f
k.value = if f == maxF then 100. else 0.
)
if fArr[1] < newRange.start do newRange.start = fArr[1]
newRange.end = fArr[3]
)


125:102
04/12/24 23:18:06 PELn8VFb
animationRange = newRange
pH = point cross:false box:true size:100
cameras.parent = lights.parent = pH
for i = 1 to cameras.count where classof cameras[i] != Targetobject do (
viewport.setCamera cameras[i]
for ang = 1 to 4 do (

myanim = render camera:$Camera[i] outputSize:(point2 (arr[1] as number) (arr[2] as number)) pixelascept:1.0 imageaspept:1.333 fromframe:spn_from.value toframe:spn_to.value outputfile:myoutput
myoutput = outputpath + filename + cameras[i].name + ((ang - 1) * 90) as string +".tif"
undisplay myanim

pH.rotation.z_rotation += 90
)
pH.rotation.z_rotation = 0
)
saveMaxFile maxfiles[i]
)


126:102
04/12/24 23:21:42 PELn8VFb
上のような感じで、スクリプトを改造しました。

まだ、なにか原因不明のエラーがでます???

-- Error occurred in i loop
-- Frame:
-- i: 2
-- activeCh: undefined
-- called in i loop
-- Frame:
-- i: 1
-- activeCh: undefined
-- pH: undefined
-- newRange: undefined
-- filename: "※※※"
>> MAXScript Rollout Handler Exception: -- Unable to convert: Morpher:Morpher to type: AngleAxis <<

スクリプトのエラーがでてるのは、わかるのですが、
具体性にかけて、いったい何が悪いのか。。さっぱりです。。


127:102
04/12/24 23:25:18 PELn8VFb
($*E01_Base*)[1].modifiers
また、パス名のところを以下で書き換えてみたところ、

変更後→$E01_Base.[1].modifiers

-- Error occurred in i loop
-- Frame:
-- i: 1
-- called in i loop
-- Frame:
-- i: 1
-- activeCh: #()
-- pH: undefined
-- newRange: undefined
-- filename: "※※※"
>> MAXScript Rollout Handler Exception: -- Unknown property: "modifiers" in SubAnim:Visibility <<

というかんじにかわりました。

エラーの指摘個所は、いずれもこの行になります。
if ($*E01_Base*)[1].modifiers[#morpher][i].object != undefined and WM3_MC_IsActive ($*E01_Base*)[1].modifiers[#morpher] i do append activeCh i

どういったケースが考えられるでしょうか?
諸先輩方のお力をお貸しください。

128:69です!!
04/12/25 00:06:17 KQ8flVD+
ファイル名の規則性ですけど、
Bipdに一通りのアニメーションをつけています。
その一連のアニメーションをキーフレームごとに
レンダリングします。
それを、たとえば、フロントとサイドでレンダリングしたいと思います!

上の手順でいくと、フロントからのレンダリングを一通りBipedを
アニメーションさせて、一巡。カメラが、90度回転してサイドに行きます。
それで、また一巡してレンダリングしていきます。

なので、Front_01,02...(連番)Side_01,02..といった名前付けを
考えてみました。 Front、Sideなどの名前付けは、可能であれば
テキストボックスから入力したものに反映させてたいと思ってます!
(あらかじめ、プリセットするのではなくてですね。)
または、カメラ名から取得してもいいのかなぁ~とは思ってます。

108さんのモーフの取得は、上のスレッドを読みながら、
あたしも勉強がてら試してみてますけど、んー難易度高いですー。
すごいいっぱいエラーがでてます 笑

129:40
04/12/25 01:43:02 KOhVNH9a
>>127
MAXScriptの吐くエラーには、それこそ経験がないと原因が特定しづらいものも多いです。

これまでのあなたの書き込み内容から察するに、
処理的な話をする上で最低限必要な知識が欠けていると思われますので、
これ以上ここで問答を繰り返してもお互い徒労に終わる可能性が高いと思います。
ですので、もう少し簡単なスクリプトで経験なり知識を蓄えてから挑戦されてはどうでしょうか。
どうしても必要というのでしたら外部に委託して作ってもらうという手もあります。

私も一旦手を差し伸べた以上、途中放棄はしたくないのですが、
労力に見合うだけの対価(教えることで得られる何か)が得られない以上、
回答を続ける気にはなれません。

>>128
そうですか。
頑張ってください。

130:名無しさん@お腹いっぱい。
04/12/25 01:54:10 ch/46iy7
えらそうだけど、わかんないんじゃないの?>40


131:名無しさん@お腹いっぱい。
04/12/25 01:54:59 ch/46iy7
見返りがほしいの?>40


132:名無しさん@お腹いっぱい。
04/12/25 02:08:29 vz2dx0gi
>>40
レス追っていけば分かるというか
40も分かってると思うけど上げて質問してるアホは1でしょ。
よくがんばったと思うよ。
 
>>131
コミュニティはリソースのギグアンドテイクで成り立つんだよ。
お前みたいな他人を利用することしか考えない乞食は邪魔なだけ。

133:40
04/12/25 03:10:57 KOhVNH9a
>>130>>131
> えらそうだけど、わかんないんじゃないの?>40
わかんないよ。
エラー出力書かれて漠然とした質問されてもまともな回答なんて出来ない。
だったら分かってる範囲で回答するしかないじゃない。

> 見返りがほしいの?>40
否定はしない。

教えることで得られる何かってのは
例えば教えるために調べることで自分も勉強になったり、
分かってもらえた時の喜びとかそういう他愛もない自己満足的なもの。

もちろん初めからそういった見返りを要求してたら成り立たないけど、
回を重ねると事情も変わってくるよ。人間だからね。
答える方だってそれなりに時間を割いてるわけだし。


134:名無しさん@お腹いっぱい。
04/12/25 12:13:54 ch/46iy7
102は、確かに悪だ。 しかし、ソースを試してみてん。
簡単なシーンで、モーフを登録してね。

確かに、その箇所で、エラーがでるぞ。
間違いない。 40は、実際試してみて、ソースをあげてるのかい?
自分の目でみてみてん。 想像で書いても、スクリプタとはいえんぞい。


135:40
04/12/25 16:40:26 FMKIgUQc
>>134
Sphereを5つ作ってEditable_meshに変換後、1つ目に作ったSphereにMorpherを適用。
各チャンネルにはあとの4つのSphereをそれぞれ格納。
以上のようなシーンで以下のコードを実行したがエラーは出ない。

for i = 1 to 5 do ( --maxfiles.countの代わり
activeCh = #() --アクティブなチャンネルのインデックスを格納
for i = 1 to 100 do
if ($*sph*)[1].modifiers[#morpher][i].object != undefined and WM3_MC_IsActive ($*sph*)[1].modifiers[#morpher] i do append activeCh i
format "i:% activeCh:%\n" i activeCH
newRange = interval 0 0
for i = 1 to activeCh.count do (
maxF = (i - 1) * 10
fArr = #(maxF-10, maxF, maxF+10)
for f in fArr do (
k = addNewKey ($*sph*)[1].modifiers[#morpher][activeCh[i]].object f
k.value = if f == maxF then 100. else 0.
)
if fArr[1] < newRange.start do newRange.start = fArr[1]
newRange.end = fArr[3]
)
animationRange = newRange
)

これまでに提示してきたコードもあくまでアドバイスとして要所要所の考え方をコードとして提示しているに過ぎない。
提示されたアドバイスを読み解いてちゃんと動作するようにするのは質問主のすべきこと。

136:名無しさん@お腹いっぱい。
04/12/26 01:14:25 eYoc//mn
ちなみVerはいくつやん?>135
俺ンとこも駄目だったぞ?

うちは、MAX6の英語バージョン


137:40
04/12/26 02:32:49 336kiAqh
>>136
max6英語版です。

どこが引っかかってるんだろう・・・
特にエクステンションが必要なわけでもないし。
とりあえずうちではmax6E・max5E共にちゃんと動くしなぁ・・・


138:136
04/12/26 04:09:24 KOhTlVIY
なんか、マシンによってエラーがおきたり、おきなかったり、
なにか衝突するプログラムがあるのかもねぇ。。
ま。MAXですから。。

ようわからんわ。


139:40
04/12/26 04:27:46 S0khontO
MOMOに書き込まれちゃってるみたいなんで、
勝手ながらこの辺でこの話題からは抜けさせてもらいます。
なんかややこしいことになっちゃってゴメンネ

140:名無しさん@お腹いっぱい。
04/12/26 19:44:46 KOhTlVIY
ほ?


141:名無しさん@お腹いっぱい。
04/12/27 15:22:57 V7T2foWg
まぞで低レベルだな。。
>>40もムキになって答えんなよ。
あんたの回答を質問したやつはほとんど理解してないとおもわれ。
つうか、理解できる程度の知能があるやつは最初からリファレンスなりで自力で解決できてる。
その程度の内容のことで自己解決できないやつは、何をやってもダメぽ。

142:名無しさん@お腹いっぱい。
04/12/30 22:20:38 PfXs4Vxb
ooo

143:名無しさん@お腹いっぱい。
05/01/03 01:05:48 M55ds7UU
hu

144:名無しさん@お腹いっぱい。
05/01/04 12:23:22 i3ERclvD
はん


145:名無しさん@お腹いっぱい。
05/01/14 05:03:19 Gw14vC6K
うん

146:名無しさん@お腹いっぱい。
05/01/23 13:24:08 B/ZrynHg
yu

147:名無しさん@お腹いっぱい。
05/01/30 00:54:51 3Y/69Adl
Rs

148:名無しさん@お腹いっぱい。
05/01/30 00:55:28 3Y/69Adl
Rs

149:名無しさん@お腹いっぱい。
05/02/26 22:44:52 X1lrvR6u
yu

150:名無しさん@お腹いっぱい。
05/05/15 16:16:20 cs1r6F9M
C4DのCoffeeみたいな使い方できねーの?

151:名無しさん@お腹いっぱい。
05/05/15 19:27:51 DpYezSir
具体的に何がしたいねん
いうてみーな

152:名無しさん@お腹いっぱい。
05/05/16 14:02:22 9KUTM0eo
方向コンセントレイトとかバインドみたくIKと絡ませたい

153:名無しさん@お腹いっぱい。
05/05/16 15:17:27 /1xf8E/z
それのどこが具体的やねん
だいたい、コンセントレイトってなんや
なにがしたいんかさっぱりわからんわ

154:名無しさん@お腹いっぱい。
05/05/16 18:42:30 LtyvpmBF
>>150
試しにC4Dでどうやるか、その式を書いてみろ

155:名無しさん@お腹いっぱい。
05/05/16 21:11:14 GpPh55tL
コンセントレイント。
お笑いコンビのセント☆ルイスみたいなもんか?
それは難しそうだ。

156:名無しさん@お腹いっぱい。
05/05/16 23:02:39 9KUTM0eo
Coffeeで計算した座標をIKのターゲットにしたいだけだよ
こんな感じで URLリンク(junkuser.hp.infoseek.co.jp)


maxで同じ事やろうとしたけど変換前の座標拾っちゃうんだよ。

157:名無しさん@お腹いっぱい。
05/05/16 23:44:32 tGxvuD7u
C4Dもってねーから見られへんけど
要するにターゲットオブジェクトをスクリプトコントローラー
とかで動かしたいんか?それならdependsOnかまさなあかんで。
詳しくはマニュアルの「スクリプト コントローラ用 dependsOn」
あたりやな

158:名無しさん@お腹いっぱい。
05/05/16 23:55:13 9KUTM0eo
>>157
あなたは神かもしれない~
dependsOnっすね!
とりあえず読んでみます!試してみます!

159:名無しさん@お腹いっぱい。
05/05/17 00:42:26 RLpW1hoZ
最初っから敬語でちゃんと必要事項を書いて質問すりゃ早いのにな。

160:名無しさん@お腹いっぱい。
05/05/17 15:44:50 7zxqnVFI
たぶん、scriptコントローラーでなくて式コントローラーで間に合う程度の計算な予感。。

161:151
05/05/17 22:03:04 OW7A3Ad5
どーも151です
ソルバを使った関節からrotationが読み出せないで詰まってました
方向セントルイスだとリンクできるんだけどね

>>160
関節が2重3重になってんのよ~プラモによくあるっしょ
肩がX回転 肘のX回転の2重関節 上腕部でバンク回転とか

式コントローラーはIKと併用できなかったよ?
dependsOn教えてもらってからスクリプトコントローラーで出来たけど

>>159
必要事項をまとめられる知識があったらHelpから引いてるよw
まじ>>157に感謝ですよ。

162:名無しさん@お腹いっぱい。
05/05/17 22:32:11 5LbITx48
うまくいったんなら良かったやん
けど、そういうのならエクスポーズTmと
リアクションコントローラーだけでいけそうな気もすんな。
7はあんまり使うてへんからよーわからんけど。
なんにせよ、情報出し惜しみされると答えにくいわw


163:名無しさん@お腹いっぱい。
05/05/18 12:46:43 9vmhxcFV
>>157
dependsOnてカレントフレームでScriptを評価させるだけでないの?
次フレームに進めれば評価されるわけだから、別にdependsOnつかわなくても成立しない?
操作をダイレクトにしたい(いちいち次フレームに進めて評価させるのかったるい)ってことだけでdependsOnつかってるだけ?

164:名無しさん@お腹いっぱい。
05/05/18 15:46:45 JQV997Dc
dependsOn $Point01.transform.controller;

とかすると従属関係が明確になるみたいですよ?太字になる。
効率上がるしね

>>162
いやーすまんこ(>_<ゞ

スクリプトコントローラーが言う事きかなくて・・・最初はそれだけ
教えてもらってとってもブレイクスルー♪

165:名無しさん@お腹いっぱい。
05/05/18 16:45:33 9vmhxcFV
>>164
コーディングスタイルの問題なんだけど、maxScriptの場合、式の末尾に;っていらなくても大丈夫じゃない。
でも、人のコード読むときは、;があると随分読みやすいよね。
特にif文やswich文なんかだと。
なんで、このスレの住人だけでも文末は;をつけよう推奨してよん。

166:名無しさん@お腹いっぱい。
05/05/20 02:37:13 556nVrKr
>>165
 お 断 り だ ! ;



167:名無しさん@お腹いっぱい。
05/05/22 22:06:14 JifNFWYR
IKで作った角度をmaxscriptでアクセスできないとかぶーたれてたわけですが
coordsys で変換軸を指定してなかったのが敗因だったもようです

お手数かけましたw

168:名無しさん@お腹いっぱい。
05/10/22 22:46:03 WHmRJmqZ
いえいえ

169:名無しさん@お腹いっぱい。
06/05/31 23:02:59 Frdw45AH
現在 max のプラグインを製作中の者です。
NURBS の曲面とある座標をとの距離を求めたいのですが、
どのようにしたらよいのでしょうか?

170:名無しさん@お腹いっぱい。
06/06/11 18:46:39 syds5UWa
どうなのよ


171:名無しさん@お腹いっぱい。
06/09/12 02:02:58 DfRZzxQz
$.material.diffusemap.filename = "c:/bbb.jpeg"
)
)

172:名無しさん@お腹いっぱい。
06/09/12 21:44:49 L/uFbCQg
>>171

スラッシュはエスケープ文字だから、
"c://bbb.jpeg"
としないと駄目だよw

173:名無しさん@お腹いっぱい。
06/09/17 23:43:17 4QiIeya5
シンプルなサンプルコードをたくさん読みたいのですが、
適当なサイトが見つかりません。
オブジェクトをひとつずつ処理するとか、位置情報を書き出すとか、
そういうシンプルなのどこかに無いでしょうか?

174:名無しさん@お腹いっぱい。
06/09/18 06:05:06 NZR4a7It
レコーダーの記録見たら?

175:名無しさん@お腹いっぱい。
06/09/18 18:09:27 H/4zw7Uu
いろいろ探したけど、さとうさんのしか見つからないです。
そもそも、公開するのが恥ずかしいくらいの短いスクリプトは、誰も公開したがらないってことなんでしょうか?...。



176:名無しさん@お腹いっぱい。
06/09/20 14:02:54 ++ZisKGN
>>173
公開するまでもないからなw
それに大抵リファレンスとmaxに付属してるscriptサンプルに載ってるし

>>174
対応してない命令も多いし、バグコード吐くことも多いよ
まぁ、とっかかりには悪くない

>>173
何が知りたい?
教えてやるぜ。
-----選択してるオブジェクトの位置情報書き出し---------------
debug = newScript()

for i in selection do
(
local TM = i.objectTransform
format "name:% pos:% rot:% scale:% \n" i.name TM.translationpart TM.rotationpart TM.scalepart to:debug
)

177:名無しさん@お腹いっぱい。
06/09/21 00:03:54 M6XjoFd2
8で付いたデバッガって皆使ってる?
いまいち使いどころ(使い方も)がよく分からんのだが・・・

こういう場合に使うと(・∀・)イイ!!って例ある?

178:名無しさん@お腹いっぱい。
06/09/21 01:15:56 bMeMN2Nk
>>176
ありがとうございます。
こういう数行のやつがとっかかりやすいですね。



179:名無しさん@お腹いっぱい。
06/09/21 03:45:45 3m0pdSEO
>>177
関数を再帰的に呼び出してる時のチェックや、構造体や配列の中身をウォッチする時とか。

180:名無しさん@お腹いっぱい。
06/09/21 21:47:01 X8sG1n1e
>>179
そんなもんformat使った方が自由度高くていいじゃん・・・って思ってしまう。
もっとデバッガにしかできない便利な使い方ってないの?

181:名無しさん@お腹いっぱい。
06/09/21 22:34:43 rgN92/H0
printデバッグのほうが面倒だと思うけど・・・

>もっとデバッガにしかできない便利な使い方ってないの?
breakして変数書き換えとか

182:名無しさん@お腹いっぱい。
06/09/22 14:20:03 WoZcG4Db
>>180
逆に聴くけど、何があったら便利だとおもってるの??

>>181
そうだね、break使えるのは嬉しいね。

183:180
06/09/22 21:42:41 2Ox504s/
>>182
それが分からないから聞いてるんだけど・・・

184:名無しさん@お腹いっぱい。
06/09/23 05:55:08 qYzXG9uc
>>180は無理にデバッガ使わなくていいよ
自分でいろいろ使って何が便利かわからないなら、しょうがないwww



185:名無しさん@お腹いっぱい。
06/09/24 21:32:03 HfQkFOvG
UVWMapモデファイアのギズモを90度回転させるにはどう書いたらいいっすか?


186:名無しさん@お腹いっぱい。
06/09/24 22:18:30 LoBkf16C
>>185
$.modifiers[1].gizmo.rotation.x_rotation += 90

187:名無しさん@お腹いっぱい。
06/09/24 22:51:38 zsptAofM
良スレsage

188:名無しさん@お腹いっぱい。
06/09/24 23:12:59 HfQkFOvG
>>186
でけました!ありがとうございます。

189:名無しさん@お腹いっぱい。
06/09/25 12:29:20 vhkyfxZ/
>>185
そんくらいマクロレコーダーで吐き出せるだろwww

と思って試したが、
それすら吐き出せないマクロレコーダーに失望した


190:名無しさん@お腹いっぱい。
06/09/25 12:43:51 ZFHVi/yy
マクロレコーダーが万能だと思ってる人は、自分でスクリプトを書こうとしたことが無い人ですよ。

191:名無しさん@お腹いっぱい。
06/09/25 12:51:16 6TVfcSJu
ほんとMAXのレコーダーはガチで飾りだよな。。。

192:名無しさん@お腹いっぱい。
06/09/25 12:55:52 v/KT0PWY
ガチムチレーダー搭載

193:名無しさん@お腹いっぱい。
06/09/25 21:55:45 IG1QUNnB
マクロレコーダーが飾りとか言ってる奴は
まだまだ経験不足だと思ったほうがいい。

194:名無しさん@お腹いっぱい。
07/01/06 18:47:38 REW6/hxJ
うわぁ、過疎スレですねぇ...。

195:名無しさん@お腹いっぱい。
07/01/06 21:53:30 gtvSVqQa
たしかに過疎ってるな。
しょうが無いから三ヶ月以上前の話題にレスしとくと、
マクロレコーダは飾りじゃないが、肝心な時に役に立ってくれ無かったりする微妙に憎たらしい奴。

196:名無しさん@お腹いっぱい。
07/01/07 02:48:08 CZlb6Lxc
scriptとは行かないまでも
最近式コントローラーとかをなんとか弄って頑張っています。
ハルシノと睨めっこしながらですが・・

そのうちサクサクscript書けるようになりたいです。

197:名無しさん@お腹いっぱい。
07/04/13 02:41:52 Hf/JQ3yi
for i in >>1-196 do

198:名無しさん@お腹いっぱい。
07/04/14 14:10:18 9iJBZ1Wk
-- Syntax error: at >, expected <factor>
-- In line: for i in >>1-196 do


199:名無しさん@お腹いっぱい。
07/04/14 14:20:28 9iJBZ1Wk
(
if (classOf MAXSCRIPT_VOl1)==Array do
  (
   mapped fn resOutput res =
    (
    format "% 名前: % [%] 投稿日:% ID:% \n % \n" res.index res.name res.mail res.data res.id res.text
    )

  resOutput MAXSCRIPT_VOl1
  )
)

200:名無しさん@お腹いっぱい。
07/04/14 14:36:17 9iJBZ1Wk
messageBox "保守" title:"名無しさん@お腹いっぱい。" age:true

201:名無しさん@お腹いっぱい。
08/06/19 17:42:15 ygr/I/SO
messageBox "保守2" title:"名無しさん@お腹いっぱい。" age:true

202:名無しさん@お腹いっぱい。
08/07/31 19:09:35 MPS0TRxC
exit

203:名無しさん@お腹いっぱい。
08/07/31 20:32:58 tZ0E5dUm
box()

204:名無しさん@お腹いっぱい。
08/11/05 21:25:54 76SQPMp8
良スレage

205:名無しさん@お腹いっぱい。
08/11/11 16:17:00 r6M3elYI
最近maxscriptを触り始めたばかりなのですが、
URLリンク(kazu001.blog66.fc2.com)
に記載されている
「親ボーンを曲げたら子ボーンも自動的に同じ角度だけ曲がるようにしておけば便利」
が、どのようにすればうまくいくのかが分かりません
分かる方、いっらしゃいましたら教えて下さい

206:205
08/11/11 16:23:04 r6M3elYI
>>205
細かい点ですが、
×いっらしゃいましたら → ○いらっしゃいましたら

207:名無しさん@お腹いっぱい。
09/01/19 23:55:14 l5zDWz/E
meditMaterials[1]のDiffuse colorの彩度を調整するには
どう書いたらいいんですか?

208:名無しさん@お腹いっぱい。
09/01/20 03:02:30 IZ96qLzi
meditMaterials[1].diffusecolor.saido = <float>

209:名無しさん@お腹いっぱい。
09/01/20 14:36:49 fDmQp2Qg
>>208
同じように書いてみたんですけど、マテリアルエディタの色は変わんないんです。
meditMaterials[1].diffusecolor.saturation = 200にしても彩度が200になんないし。
リスナーには200 OKとか出るんですけど。
何が違うんでしょうか?

210:名無しさん@お腹いっぱい。
09/01/21 00:46:00 Up9QjwNc
>>209
君はリファレンスとか見ない人?
見られない理由でもあるの?
信仰上の理由とか?

211:名無しさん@お腹いっぱい。
09/01/21 12:03:14 9OSkWqRQ
>>210
リファレンスとかネットとかで調べてるんですけど分からなくて。
でもリファレンスに書いてあるんですね。
皆さんもっと熟読してるんですね。
分かりました。

212:名無しさん@お腹いっぱい。
09/01/21 23:12:58 TLS7jrms
>>211
ばっちり書いてあるし別に熟読しなくても直ぐに見つかるよ。

と、突き放してもいいんだけど、初心者のころって確かに
何が分からないかもよく分からなかったり、調べ方すら分からなかったりするよね。

とりあえずそういう人は疑問に思ったらリスナーに以下を入力してみて欲しい。
大抵の場合はこれで突破口が開けるはずだ。

classof <調べたいもの>
show <調べたいもの>


213:名無しさん@お腹いっぱい。
09/01/22 21:43:33 VwRFfo+u
>>212
ありがとうございました。
取りあえずclassof、showをからじっくり探って行こうと思います。
レスくれて感謝です。


214:名無しさん@お腹いっぱい。
09/02/06 01:11:41 AoCDsP5+
ちょっと端的に聞いてみるけれど、モーションデータにオブジェクトを同調させるスクリプト知らまいか?

215:名無しさん@お腹いっぱい。
09/02/06 02:05:38 Nbtx0/3/
モーションデータ
オブジェクト
同調


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch