Подготовка и экспорт 3D сцены из 3dsMax для All¹Mix

Материал из dgraphic
Перейти к навигации Перейти к поиску

All¹Mix является достаточно мощным инструментом для создания, записи и трансляции мультимедийного контента в области телевещания и образования. Вместе с тем этот программный продукт ориентирован, прежде всего, на средние и малые компании, и даже на индивидуальных пользователей. Т.е. от пользователя программы All¹Mix не должно требоваться глубоких специальных знаний выходящих за рамки его профессиональной деятельности.

Это означает, что 3D сцены должны быть подготовлены специальным образом, позволяющим обычному пользователю All¹Mix (не имеющему представления о KeyFrame-анимации, материалах, текстурных координатах и т.п.) управлять анимацией, назначать медиа-источники на элементы сцены и т.п.

All¹Mix тратит значительные ресурсы компьютера на обработку входящих и исходящих видеопотоков, медиафайлов, титровальных элементов и т.п. Это означает, что 3D сцены (а их может быть одновременно использовано несколько в одном проекте All¹Mix) должны быть оптимизированы так, чтобы экономно расходовать ресурсы компьютера, обеспечивать быструю загрузку 3D сцен.

Особенностям подготовки 3D сцен для использования в All¹Mix и посвящена эта статья.

Общие сведения

Виртуальная студия, встроенная в All¹Mix не использует дорогостоящих и сложных в эксплуатации трекинговых систем. Однако во многих случаях позволяет добиваться тех же результатов. Как это достигается? В All¹Mix диффузная текстура материала специального объекта 3D сцены (плоского прямоугольника) заменяется на "живое" изображение актера (с альфа-каналом) с неподвижной реальной камеры. При перемещении виртуальной камеры зритель видит картинку аналогичную тому, как если бы реальная камера не стояла на месте, а двигалась согласованно с движением виртуальной камеры.

Такая технология имеет и плюсы и минусы:

  • К минусам относятся ограничения по углу зрения виртуальной камеры относительно плоскости "Актера".
  • К плюсам - возможность анимировать виртуальную камеру способами, трудно осуществимыми (или вообще невозможными) для реальной камеры.

В принципе Render Engine All¹Mix позволяет использовать, например, технологию PBR (physically-based rendering) реального времени. Однако в 3D сцене, предназначенной для использования в All¹Mix допускаются только стандартные материалы и стандартные источники света. Причем, с ограничениями.

Это обусловлено следующими причинами:

  • во-первых, стремлением максимально сэкономить ресурсы компьютера, ускорить загрузку 3d сцен.
  • во-вторых, качество картинки PBR реального времени существенно хуже качества рендеринга в нереальном времени ("Vray", "Corona" и т.п.).

Поэтому создание сцены в 3ds Max для плагинов "Vray" или "Corona", с последующей конвертацией через запекание текстур в стандартную 3ds Max сцену позволит сделать сцену "легкой", а картинку при рендеринге реального времени в All¹Mix - высокого качества.

Таким образом, в результате желательно иметь две 3D сцены:

  • Исходную (для плагинов "Vray" или "Corona"), в которой можно использовать любые материалы и любое количество любых источников света.
  • Результирующую, которая получается из исходной путем конвертации в "стандартную" 3ds max сцену. Именно из этой сцены производится экспорт в .fbx файл для использования в All¹Mix.

! При запекании используйте Map Channel 3

Оптимизация сцены

Объекты, материалы, источники света, камера

После запекания текстур все материалы, источники света, камеры и т.п. должны быть конвертированы в стандартныедля 3dsMax типы:

  • камера - "FreeCamera"
  • источник света - "Omni"
  • материал - "Standard (Blinn)"

В настоящий момент в All¹Mix используются только три типа текстур - "Diffuse", "Opacity" и "Reflection". Запеченные материалы лучше сделать самосветящимися. Это позволит удалить "лишние" источники света, доведя их количество до минимума. Или вообще обойтись без них. Камера должна быть одна. Различные положения камеры задаются анимационным треком. Значения для клипирующих плоскостей камеры в свойствах камеры должны быть заданы вручную (Clipping Planes/Clip Manually) в соответствии с параметрами данной 3d-сцены. Общее правило: установить "Far" порядка габаритов сцены, а "Near" подбирать до исчезновения "мерцания" близко расположенных граней.

1 AllMix 3d.jpg

