gpt4 book ai didi

python - 在不平坦的表面上定位物体

转载 作者:行者123 更新时间:2023-12-01 08:10:11 28 4
gpt4 key购买 nike

我有一个动画定位器,它沿着不平坦的表面移动。然而,它的轴/旋转 channel 不符合不平坦的表面。

是否有工具或脚本允许我使这个动画定位器在移动时在表面上对齐/定向?

最佳答案

首先你尝试过正常约束吗:

normalConstraint -weight 1 -aimVector 1 0 0 -upVector 0 1 0 -worldUpType "vector" -worldUpVector 0 1 0;

否则,您可以使用ClosestPointOnMesh(基于uv):https://download.autodesk.com/us/maya/2008help/Nodes/closestPointOnMesh.html

# USER DEFINE
surface = cmds.polySphere(n='pSphere1')
movingObj = cmds.spaceLocator(n='locator1')[0]

# AUTOMATION
aimLocator = cmds.spaceLocator(n='aimloc')[0]
closest = cmds.createNode('closestPointOnMesh')

surface_sh = cmds.listRelatives(surface, ni=True)[0]
cmds.connectAttr(surface_sh+'.worldMesh[0]', closest+'.inMesh')
cmds.connectAttr(surface_sh+'.worldMatrix[0]', closest+'.inputMatrix')
cmds.connectAttr(movingObj+'.t', closest+'.inPosition')

# this command is bugged in python so, lets use mel.eval
cmds.select(surface, aimLocator)
pctr = mel.eval('pointOnPolyConstraint -offset 0 0 0 -weight 1;')[0]

cmds.connectAttr('{}.parameterU'.format(closest), '{}.target[0].targetU'.format(pctr), f=True)
cmds.connectAttr('{}.parameterV'.format(closest), '{}.target[0].targetV'.format(pctr), f=True)

cmds.orientConstraint(aimLocator, movingObj, mo=False, weight=1)

无论如何,你都可以插入正常输出,我让你按照他的教程进行操作(俄语,但每个步骤都在这里):https://www.youtube.com/watch?v=dPliNB4uZ0w

关于python - 在不平坦的表面上定位物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55306733/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com