Здравствуйте! Мучаюсь вопросом, как объединить несколько ГО без потери анимации на каждом из ГО т.е. есть у меня много плашек которые крутятся вокруг общего центра по овальной траектории, все хорошо, но проблема в том, что мне нужно объединить все в один меш, а при использовании обыкновенного аттач, слетают с приаттаченных полигонов анимация и они вращаются относительно объекта к которому присоединялись. в прикрепленном файле сама сцена с нужными ГО
можно анимацию снести мою, но как то ну.жно сделать, чтобы был 1 меш и полигоны вращались именно так как теперь
Попробуй выделить все объекты и запустить код. Переменные в начале кода задают диапазон кадров, а также запекание каждого n-го кадра
В результате будет создан новый объект EditablePoly с анимированными вершинами.
(
local startFrame = 0
local endFrame = 100
local nthFrame = 1
fn bakeObject obj sFrame eFrame nthFrame =
(
local copyObj = snapShot obj
copyObj.pivot = [0,0,0]
convertToPoly copyObj
local popGetVert = PolyOp.GetVert
local popSetVert = PolyOp.SetVert
animate on
(
for f = sFrame to eFrame by nthFrame do
(
for v in #{1..(PolyOp.GetNumVerts obj)} do
(
local vPos = at time f (popGetVert obj v)
at time f (popSetVert copyObj v vPos)
)
)
)
return copyObj
)
local bakedObjects = #()
for o in selection where classOf o == Editable_Poly do
(
append bakedObjects (bakeObject o startFrame endFrame nthFrame)
)
for i = 2 to bakedObjects.count do
(
PolyOp.Attach bakedObjects[1] bakedObjects[i]
)
)
Royal Ghost
Или через boolean а потом point cache/alembic ...
Владислав БодюлПопробуй выделить все объекты и запустить код. Переменные в начале кода задают диапазон кадров, а также запекание каждого n-го кадра
В результате будет создан новый объект EditablePoly с анимированными вершинами.
(
local startFrame = 0
local endFrame = 100
local nthFrame = 1
fn bakeObject obj sFrame eFrame nthFrame =
(
local copyObj = snapShot obj
copyObj.pivot = [0,0,0]
convertToPoly copyObj
local popGetVert = PolyOp.GetVert
local popSetVert = PolyOp.SetVert
animate on
(
for f = sFrame to eFrame by nthFrame do
(
for v in #{1..(PolyOp.GetNumVerts obj)} do
(
local vPos = at time f (popGetVert obj v)
at time f (popSetVert copyObj v vPos)
)
)
)
return copyObj
)
local bakedObjects = #()
for o in selection where classOf o == Editable_Poly do
(
append bakedObjects (bakeObject o startFrame endFrame nthFrame)
)
for i = 2 to bakedObjects.count do
(
PolyOp.Attach bakedObjects[1] bakedObjects[i]
)
)
Попробовал использовать оба варианта, оба работают в максе, но к сожалению анимация по какой то причине не переносится в Unity, в настройках экспорта включаю Baked анимации с 0 по 100 кадр, но анимация не переносится. Использую fbx
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
сенека123
можно анимацию снести мою, но как то ну.жно сделать, чтобы был 1 меш и полигоны вращались именно так как теперь
Вложения
Андрей Бельский
Royal Ghost
Или через boolean а потом point cache/alembic ...
Владислав Бодюл
В результате будет создан новый объект EditablePoly с анимированными вершинами.
( local startFrame = 0 local endFrame = 100 local nthFrame = 1 fn bakeObject obj sFrame eFrame nthFrame = ( local copyObj = snapShot obj copyObj.pivot = [0,0,0] convertToPoly copyObj local popGetVert = PolyOp.GetVert local popSetVert = PolyOp.SetVert animate on ( for f = sFrame to eFrame by nthFrame do ( for v in #{1..(PolyOp.GetNumVerts obj)} do ( local vPos = at time f (popGetVert obj v) at time f (popSetVert copyObj v vPos) ) ) ) return copyObj ) local bakedObjects = #() for o in selection where classOf o == Editable_Poly do ( append bakedObjects (bakeObject o startFrame endFrame nthFrame) ) for i = 2 to bakedObjects.count do ( PolyOp.Attach bakedObjects[1] bakedObjects[i] ) )сенека123
Попробовал использовать оба варианта, оба работают в максе, но к сожалению анимация по какой то причине не переносится в Unity, в настройках экспорта включаю Baked анимации с 0 по 100 кадр, но анимация не переносится. Использую fbx
Royal Ghost