Камера должна быть одна. Различные положения камеры задаются анимационным треком. Значения для клипирующих плоскостей камеры в свойствах камеры должны быть заданы вручную (ClippingPlanes/ClipManually) в соответствии с параметрами данной 3d-сцены. Перед экспортом ко всем объектам сценырекомендуется применить процедуры "ConverttoEditableMesh"и"ResetX-Form".

Объекты

Нежелательно использовать группы (command Group). Особенно для анимированных объектов.

Напротив, объединять объекты (command Attach) - всегда хорошо и для экономии ресурсов и для быстроты загрузки. Разумеется, это необходимо делать перед запеканием текстур и с учетом того, что максимальный размер запекаемой текстуры 2048x2048 px.

Перед экспортом ко всем объектам сцены рекомендуется применить процедуры "Convert to Editable Mesh"и (затем) "ResetX-Form". Это так же значительно ускорит загрузку сцены в All¹Mix и обеспечит ее корректность.

Медиа-объекты

В All¹Mixимеется возможность замены диффузной карты материалов 3dсцены на произвольное статическое изображение, файловое или потоковое видео. К которым, в свою очередь (и при необходимости), может быть применена техника"ChromaKey".

Для того чтобы All¹Mixпоместил объект 3dсцены в список медиа-объектов, его имя должно содержать слова "monitor" или "actor". Например: "Back_wall_monitor", "monitor1", "Monitor", "Actor", "FullSizeActor" и т.п.

Медиа-объект должен содержать только один материал.

Медиа-объект "Actor" должен быть планарным объектом (прямоугольником) с пропорциями 16:9 (HD) или 4:3 (SD), в зависимости от типа камеры, снимающей реального актера.Процедура "ResetX-Form" к объекту "Actor" должна быть применена в обязательном порядке. Если первым символом в имени этого объекта является восклицательный знак(например "!MyActor"), то объект будет всегда "смотреть" на виртуальную камеру.

Отражения

В All¹Mix реализована возможность рендеринга отражения в реальном времени для планарных объектов. Такие объекты так же не должны содержать более одного уникального материала.

Планарный объект может иметь любую форму, и даже состоять из отдельных разнесенных фрагментов. Главное чтобы все элементы объекта лежали в одной плоскости.

Как правило, объектами для назначения отражения служат пол, поверхность стола и т.п.

Для того чтобы All¹Mix воспринял объект как отражающий, необходимо в назначенном на него материале поставить "галку" для опции"Reflection" и установить "вес" отражения.

Поле "map" должно содержать процедурную карту "FlatMirror". Степень размытия отражения задается параметром "Bloor" в свойствах карты "FlatMirror".

2 AllMix 3d.jpg

  • Если в поле "Map" опции "Reflection" используется "Bitmap", то "отражения" строятся обычным образом - на основе выбранных текстурных карт. В этом случае объект не обязан быть планарным.

Анимация

Временную конфигурацию анимации следует привести к формату "Frames" (TimeConfiguration/TimeDisplay/Frames), поскольку для All¹Mix описание отрезков треков анимации задается именно в этом формате.

В All¹Mix проигрывание анимационных треков производится между некоторыми именованными состояниями объекта, с уникальным набором параметров: "position", "rotate", "scale". В дальнейшем будем называть эти состояния стейтами (от "State").

Принцип стейт-анимации заключается в том, что при работе в All¹Mix пользователь выбирает не конкретный отрезок анимационного трека для проигрывания, а "пункт назначения" - состояние, к которому должен "прийти" объект. При этом программа All¹Mix автоматически выбирает тот отрезок трека, начало которого соответствует текущему состоянию, а конец - целевому состоянию. Если такого отрезка трека не имеется, то переход из текущего состояния в конечное осуществляется мгновенно.

Описание используемых отрезков анимированных треков, соответствующих анимированным преходам между стейтами объекта задается в пользовательских свойствах этого же объекта в следующем формате:

<animation name="StateName _to_StateName " from="number" to="number" />

Например:

3 AllMix 3d.jpg

В данном примере описаны переходы между всеми состояниями, но это не обязательно. Из примера так же видно, что описывать отрезки анимации, соответствующие обратным переходам, необязательно. Поскольку All¹Mix умеет проигрывать треки как в прямом, так и в обратном направлении.

Экспорт из 3dsmax

Для использования 3D сцены в All¹Mix, необходимо экспортировать сцену в формат FBX (с опцией "Embed Media")

4 AllMix 3d.jpg