В разработке находится утилита для качественной подгонки скелета\актера под набор мокап точек, в том числе с точной калибровкой с помощью ROM файла.

* ROM — анимация диапазона движения суставов

Простой пример подгонки таза актера на Питоне

Скрипт берет выделенные маркеры таза из набора точек, рассчитывает их центр и перемещает туда фигуру таза актера.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from pyfbsdk import *
actor = FBApplication().CurrentActor
if actor:
v = FBVector3d()
# get markers set for hips
markerSet = actor.MarkerSet
# calculate hips markers center
count = markerSet.GetMarkerCount(FBSkeletonNodeId.kFBSkeletonHipsIndex)
for i in range(0, count):
if markerSet.GetMarkerUsed(FBSkeletonNodeId.kFBSkeletonHipsIndex, i):
model = markerSet.GetMarkerModel(FBSkeletonNodeId.kFBSkeletonHipsIndex, i)
if model:
v2 = FBVector3d()
model.GetVector(v2)
v[0] = v[0] + v2[0]
v[1] = v[1] + v2[1]
v[2] = v[2] + v2[2]
count = markerSet.GetUsedMarkerCount(FBSkeletonNodeId.kFBSkeletonHipsIndex)
if (count > 0):
v[0] = v[0] / count
v[1] = v[1] / count
v[2] = v[2] / count
# set actor translation to the center of markers
actor.SetActorTranslation(v)
v[0] = 1.0
v[1] = 1.0
v[2] = 1.0
actor.SetDefinitionScaleVector(FBSkeletonNodeId.kFBSkeletonHipsIndex, v)

Contact

Есть ли есть желающие или заинтересованные в данной разработке, обращайтесь. e-mail to: Neill<point>Solow<at>gmail<point>com

SkeletonBuilder в разработке
Метки:            

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *