我们如何根据状态图更改 3D 动画对象(代理表示)颜色?

Posted

技术标签:

【中文标题】我们如何根据状态图更改 3D 动画对象(代理表示)颜色?【英文标题】:How can we change 3D animation object (agents representation) color based on statechart? 【发布时间】:2020-09-06 06:34:44 【问题描述】:

我有一个人代理,他有一个人的 3D 表示(来自 anylogic 的人的默认 3D 图片)。我们可以根据状态改变那个 3D 人物代理的颜色吗?例如,当一个代理从状态 A 移动到 B 时,它会将颜色从黄色变为红色。怎么做? 我尝试使用 shapeFillColor,但 anylogic 没有检测到 3D 人体表示为形状(如多边形、三角形),状态图没有接受我的命令。如果代理是用一些多边形手动绘制的,我们是否只能更改代理的颜色?将不胜感激任何反馈。谢谢,

agent's 3D representation

【问题讨论】:

【参考方案1】:

你可以这样做,它不是 100% 直观的:

    检查您的 3D 模型属性并记下材料名称(例如“Material__6__Surf”--> 注意:数字前后有 2 个下划线!!) 在运行时,只需调用worker.setColor("Material__6__Surf", red);,相应的颜色就会改变(在这种情况下是裤子)

【讨论】:

哇!!那太棒了!你是一个真正的问题解决者。谢谢本杰明! 哈哈,其实我自己也得想办法,但我很好奇,因为我以前也遇到过类似的问题。所以双赢:)

以上是关于我们如何根据状态图更改 3D 动画对象(代理表示)颜色?的主要内容,如果未能解决你的问题,请参考以下文章

从 Unity3d 中的 Animator 获取动画状态

如何将固定颜色条添加到 3D 散点动画图并相应地对点进行颜色映射?

关于动画的几种状态表示的含义以及能够使用2d动画表述为什么要使用3d动画表述

Unity3D之Mecanim动画系统学习笔记:Animation State

2D拾荒者开发所学U3D的基础知识

使用 Plotly 绘制动画 3D 曲面图