Доп. комментарий по массивам и точкам к туторе "KeyHeart"
Привет!
Сразу скажу, что мое знакомство с vex-ом было тяжким, продолжительным, и до сих пор какую-то часть из того, что я там время от времени пишу - я сам нихрена не понимаю, или не могу объяснить простыми словами. Много приходится копаться в хелпе, экспериментировать и пробовать. И если знаете способы сделать то или иное проще или нашли у меня ошибку, обязательно пишите:)
Финальный вариант врангла из видоса:
string text = chs('Text');
string letters[] = split(text);
int len = len(letters);
i@len = len;
int index = int(fit01(rand(@ptnum%len), 0, len));
s@letters = letters[index];
В первой строке создается текстовый канал, и все, что вводится в этот канал, записывается в строковую переменную text.
Во второй строке объявляется массив, как и в туториале, со всеми значениями, поступающими в переменную text. Вместо функции array() используется функция split(). Она принимает строку и по разделителю разбивает ее на отдельные значения. Если разделитель (separators) не указан, а подается только строка, то она по умолчанию разбивается через пробелы.
В третьей строке создается переменная len, которая измеряет длину массива - сколько в массиве всего значений.
Сразу и четвертая строка - там создается одноименный атрибут, в который записывается значение переменной len. Это нужно для отслеживания в geometry spreedsheet и для обращения к этому атрибуту в других нодах - переменная со своими значениями существует только в пределах кода.
Пятая строка создает рандомное значение номера точки (@ptnum) для того, чтобы не присваивать первое значение массива первой точке, второе - второй и т.д.
Там используется rand() и fit01(), чтобы соответственно зарандомить @ptnum и затем загнать его не в диапазон от 0 до 1, а в диапазон по длине массива (0, len).
Затем все помещается в int() банально чтобы отбросить дробную часть и результат после знака равно был так же integer по типу, как и int index до знака равно.
Ну и в финале, опять же как в самом туторе, просто создается атрибут, с которым далее работаем.
hip
text_point[boosty].hip193.88 Kb
houdini
tutorial
cgi
vex
3d
example
hip