Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Создание иерархических объектов и их анимация

Читайте также:
  1. Gt;■ < ' ol" '. 5 ■* создание ряда
  2. II. Создание глоссария по теме занятия
  3. IV Создание ковровой дорожки
  4. А. Создание и заполнение базы данных
  5. Анализ входной информации предметной области и выделение информационных объектов
  6. Анализ случайных процессов изменения ОП объектов
  7. Априорные и апостериорные вероятности классов объектов

Существует множество способов создания сложных объектов. Это может быть и просто несколько независимых простых объектов расположенных в пространстве так, что на конечном изображении составляют единых сложный объект; это могут быть те же объекты, но объединенные в единую группу (операция — группировать Group); это может быть объект сложной формы образованный из простых объектов с помощью булевых операций или другими способами.

Но все такое множество методов хорошо применять пока объект выступает как единое целое, литое тело. Когда оно неподвижно. Ему даже можно задавать анимацию.

Но если части сложного тела перемещаются относительно друг друга, то анимация резко усложняется. Требуется буквально в каждом кадре отслеживать, чтобы составные части сложного объекта ‘не отрывались друг от друга’. То есть, чтобы, например, рука робота сгибалась в локте (в точке сочленения двух звеньев). Но части руки робота не ‘разлетались’ ни при каких перемещениях. Чтобы облегчить процесс анимации таких сложных объектов лучше всего поручить часть работы программе.

В программе 3D Studio MAX для этого используется операция связывания (Link), чтобы построить иерархическую структуру между частями сложного составного объекта. По умолчанию, связь образуемая между частями объекта, является связью типа вращения (Rotational Joint). Но можно задать и настроить связь типа скольжения (перемещения относительно друг друга) (Joint Slice).

При создании сложного объекта (которому будет придана анимация) необходимо не только спроектировать и создать форму каждой части составного объекта, но и спланировать как они будут связаны между собой, чтобы было проще потом анимировать их. Какой простой объект будет главным, а какой подчиненным. Чтобы понять, для чего необходимо устанавливать связи между частями, в качестве примера можно привести деревянную куклу для кукольного театра. Части куклы связаны леской, что обеспечивает подвижность суставов (нити управления движением здесь не рассматриваются).

Задание. Создание иерархии. Отношение родитель–ребенок. Соединение типа вращение. Инверсная кинематика.

Проделайте пример. Создайте части составного объекта — три конуса.

1. Выберите в качестве активного окна проекции окно Top.

2. Создайте конус Cone01 с центром (–200, 0, 0), R1 = 25, R2 = 50, H = 150.

3. Создайте конус Cone02 с центром (–200, 0, –100), R1 = 20, R2 = 25, H = 100.

4. Создайте конус Cone03 с центром (–200, 0, –200), R1 = 20, R2 = 20, H = 100.

Продолжите делать пример. Создание иерархии. Отношение родитель–ребенок.

5. Свяжите дочерний Cone02 с родительским Cone01[1]. Используйте команду Select and Link (первая кнопка на панели инструментов, на рис. выделена кружком). Тяните связь от дочернего объекта к родительскому. Контролируйте процесс создания и следите за изменением изображения курсора при наведении на контур объекта.

6. Свяжите дочерний Cone03 с родительским Cone02.

7. Нажмите кнопку Select Object. (То есть отключить все команды; или включить просто курсор).

8. Убедитесь, что иерархия создана правильно. Откройте окно Select From Scene (посредством кнопки Select by Name). В меню Display этого окна в пункте Display Children установите галочку (нажав на этот пункт). Если иерархия (связь между конусами) неверна разорвите все связи и постройте заново и правильно (для разрыва используйте кнопку Unlink Selection).

9. Выделите Cone01, Cone02 и Cone03.

10. На командной панели откройте вкладку Hierarchy. Нажмите кнопку IK, чтобы открыть соответствующую панель.

11. Щелкните по кнопке Child-Parent (свиток Object Parameters), чтобы установить приоритет связей[2].

12. На панели инструментов в окошке Reference Coordinate System выберите значение Parent.

Продолжите делать пример. Создание. Соединение типа вращение. Инверсная кинематика.

13. Сделайте активным окно проекции Left. (Можно развернуть это окно на всю рабочую область).

14. Выделите только конус Cone03.

15. Откройте вкладку Hierarchy. Нажмите кнопку IK (или убедитесь, что все это уже выбрано и включено). На командной панели, внизу, раскройте свиток Rotational Joints.

16. Снимите флажки Active, в разделах по координатам Y и Z, а по координате X — установите.

17. Выделите Cone02.

18. Снимите флажки Active по координатам Y и Z, а по X установите.

