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 )
上のように、スクリプトを書き換えました。 この場合、複数MAXファイルがある場合に、 次々に、ファイル名が上書きされてしまいます。 MAXファイルごとにファイル名を決めたいと思ってます。 んー むずかしいでしょうか? 最悪、ファイル名をこちらで決めたもので、 あとのMAXファイルは、連番でつながっていくというような感じで もいいかな。とは思ってます。。。 01104004/12/24 05:38:36ID: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 )
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)
011310204/12/24 11:15:25ID: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] ) 011410204/12/24 11:15:44ID: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 )
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 ) 012010204/12/24 20:18:45ID: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 <<
また新たなエラーが発生しました。上のようなエラーです。 0121名無しさん@お腹いっぱい。04/12/24 20:28:56ID:NhYORbEP あのさあ、 どうでもいいけど下げてやってくんない? 01224004/12/24 22:12:59ID:+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 ) こんな感じでキーを打っていけばいい。
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]) 012410204/12/24 23:17:29ID: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] ) 012510204/12/24 23:18:06ID: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 (
-- 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
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 )
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 ) 0177名無しさん@お腹いっぱい。2006/09/21(木) 00:03:54ID:M6XjoFd2 8で付いたデバッガって皆使ってる? いまいち使いどころ(使い方も)がよく分からんのだが・・・