Зазвоним в звонок
Давайте сначала поработаем над движением ударника.
- Выделите ударник (в действительности группу поверхностей, из которых он состоит) и в режиме Insert mode (Режим редактирования опорной точки) передвиньте его опорную точку назад (см. рис. 4.2).
Рис. 4.2. Опорная точка ударника сдвинута назад - В окне Channel Box (Окно Каналов) нажмите на Rotate Y (Вращение по оси Y) и, используя контекстное меню, правой кнопкой мыши откройте Expression Editor (Редактор Выражений) (рис. 4.3).
Рис. 4.3. Выражение со случайной функцией заставляет ударник вращаться между -0.5 и 0.5 градусами - Наберите следующее выражение в пустом поле внизу окна и замените ringerG именем, которое вы выбрали для своего ударника:
ringerG.rotateY
=
rand(
-
0.5
,
0.5
);
- Активизируйте выражение, нажав Create (Создать).
Ударник теперь вращается случайным образом между минус полградуса и плюс полградуса относительно своей вертикальной оси. Если вибрация кажется вам слишком слабой, увеличьте значение аргументов случайной функции rand.
Если бы мы могли услышать, звонок звенел бы уже без остановки. Но мы бы хотели, чтобы он звенел только тогда, когда нажимается кнопка. Чтобы достичь этого, мы должны будем создать зависимость между позицией кнопки и включенным / выключенным состоянием случайного выражения. Прежде всего, нам нужен новый атрибут для состояний кнопки звонка on (включена) и off (выключена).
- Откройте Attribute Editor (Редактор Атрибутов) для кнопки и выполните команду Attributes › Add Attribute (Атрибуты › Добавить Атрибут). Так вы откроете окно создания новых атрибутов объекта (рис. 4.4).
Рис. 4.4. Кнопка приобретает новый атрибут для состояний on / off - Дайте атрибуту имя, например rrringTheBell, установите его Data Type (Тип Данных) на Boolean (Булевские). (Они принимают значения 0 или 1, включено или выключено – третьего не дано.) Data Type (Тип Данных) Integer (Целые) включает все целые числа и, таким образом, дает нам слишком большой выбор. Нажмите ОК для добавления нового атрибута.