19. Включите кнопку Interactive IK на командной панели (вверху). Этим включается режим Inverse Kinematics (Инверсная кинематика), при котором программа следит за поведением составного объекта и перемещает, по необходимости, родительский объект, когда пользователь (разработчик) двигает дочерний объект. Так как была настроена связь вращения, то программа позволяет объектам только вращаться — дочернему относительно родительского.

20. Протестируйте текущий результат. Перемещайте и поворачивайте конусы. Понаблюдайте их взаимное перемещение. Совет. Выполните какое-либо одно перемещение, а кнопкой Undo (на строке заголовка) верните в исходное состояние. Потом выполните другое перемещение/поворот.

Продолжите делать пример. Настройка точек вращения дочерних объектов.

21. Смените положение точки вращения для Cone001. Для этого откройте вкладку Hierarchy. Нажмите кнопку Pivot, чтобы открыть соответствующую панель. А на панели распахните свиток Adjust Pivot.

22. Нажмите кнопку Affect Pivot Only.

23. Используя привычные уже перемещения объектов, переместите центр системы координат Cone001 в центр верхнего дна конуса в точку (–200, 0, 150)[3].

24. Переместите центр системы координат Cone002 в край верхнего дна конуса (точка (–200, 25, 0)).

25. Переместите центр системы координат Cone003 в край верхнего дна конуса (точка (–200, 20, –100)).

26. Отожмите кнопку Affect Pivot Only.

27. Протестируйте текущий результат. Повращайте и поперемещайте Cone01 и убедитесь, что вместе с ним вращается и перемещается и Cone02 и Cone03. Повращайте и поперемещайте и дочерние конусы. Убедитесь, что вращение дочерних объектов происходит относительно других точек. Совет. Для упрощения первоначальной отладки движения составного объекта можно выбрать объект Cone01; по кнопке Link Info открыть панель; на свитке Locks (Зам о к) установить все флажки, а на свитке Inherit (Наследовать) — снять все флажки. Да и все флажки Rotational Joint для объекта Cone01 пока снять. Это должно обеспечить неподвижность родительского конуса.

28. Верните Cone01, Cone02 и Cone03 в исходное положение.

29. Для Cone02 и Cone03 на координате X установите флаг Limited (на вкладке Hierarchy, при нажатой кнопке IK, в свитке Rotational Joints (внизу командной панели)). Установите значения From = –50, To = –5. (если пользоваться кнопками счетчика справа от окошка параметра, то можно наблюдать реакцию сочленения).

30. Создайте объект Box, небольшого размера (чуть больше диаметра донышка конуса), и поместите его ниже конуса Cone03. (Можно создать некий фигурный объект, например, выдавить из линии соответствующей контуру ладони с пальцами).

31. Сделайте этот Box дочерним для Cone03. Можно снять для объекта Box все флажки в свитке Rotational Joints.

32. Поперемещайте Box и убедитесь, что вся конструкция движется подобно руке робота[4]. И что ‘рука’ не выравнивается в прямую линию. (Это происходит из-за того, что нижняя граница –5, а не 0. А если границу установить чуть положительной, например 5, то ‘рука’ будет немного прогибаться в обратную сторону).

33. Теперь можно попробовать установить флаги Active и Limited и для Cone01. А границы –50 и 50 соответственно. ‘Рука’ должна двигаться полностью.

Продолжите делать пример. Создание анимации составного объекта.

34. Перемещая Box создайте ключи анимации в 2–3 кадрах, например, раскачивание всей системы. Учтите, что при создании ключа необходимо выделять все объекты, то есть ключи должны записываться для каждого из объектов.

35. Проиграйте сцену. Посмотрите результат. Сделайте рендеринг всего анимационного фильма.

Задание. Создание иерархии. Отношение родитель–ребенок. Соединение типа скольжение. Инверсная кинематика.

Проделайте пример. Создайте части составного объекта — три цилиндра.

36. Задайте новую группу объектов. Можно создать новую сцену (то есть сбросить прежнюю). Можно в другом файле.

37. Создайте цилиндр Cylinder01 с центром (0, 0, 0), R = 50, H = 50.

38. Создайте цилиндр Cylinder02 с центром (0, 0, 10), R = 45, H = 45.

39. Свяжите дочерний Cylinder02 с родительским Cylinder01.

40. Поперемещайте Cylinder01 и убедитесь, что вместе с ним перемещается и Cylinder02.

41. В окошке Reference Coordinate System выберите значение Local. Выделяя конусы по очереди, обратите внимание, где центры и как направлены оси координат для обоих цилиндров. Верните значение View в окошке Reference Coordinate System.

42. Верните Cylinder01 в исходное положение.

