Хм, думаю по этому принципу я пущу машинки по городу из предыдущей части :) Пока домики до ума доведу и пропробую их спрецировать на настоящий кусок города, только бы понять как правильно считать данные об этажности из соответствующего атрибута :) Но пока домики долеплю :) Уже сделал балконы, чердаки, наметки тротуаров :) Осталось разобраться ещё с несколькими моментами. Может даже сделать вариации зданий. Ещё подъезды. Газоны. В общем у кого-то майнкрафт, а у меня гудини :))))
хорошо бы урок с подробным описанием функций с координатами: minpos, xyzdist, primuv,prim, создания геометрии: addpoint, addvertex, polyline, и поиска точек nearpoints, point clouds В 99% случаев именно эти функции используются в вранглах и постоянно приходится лезть на вики чтобы освежить память
@@hipnc боюсь вопросов будет слишком много и в моём случае это видимо пока лишние дебри) Из первой части показалось, что будет векс для новичков в гудини в целом, а тут уже кажется, что скорее для новичков именно в вексе, которые хотя бы с вопом нормально освоились)
Возможно тут у автора ошибка, а может быть и нет. Это зависит от того, включена ли 1 в диапазон генерируемых псевдослучайных чисел или нет (в хелпе про это ничего не сказано :( ). Но даже если ошибка есть, она будет проявляться крайне-крайне редко, так как вероятность того, что генератор сгенерирует крайние значения очень мала. А работает всё следующим образом: 1) Функция rand генерирует псевдослучайное дробное число в диапазоне от 0 до 1, и в качестве параметра принимает так называемый seed (семя) - число, которое используется для инициализации генератора псевдослучайных чисел. Если seed задать одинаковый, то псевдослучайное число будет одним и тем же. Во многих языках программирования в качестве seed используется текущая дата и время, так как это значение является достаточно случайным, но в Гудини время не используется и seed нужно придумать самим. Автор использует в качестве seed номер точки + 100. В результате мы будем получать числа вида: 0, 0.334 ... 0.7354, 0.9453, 1 Вероятность появления крайних значений 0 и 1 крайне мала. 2) Далее результат полученный от функции ранд умножается на 3 и числа превратятся в числа из диапазона от 0 до 3: 0, 1.002, ... 2.2062, 2.8359, 3 3) Далее floor округляет вниз до ближайшего целого, т.е. получим: 0, 1, ... , 2, 2, 3 Т.е. все правильно, за исключением случая когда генератор выдаст крайнее значение = 1.
Я никогда не сталкивался с единицей как результатом рандома. В данном случае это не важно, потому что мы просто пойдем в последний else и выполним диагональный вариант сдвига.
Да, можно завести переменную-счетчик или даже использовать номер итерации и операцию %3, и потом, если этот счетчик не дошел до трех, используем старое значение. Проще всего брать рандом не от номера итерации, а от floor(i/3) - так рандом будет одинаковый для группы из трех точек.
Спасибо за уроки. Вопрос. Как в attribwrangle менять параметры геометрии? Например, задать высоту тюба. Пробовал с помощью команды setdetailattrib(geoself(), "height", 0.6);. Не работает :( Идея в том, чтобы с помощью if задавать разные размеры геометрии
Чтобы менять высоту геометрии нужно двигать точки, то есть сдвигать их атрибут @P. Если речь идет о примитивных элементах типа Tube, Sphere и т.п., то их размеры нужно будет задавать через интринсики.
Стас привет,хотел спросить.вот создал cферу,добавил нормали и в ноде" polyframe", у меня нормали смотрят по касательной под углом (к примеру),45 градусов и нет возможности этот угол изменять,затем добавил vop.там с помошью трансформ матрикс повернул нормали на сколько мне нужно,но со сферой получился казус,нормали которые выше нулевых координат по оси Y,смотрят и поворачиваются как надо,а вот уже ниже нулевых координат,нормали как бы смотрят "внуть сферы".как это исправить?
Надо поворачивать не на абсолютный угол, а крутить вокруг какой-то оси. Например вокруг исходной нормали, которая смотрит перпендикулярно. Для этого есть функция Rotate.
Не имею представления и вообще стараюсь не давать оценок другим учителям. Эффективность любых курсов прямо пропорциональна заинтересованности ученика, даже с самым плохим учителем можно чему-то научиться, если для тебя это важно. И наоборот, самый крутой курс не даст ничего тем, кто ждет мгновенного результата и не хочет работать.
Отличное объяснение! но несмотря на это все еще остается большой зазор между реальной работой в гудини и данной информацией. То что показано в видео действительно разжовано и понятно. Ну и грубо говоря все - теперь я просто понимаю как работает код из видео. Но вот заходиш в хелп чтобы скопировать себе шаблон похожего кода и переделать на свой лад и просто понимаеш что тебе показалось и ничего ты не понял. Возьмите нескольких из ваших новых студентов и дайте им какое то универсальное задание и посмотрите во что конкретно упираются новички. Научите правильно мыслить, когда непонятно что нужно сделать, какими категориями думать чтобы добраться до результата и т п. Вплоть до того чтобы листать хелп и бубнеть про себя в слух, или чтото такого плана чтобы было понятно как профи решают загвоздки. Потому что - вот ты уже знаеш код из видео, но все что ты теперь можеш сделать нового это такой же ассет или похожий. И это все никак не помогает когда ты береш другой кусок кода из хелпа и пытаешся подложить значения а они почему то не работают. Вот где реальная проблема - свежая задача и ступор когда не понятно что дальше сделать и как правильно. Надо код расчехлить на логичные самые мелкие части и как то обяснить взаимосвязи. Еще хелп этот написан себе на уме - никаких примеров, списка терминов, нормальной навигации - все гдето там есть в этом винигрете но только для галки, ну и для прохаваных. Вот что такое функция - в хелпе она то в круглых скобках то в фигурных, то еще как то - и каши становится только больше. Это же код блин а не стихотворение, все можно систематизировать и запихнуть в какую то таблицу, сам хелп сделать удобным, интерактивным и т п. Но этого не будет скорее всего. Если бы не этот канал можно было бы вообще рехнуться
Это типичная проблема при изучении программирования вообще. Нужно постепенно ставить простые задачи и решать их вексом. Нужна практика, со временем все нужные связки функций закрепятся в памяти.
Вы великолепны, спасибо вам.
Спасибо. Подумал как можно проще это реализовать и сделал через pop solver, задавая случайно одно из 8 направлений частицам
Да, я ещё не посмотрел, но лайк поставил
у меня для этих целей припасена целая тетрадка с набором разноцветных ручек, рекомендую)
смещение по y не происходит
:(
Супер!
Хм, думаю по этому принципу я пущу машинки по городу из предыдущей части :) Пока домики до ума доведу и пропробую их спрецировать на настоящий кусок города, только бы понять как правильно считать данные об этажности из соответствующего атрибута :) Но пока домики долеплю :) Уже сделал балконы, чердаки, наметки тротуаров :) Осталось разобраться ещё с несколькими моментами. Может даже сделать вариации зданий. Ещё подъезды. Газоны. В общем у кого-то майнкрафт, а у меня гудини :))))
как в sublime сделать чтобы команды разными цветами подсвечивались?
хорошо бы урок с подробным описанием функций с координатами: minpos, xyzdist, primuv,prim, создания геометрии: addpoint, addvertex, polyline, и поиска точек nearpoints, point clouds В 99% случаев именно эти функции используются в вранглах и постоянно приходится лезть на вики чтобы освежить память
Можно или даже нужно завести тетрадку и выписать себе значения функций и их применение. Ну или Документ, хоть в том же гугл докс.
Ох что-то жестко скакнула сложность с первой части))
Да вроде не так много новых сведений. Если что-то осталось непонятным - спрашивайте.
@@hipnc боюсь вопросов будет слишком много и в моём случае это видимо пока лишние дебри) Из первой части показалось, что будет векс для новичков в гудини в целом, а тут уже кажется, что скорее для новичков именно в вексе, которые хотя бы с вопом нормально освоились)
Да, перед тем, как погружаться в Векс, лучше освоиться с другими вещами, поэтому я всегда и говорю, что программирование - дело опциональное.
А обязательно учить vex, разве не достаточно vop?
как номер точки +100 и умноженное на 3, может равняться от 0 до 2???
Возможно тут у автора ошибка, а может быть и нет. Это зависит от того, включена ли 1 в диапазон генерируемых псевдослучайных чисел или нет (в хелпе про это ничего не сказано :( ). Но даже если ошибка есть, она будет проявляться крайне-крайне редко, так как вероятность того, что генератор сгенерирует крайние значения очень мала. А работает всё следующим образом:
1) Функция rand генерирует псевдослучайное дробное число в диапазоне от 0 до 1, и в качестве параметра принимает так называемый seed (семя) - число, которое используется для инициализации генератора псевдослучайных чисел. Если seed задать одинаковый, то псевдослучайное число будет одним и тем же. Во многих языках программирования в качестве seed используется текущая дата и время, так как это значение является достаточно случайным, но в Гудини время не используется и seed нужно придумать самим. Автор использует в качестве seed номер точки + 100. В результате мы будем получать числа вида:
0, 0.334 ... 0.7354, 0.9453, 1
Вероятность появления крайних значений 0 и 1 крайне мала.
2) Далее результат полученный от функции ранд умножается на 3 и числа превратятся в числа из диапазона от 0 до 3:
0, 1.002, ... 2.2062, 2.8359, 3
3) Далее floor округляет вниз до ближайшего целого, т.е. получим:
0, 1, ... , 2, 2, 3
Т.е. все правильно, за исключением случая когда генератор выдаст крайнее значение = 1.
Эта сумма является сидом для псевдослучайного числа. О том, как работает рандом, я рассказываю в этом видео: th-cam.com/video/L3CD6OAKC-4/w-d-xo.html
Я никогда не сталкивался с единицей как результатом рандома. В данном случае это не важно, потому что мы просто пойдем в последний else и выполним диагональный вариант сдвига.
@@hipnc я к тому, что например номер точки 6, тогда (6+100)×3 это ведь ну ни как не от 0 до 2
На три домножается уже результат функции rand, то есть число от 0 до 1.
Можно ли еще как-то сделать, чтоб было минимальное количество шагов в определенном направлении? Например, как минимум 3 точки будут идти по диагонали.
Да, можно завести переменную-счетчик или даже использовать номер итерации и операцию %3, и потом, если этот счетчик не дошел до трех, используем старое значение. Проще всего брать рандом не от номера итерации, а от floor(i/3) - так рандом будет одинаковый для группы из трех точек.
Спасибо за уроки. Вопрос. Как в attribwrangle менять параметры геометрии? Например, задать высоту тюба. Пробовал с помощью команды setdetailattrib(geoself(), "height", 0.6);. Не работает :( Идея в том, чтобы с помощью if задавать разные размеры геометрии
Чтобы менять высоту геометрии нужно двигать точки, то есть сдвигать их атрибут @P. Если речь идет о примитивных элементах типа Tube, Sphere и т.п., то их размеры нужно будет задавать через интринсики.
Стас привет,хотел спросить.вот создал cферу,добавил нормали и в ноде" polyframe", у меня нормали смотрят по касательной под углом (к примеру),45 градусов и нет возможности этот угол изменять,затем добавил vop.там с помошью трансформ матрикс повернул нормали на сколько мне нужно,но со сферой получился казус,нормали которые выше нулевых координат по оси Y,смотрят и поворачиваются как надо,а вот уже ниже нулевых координат,нормали как бы смотрят "внуть сферы".как это исправить?
Надо поворачивать не на абсолютный угол, а крутить вокруг какой-то оси. Например вокруг исходной нормали, которая смотрит перпендикулярно. Для этого есть функция Rotate.
хоть убей не пойму, почему в primuv("P" - в кавычках(хотя это же атрибут тоже), а всё остальные атрибуты после собаки). Спасибо за урок)
Потому что здесь мы передаем не значение атрибута, а его название. Мы говорим функции primuv, что хотим прочитать атрибут с названием "P".
Здравствуйте! как то можно к вам попасть на курс по vex для нулячих? сколько это стоит?
Увы, нет. Сейчас я не провожу занятия.
Здравствуйте. Что думаете о качестве курсо на скиллбоксе? skillbox.ru/course/special-effects/ думаю вот пойти к ним учится
Не имею представления и вообще стараюсь не давать оценок другим учителям. Эффективность любых курсов прямо пропорциональна заинтересованности ученика, даже с самым плохим учителем можно чему-то научиться, если для тебя это важно. И наоборот, самый крутой курс не даст ничего тем, кто ждет мгновенного результата и не хочет работать.
Отличное объяснение! но несмотря на это все еще остается большой зазор между реальной работой в гудини и данной информацией. То что показано в видео действительно разжовано и понятно. Ну и грубо говоря все - теперь я просто понимаю как работает код из видео. Но вот заходиш в хелп чтобы скопировать себе шаблон похожего кода и переделать на свой лад и просто понимаеш что тебе показалось и ничего ты не понял. Возьмите нескольких из ваших новых студентов и дайте им какое то универсальное задание и посмотрите во что конкретно упираются новички. Научите правильно мыслить, когда непонятно что нужно сделать, какими категориями думать чтобы добраться до результата и т п. Вплоть до того чтобы листать хелп и бубнеть про себя в слух, или чтото такого плана чтобы было понятно как профи решают загвоздки. Потому что - вот ты уже знаеш код из видео, но все что ты теперь можеш сделать нового это такой же ассет или похожий. И это все никак не помогает когда ты береш другой кусок кода из хелпа и пытаешся подложить значения а они почему то не работают. Вот где реальная проблема - свежая задача и ступор когда не понятно что дальше сделать и как правильно. Надо код расчехлить на логичные самые мелкие части и как то обяснить взаимосвязи. Еще хелп этот написан себе на уме - никаких примеров, списка терминов, нормальной навигации - все гдето там есть в этом винигрете но только для галки, ну и для прохаваных. Вот что такое функция - в хелпе она то в круглых скобках то в фигурных, то еще как то - и каши становится только больше. Это же код блин а не стихотворение, все можно систематизировать и запихнуть в какую то таблицу, сам хелп сделать удобным, интерактивным и т п. Но этого не будет скорее всего. Если бы не этот канал можно было бы вообще рехнуться
Это типичная проблема при изучении программирования вообще. Нужно постепенно ставить простые задачи и решать их вексом. Нужна практика, со временем все нужные связки функций закрепятся в памяти.
Когда сложность первого урока возросла..полностью.
Интересный урок, сложный VEX
th-cam.com/video/dldgf0Dph60/w-d-xo.html Название атрибута)
Я не хочу быть патроном :( Хочу остаться человеком.
Ну хотя бы на треть!