Render.ru

Visibility

Рейтинг
14
#1
почему не работает?..точнее он делает визибилити = 1...но не наоборот

myArray = selection as array
for i in myArray do
(
i.visibility = bezier_float()
if i.visibility.controller.value == 1 then i.visibility.controller.value = 0.1 else i.visibility.controller.value = 1

redrawViews()

)
 
Последнее редактирование:
Рейтинг
221
#3
Код:
classof $.visibility
>>BooleanClass

Потому что сам visibility трек это Boolean - on/off. Неважно какой контроллер в него назначить все ровно он будет boolean и этого не изменить.
 
Рейтинг
221
#4
А не, я не прав, будет работать если controller поменять.

Попробовал в 2019.1.1 ваш кода работает правильно...
 

igorznag

Знаток
Рейтинг
71
#5
Попробуйте такой вариант:
Код:
myArray = selection as array
for i in myArray do(
try i.visibility.controller catch (i.visibility = bezier_float(); i.visibility.controller.value=1)
if i.visibility.controller.value == 1 then i.visibility.controller.value = 0.1 else i.visibility.controller.value = 1
redrawViews()
)
 
Рейтинг
14
#6
ребят...проблема в точке с нулем
(
myArray = selection as array

for i in myArray do
(
i.visibility.controller = bezier_float()
a=bezier_float
if i.visibility.controller.value == 1.0 then a = 0.1 else a=1.0

i.visibility.controller.value = a
redrawViews()
)

)
вот так все пашет...видно он назначал интегр
 

igorznag

Знаток
Рейтинг
71
#9
Вы попробовали мой вариант? Позвоните мне в Skype если не получается использовать мой код?
 
Рейтинг
14
#10
в общем все работает вот так...единственное что при создании нового объекта надо два раза нажимать хоткей...но это лучше чем было

(
myArray = selection as array

for i in myArray do
(

if getVisController i == undefined then i.visibility=bezier_float()
else i.visibility.controller=bezier_float()

a=bezier_float
if i.visibility.controller.value == 1.0 then a = 0.1 else a=1.0

i.visibility.controller.value = a

)
redrawViews()
)
 
Сверху