43. Откройте вкладку Hierarchy. Нажмите кнопку Link Info, чтобы открыть соответствующую панель, а на ней свиток Inherit.

44. Снимите флажок в пункте Z раздела Move.

45. Поперемещайте Cylinder01 и убедитесь, что вместе с ним перемещается и Cylinder02. Но при перемещении вдоль оси Oz (Local) Cylinder02 остается на месте.

46. Поперемещайте Cylinder02 и убедитесь, что Cylinder01 не изменяет положения.

Продолжите делать пример. Создание иерархии. Инверсная кинематика.

47. Верните цилиндры в исходное положение или создайте сцену заново.

48. Создайте цилиндр Cylinder03 с центром (0, 0, 20), R = 40, H = 40.

49. Свяжите дочерний Cylinder03 с родительским Cylinder02.

50. На установленные связи необходимо наложить контроллеры. Для этого выделите Cylinder01, нажмите пункт меню HD Solver (меню Animation/IK Solvers), а затем мышкой протяните связь до Cylinder03, то есть подведите мышь к цилиндру, добейтесь смены курсора и щелкните мышью. (После выбора пункта меню HD Solver и перемещения мышки в окно проекции, за мышкой будет тянуться пунктирная линия. Остается навести на конечный цилиндр так, чтобы сменился курсор, и щелкнуть кнопкой мыши).

51. Выделите все цилиндры Cylinder01, Cylinder02 и Cylinder03.

52. Откройте закладку Hierarchy. Нажмите кнопку IK, чтобы открыть соответствующую панель.

53. Щелкните по кнопке Child-Parent, чтобы установить приоритет связей.

54. В окошке Reference Coordinate System выберите значение Parent.

55. Выделите Cylinder03.

56. Откройте закладку Hierarchy. Нажмите кнопку IK, чтобы открыть соответствующую панель, а на ней откройте появившийся свиток Sliding Joints.

57. Снимите флажки Active по координатам X и Y, а по Z установите.

58. На координате Z также установите флаг Limited. Установите значения From = 10, To = 40. (если пользоваться кнопками счетчика справа, то можно наблюдать реакцию сочленения)

59. Те же установки выполните для Cylinder02.

60. Попробуйте потаскать цилиндры. Посмотрите их взаимодействие. Верните сцену в исходное состояние.

Продолжите делать пример. Задайте анимацию для созданной сцены.

61. Убедитесь, что кнопка Interactive IK на вкладке IK вкладки Hierarchy, командной панели.

62. Нажмите кнопку Set Key. Нажмите кнопку Set Keys (ключ), чтобы записать ключ в нулевом карде. (Предварительно убедитесь, что ползунок на позиции 0).

63. Переместите ползунок на 50-й кадр. Вытяните Cylinder03 на максимальную высоту. Нажмите кнопку Set Keys (ключ).

64. Переместите ползунок на 100-й кадр. Cylinder03 максимально опустите. Нажмите кнопку Set Keys (ключ).

65. Проиграйте анимацию и посмотрите результат.

66. Остановите анимацию.

67. Исправьте значение Damping = 0.9, для Cylinder03. Перезадайте ключи анимации в 0, 50 и 100 кадрах.

68. Проиграйте анимацию и посмотрите результат.

69. Исправьте значение Damping = 0.9, для Cylinder02, а для Cylinder03 верните Damping = 0. Перезадайте ключи анимации в 0, 50 и 100 кадрах.

70. Проиграйте анимацию и посмотрите результат. Сделайте рендеринг всего анимационного фильма.

71. Сохраните сцену.

 


[1] Возможно, что это удобнее делать на окне проекции Front или Left.

[2] Для контроля можно снять выделения о всей группы объектов (щелкнуть мышью мимо объектов) и, щелкая по конусам по отдельности, смотреть в окошке Precedence (над кнопкой ChildÒParent) что значения меняются от 0 до 20.

[3] То есть выделяется объект, и выполняется перемещение. Но программа, переключенная в этот режим, перемещает лишь опорную систему координат, а сам объект остается на месте.

[4] Учтите, что если требуется изменить относительное положение дочерних объектов по отношению к родительским, необходимо отжать кнопку Interactive IK, а при задании движения системы через движения дочерних объектов — кнопку необходимо нажать.


Дата добавления: 2015-10-28; просмотров: 91 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Текст програми| ВОЗРАСТНЫЕ СТАНДАРТЫ ГОДОВЫХ ПРОГРАММ ТРЕНИРОВКИ ЛЫЖНИЦ—ГОНЩИЦ 10-16 ЛЕТ (ДЕВОЧКИ, ДЕВУШКИ)

mybiblioteka.su - 2015-2024 год. (0.012 сек.)