1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Вопрос по "запеканию" анимации сплайна

Тема в разделе "Анимация", создана пользователем Quedas23, 9 сен 2014.

Модераторы: Артер
  1. Quedas23

    Quedas23 Активный участник

    С нами с:
    10.12.2007
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    5
    Добрый день. У меня вопрос по бэйкингу анимации сплайна.

    Суть в следующем - есть 2 объекта:

    1) Poly mesh, с применённым модификатором Flex. При нажатии на play animation, он всячески красиво болтается и т.д.

    2) Spline, расположенный внутри первого объекта. К этому сплайну применен модификатор Skin wrap и он повторяет все движения первого объекта с флексом.

    Вопрос - как закийфрэймить вертексты сплайна, чтобы он сохранил все движения, но уже без первого объекта с флексом?

    Пробовал различные baking - скрипты - ничего не помогло.

    Спасибо.
     

    Вложения:

  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Я заменил одну команду в скрипте Bake Spline Animations.
    Попробуйте использовать его. Код скрипта находится ниже:
    Код:
    /*         script by Yegor Tsyba        */
    /*        http://www.shiva3d.net/       */
    
    macroScript BakeSplineAnimation
    	enabledIn:#("max")
    	category:"Shiva Tools"
       	toolTip:"Bake Spline Animation"
    	buttonText:"Bake Spline Animation"
    (
    
    global BakeSplineAnimation_ui
    	
    try destroyDialog BakeSplineAnimation_ui catch()
    	
    
    
    	rollout BakeSplineAnimation_ui	"Bake Spline Animation"
    	(
    		spinner range_st "Frame range:" type:#integer range:[-10000,10000,0] pos:[5,0] fieldWidth:40 
    		spinner range_end "to" type:#integer range:[-10000,10000,100] pos:[120,0] fieldWidth:40 
    		edittext suffix_new_txt "  New name suffix:" fieldWidth:100 pos:[5,20] text:"_Baked"
    		edittext suffix_old_txt "Origin name suffix:" fieldWidth:100 pos:[5,40] text:"_Original"
    		checkbox	chk_del	"Delete original"	pos:[5,60]	checked:false
    		checkbox	chk_reduce	"Reduce keys"	pos:[100,60]	checked:false
    		button btnBake "-=/ Bake! /=-" pos:[5,80] width:190 height:25 enabled:true
    		hyperLink homepage "www.shiva3d.net" address:"http://www.shiva3d.net/" pos:[55,105] 
    		
    		on BakeSplineAnimation_ui open do
    		(
    			range_st.value = animationRange.start
    			range_end.value = animationRange.end
    		)
    		
    		
    		on btnBake pressed do
    		(
    			objs = $selection
    			
    			
    			-- Shape filter --
    			local new_objs = #()
    			for o = 1 to objs.count do (
    				shp = copy objs[o]	
    				if (convertToSplineShape shp) != undefined then append new_objs objs[o]
    				delete shp
    			)
    			objs = new_objs
    			
    			new_objs = #()
    			-- Backe --
    			if objs.count > 0 then
    			(
    				
    				ProgressStart ("Baking... " + objs.count as string + " Object(s)")
    				-- print "Start baking..."
    				
    				for o = 1 to objs.count do (
    					
    					print objs[o].name as string
    					
    					source_obj = objs[o]
    					shp = copy source_obj
    					if (convertToSplineShape shp) != undefined then (
    						shp.name = source_obj.name + suffix_new_txt.text
    						append new_objs shp						
    						source_obj.name += suffix_old_txt.text
    						animateVertex shp #all
    						--print objs[o].name
    						
    						for t in (range_st.value as time ) to (range_end.value as time ) by 1 do (
    							
    							--shp2 = copy source_obj
    							maxOps.cloneNodes source_obj cloneType:#copy newNodes:&nnl; shp2=nnl[1]
    							at time t convertToSplineShape shp2
    							animateVertex shp2 #all
    							-- print t
    							for i in 1 to shp[4][#Master].numsubs do (
    								local k = addNewKey shp[4][#Master][i].controller t
    								k.value = shp2[4][#Master][i].value
    							)
    							delete shp2
    							
    							progressUpdate t
    							
    						)
    
    					) else (
    					delete shp
    					print "...Its not shape. Skiped."
    					)
    					
    					
    				)
    				ProgressEnd()
    				
    				-- Deleting originals --
    				if chk_del.checked == true then delete objs
    				
    				-- Key Reducing --
    				if chk_reduce.checked == true do (
    					ProgressStart ("Redcing keys... " + new_objs.count as string + " Object(s)")
    					for o = 1 to new_objs.count do (
    						shp = new_objs[o]
    						for i in 1 to shp[4][#Master].numsubs do (
    							reduceKeys shp[4][#Master][i].controller 0.1 1f (interval range_st.value range_end.value)
    						)
    							
    					)
    					ProgressEnd()
    				)
    				
    			)	else messagebox "No shapes selected!"
    		
    			
    			
    		)
    		
    		
    		
    	)
    	
    
    createDialog BakeSplineAnimation_ui 200 120 ( mouse.screenpos.x - 100 ) ( mouse.screenpos.y - 20 )
    )
     
    Quedas23 нравится это.
  3. Quedas23

    Quedas23 Активный участник

    С нами с:
    10.12.2007
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    5
    Спасибо, заработало!
     
Модераторы: Артер

Поделиться этой страницей