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

Анимация световой иллюминации

Тема в разделе "Анимация", создана пользователем McRAY, 21 окт 2010.

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

    McRAY Знаток

    С нами с:
    30.03.2008
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    32
    Люди помоги мне понять как можно сделать анимацию стены из фонарей, чтоб они в определенный промежуток времени хаотично загорались и гасли, и чтоб все одновременно загорались.
    Тут наверно надо задействовать какие то скрипты или контроллеры...

    помогите кто чем может, я вообще не могу сообразить и ничего найти подходящего в инете.

    ЗАРАНЕЕ БЛАГОДАРЕН !!
     
  2. Deruz

    Deruz Знаток

    С нами с:
    06.10.2008
    Сообщения:
    2.070
    Симпатии:
    46
    Баллы:
    77
    Скопируй отсюда код, вставь в блокнот и сохрани с расширением "ms", например, RandomVizGen.ms
    Также можешь в сети поискать "spookylights".

    Код:
    -- RandomVizGen
    -- By Nik Clark http://www.nikclark.com zzubnik@hotmail.com
    -- 
    -- This script is for creating random visibility animations
    --
    --
    -- to do
    -- help, multiple slections only warning, try and catch, color of bar
    -- add "blink in" from spookylights fluorescent light
    --
    
    --macroScript RandomVizGen category:"nikclark.com"
      (
    	global startFrame = animationRange.start
    	global endFrame = animationRange.end
    
    	-- type 1
    	min = 5
    	max = 5
    
    	-- type 2
    	minOnDuration = 1
    	maxOnDuration = 8
    
    	minAppearanceNum = 1
    	maxAppearanceNum = 2
    
       (
        rollout Controls "Controls"
     	(
     	 
    	 	group "Type 1 - many visible"
      			(
      				spinner s_min1 "minimum duration" range:[1,1000,5] scale:1 width:80 align:#right
      				spinner s_max1 "maximum duration" range:[1,1000,5] scale:1 width:80 align:#right	
    
    
    				button p_type1 "Go" across:2
    				checkbox c_autoPlay1 "autoplay" checked:true height:20
       			)
    			
    			
    		group "Type 2 - few visible"
      			(
      				spinner s_min2 "minimum visible duration" range:[1,1000,1] scale:1 width:80 align:#right
      				spinner s_max2 "maximum visible duration" range:[1,1000,8] scale:1 width:80 align:#right	
    				
      				spinner s_minApp2 "minimum appearences in animation" range:[1,10,1] scale:1 width:110 align:#right
      				spinner s_maxApp2 "maximum appearences in animation" range:[1,10,2] scale:1 width:110 align:#right
    
     				button p_type2 "Go" across:2
    				checkbox c_autoPlay2 "autoplay" checked:true height:20
    			)
    			
    		group "Playback"
      			(
    				button c_play "Play" across:5
      				button c_stop "Stop" width:37
      				button c_rew "Rew" align:#right
    				button c_fr "<" align:#right width:37
    				button c_ff ">" align:#right width:37
    				progressBar p_bar value:100 color:green --.value
    				label t_1 "Ready" align:#center
       			)
    
    ------------ program functions
    
    -- Pre-op functions
     fn preop =
     	(
      	setWaitCursor()
      	disableSceneRedraw()
      	set animate on
     	)
     
    -- Post-op functions
     fn postop =  	(
      	enableSceneRedraw()
      	redrawViews()
      	set animate off
      	)
    	
    -- sets all visibility keys to off
     fn clearout =  (
    	t_1.text = "Preparing keys"
    	set animate on
    	disableSceneRedraw()
    	p_perc=100/(endFrame-startFrame)
    	p_bar.value = 0
    	for t = startFrame to endFrame do
    		(
    		p_bar.value  += p_perc
    		slidertime = t
    		for I = 1 to selection.count do
    			(
    			$[i].Visibility = false
    			$[i].Visibility.controller = tcb_float ()		
    			$[i].visibility = off
    			)
    		)
    	enableSceneRedraw()
    	redrawViews()
    	set animate off
    	)
    
    fn clearout2 =
    	(
    	for dc = 1 to selection.count do
    		(
    		deleteKeys $[dc] #allkeys
    		)
    	)
    	
    -- creates type 1 random visibility
    fn vizzer1 = (
    	t_1.text = "Processing"
    	clearout2()
    	if selection.count > 1 then
    	(
    	p_perc=100/selection.count
    	p_bar.value = 0
    	for d = 1 to selection.count do
    		(
    		p_bar.value  += p_perc
    		$[d].Visibility = false
    		$[d].Visibility.controller = On_Off ()
    		f=0
    		while f < endFrame do
    			(	
    			sliderTime = f 
    			c = random 0 1 
    			if c > 0.5 then $[d].visibility = on
    			else $[d].visibility = off
    			f = f + random min max
    			)
    		)
    	
    	enableSceneRedraw()
    	redrawViews()
    	set animate off
    	slidertime = 0
    	t_1.text = "Ready"
    	if c_autoplay1.checked do (playanimation())
    	)
    	
    	else
    	
    	(
    	for f = startFrame to endFrame do
    		(
    			sliderTime = f 
    			c = random 0 1 
    			if c > 0.5 then $.visibility = on
    			else $.visibility = off
    		)
    	)
    	)
    
    
    
    
    
    -- creates type 2 random visibility
     fn vizzer = (
    	t_1.text = "Processing"
    	disableSceneRedraw()
    	set animate on
    	p_perc=100/selection.count
    	p_bar.value = 0
    	for a = 1 to selection.count do
    	(
    		p_bar.value  += p_perc
    		for b = 1 to (random minAppearanceNum maxAppearanceNum) do
    			(
    				slidertime = random startFrame endFrame --as integer
    				for c = 1 to (random minOnDuration maxOnDuration) do
    					(	
    					slidertime +=1
    					$[a].visibility = on
    				)
    			)
    	)
    	enableSceneRedraw()
    	redrawViews()
    	set animate off
    	slidertime = 0
    	t_1.text = "Ready"
    	if c_autoplay2.checked do (playanimation())
    	)
    
    
    
    ------------ actions
    
    -- type 1 min spinner
    	on s_min1 changed value do
    	(
    	min = s_min1.value
    	)
    
    -- type 1 max spinner
    	on s_max1 changed value do
    	(
    	max = s_max1.value
    	)
    
    
    
    -- type 2 min spinner
    	on s_min2 changed value do
    	(
    	minOnDuration = s_min2.value
    	)
    
    -- type 2 max spinner
    	on s_max2 changed value do
    	(
    	maxOnDuration = s_max2.value
    	)
    	
    
    -- type 2 min appearance spinner
    	on s_minApp2 changed value do
    	(
    	minAppearanceNum = s_minApp2.value
    	)
    
    -- type 2 max appearance spinner
    	on s_maxApp2 changed value do
    	(
    	maxAppearanceNum = s_maxApp2.value
    	)	
    	
    
    -- type 2 button
     on p_type2 pressed do (
    	clearout()
    	vizzer()
    	)
    	
    -- type 1 button button
     on p_type1 pressed do (
    	preop()
    	clearout2()
    	vizzer1()
    	postop()
    	)	
    
    -- stop button
    	on c_stop pressed do (
      		stopanimation()
      		--postop()
      		)  
    --play button
     on c_play pressed do playanimation()
     	 
    -- rewind button
     	on c_rew pressed do (
    		stopanimation()
    		sliderTime = 0
    		)		
    	
    -- frame forward button
     	on c_ff pressed do (sliderTime = sliderTime +1)
    
    -- frame back button
     	on c_fr pressed do (sliderTime = sliderTime + (-1))
    
    
    ------------ floater
    
    )
    
    if RandomVizGen != undefined do
     (
     closeRolloutFloater RandomVizGen
     )
    RandomVizGen = newRolloutFloater "RandomVizGen" 260 383
    addRollout Controls RandomVizGen
      )
    )
     
Модераторы: Артер

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