goalU=(id/50.)%1; goalV=int(id/50)/50.%1; или в более общей форме:
float $uRange=1.;
float $vRange=1.;
float $uGrid=50.;
float $vGrid=50.;
goalU=(id/$uGrid)%$uRange;
goalV=int(id/$uGrid)/$vGrid%$vRange;
Концепция мягких тел Идея мягких тел шокирующе проста. Чтобы её понять, надо проделать всего три содержательных действия.
Создайте NURBS-плоскость (scale=20, patchesU=patchesV=30).
Выберите плоскость и превратите её в мягкое тело, выполнив Soft/Rigid Bodies=>Create Soft Body, с установками по умолчанию.
А затем создайте поле турбулентности (Fields=>Turbulence), которое автоматически прицепится к поверхности, так как она была выбрана в момент создания поля.
Проиграйте анимацию.
Если то, что происходило с твердыми телами в предыдущей главе ещё можно было назвать универсальным словом «колбасинг», то к происходящему на экране сейчас подходящих литературных слов уже не подобрать .
Кропотливые умы наверняка заметят какие-то точки, летающие вокруг да около поверхности. Точки при ближайшем выборе и рассмотрении оказываются частицами. А метод пристального взгляда позволяет определить, что частицы движутся под действием поля турбулентности. Осталось понять, откуда они взялись.
Концепция мягких тел: при превращении поверхности в мягкое тело создается сетка из частиц, расположенных точно в тех местах, где находятся вершины поверхности. Эти частицы намертво приклеивают к себе вершины поверхности и все дальнейшие перемещения частиц под действием динамики ведут за собой перемещения вершин и, как следствие, деформацию поверхности. При этом поверхность никак не влияет на частицы.
Как видите, идея действительно проста. И на этом можно было бы закончить, ведь если вы знаете, как анимировать частицы, а также концепцию goal, нетрудно будет организовать деформацию поверхностей нужным образом. Надо лишь помнить: частицы, образующие мягкое тело, ничем не отличаются от обычных частиц.
Перейдем к следующему разделу, описывающему, как подставлять вместо частиц реальные геометрические объекты. Такой процесс называется инстансированием (particle instancing) и позволяет быстро размножать объекты в огромном количестве и управлять их движением при помощи динамики частиц.
Шутка. Про Particle Instancer я расскажу чуть позже, а сейчас изложу некоторое количество замечаний и рассуждений относительно мягких тел.
Термин «мягкие» (soft) не совсем удачен, так как вызывает ассоциации с тканями, для анимации которых существуют совершенно обособленные решения типа MAYA Cloth или Syflex (см. www.syflex.biz). Назвать их «динамически деформируемые» было бы более корректно, но настолько тяжеловесно, что я останусь в традиционной терминологии, а в устной майской русской лексике прижился термин «софтбоди».
Хотя я сформулировал концепцию превращения объекта в мягкое тело только для поверхностей, однако она справедлива и для кривых, и даже для Lattice-деформеров. То есть для всех объектов, имеющих компоненты (правда, кроме частиц, для которых вы можете просто скопировать partide-объект и назначить его как goal к оригинальным частицам).