unity3d导入带动画的模型怎么添加物理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d导入带动画的模型怎么添加物理相关的知识,希望对你有一定的参考价值。
参考技术A 第1步打开unity3d场景在里面导入一个相对更复杂的模型。第2步首先我们给这个模型添加Rigdibody刚体组件。第3步接着在Compont给其添加Mesh Collider组件。第4步勾选里面的 Convex,会默认根据自己的模型生成一个碰撞范围,但是不是很精确。第5步如果要更精确的碰撞,我们可以根据模型对应的部分,创建多个碰撞网格模型。第6步然后我们展开模型,把里面的网格ear1拖放到Mesh中,然后勾选Convex就可以在对应的位置建立碰撞范围,比如这里的右边的耳朵。第7步接着我们可以再次添加一个Mesh Collider把模型的另一个耳朵ear也添加上碰撞范围ear2。第8步同样的方式我们可以把模型需要添加碰撞的地方都添加上去,然后运行就可以得到更真实的物理效果了。特别提示作为碰撞使用的每个模型网格点面不能超过256个,否则转换的时候会报错。使用unity3D制作场景的时候,我们需要在里面导入各种模型,其中有些比较复杂的模型我们需要给其添加碰撞效果,这时候我们可以使用对应的网格碰撞组件,然后自己设置相对更精确的网格作为碰撞检测的范围就可以了,下面就给大家带来实际操作,希望能帮助到有需要的人。

工具/软件
电脑型号:联想(Lenovo)天逸510S; 系统版本:Windows7; 软件版本:Unity3D
方法/步骤
第1步
打开unity3d场景在里面导入一个相对更复杂的模型。

第2步
首先我们给这个模型添加Rigdibody刚体组件。

第3步
接着在Compont给其添加Mesh Collider组件。

第4步
勾选里面的 Convex,会默认根据自己的模型生成一个碰撞范围,但是不是很精确。

第5步
如果要更精确的碰撞,我们可以根据模型对应的部分,创建多个碰撞网格模型。

第6步
然后我们展开模型,把里面的网格ear1拖放到Mesh中,然后勾选Convex就可以在对应的位置建立碰撞范围,比如这里的右边的耳朵。

第7步
接着我们可以再次添加一个Mesh Collider把模型的另一个耳朵ear也添加上碰撞范围ear2。

第8步
同样的方式我们可以把模型需要添加碰撞的地方都添加上去,然后运行就可以得到更真实的物理效果了。


特别提示
作为碰撞使用的每个模型网格点面不能超过256个,否则转换的时候会报错
带动画的实时脚本
【中文标题】带动画的实时脚本【英文标题】:Live Script with animation 【发布时间】:2017-01-06 22:50:08 【问题描述】:MATLAB 2016a 引入了Live Scripts,允许在脚本旁边显示绘图输出。是否可以以某种方式显示动画?比如下面的正则脚本代码会绘制几个点然后旋转axes
:
x = rand(10, 3);
plot3(x(:, 1), x(:, 2), x(:, 3), 'o')
for ii = 1:360
camorbit(1, 10*cos(ii/90*pi)*pi/45)
drawnow
pause(0.01)
end
如果这嵌入在实时脚本中,则会显示初始绘图,然后在循环运行时似乎没有任何反应,然后最后一个方面(与原始绘图相同)显示在新的显示项中。
或者,是否有与实时脚本中的图进行交互的选项(除了双击以在新图中打开图)?例如。 rotate3d
没有效果。
编辑:从 2019a 版开始,可以按照 release notes 制作动画。
【问题讨论】:
我没有 matlab 2016 来尝试这个,但你可以尝试一些事情:1)在旧的发布者中,如果你想要快照,你必须使用snapnow
而不是 drawnow
在出版商。如果 Live Scripts 从发布者那里借用了代码,那么这可能值得一试。 2) 如果您创建一个实际的电影对象而不是 for 循环并使用 movie
命令播放它,则可能会设置 LiveScript 以正确解释它。 3) 如果 LiveScript 是正确的基于 html 的,那么它可能支持动画 gif;使用imwrite
和单个帧创建一个。 (如果上述任何一项工作,请告诉我。:))
@TasosPapastylianou 感谢您的 cmets...1) 不起作用,2) movie
只显示最后一帧,3) 没有尝试过动画 gif。这是最后的手段:)
我感觉这得等到 2016b..
实时脚本不允许与绘图交互。我可以想到一个将 .gif 嵌入到 .html 导出的实时脚本中的解决方案。如果这有任何帮助,我可以提供解决方案,但建议向 mathworks 提交功能请求。
在一个稍微相关的注释中,introduced in R2016b 是实时编辑器图形输出的缩放/平移/旋转。它还不是程序化的(至少是公开的),但它正在朝着有用的方向发展。
【参考方案1】:
问题中发布的示例代码从 MATLAB 2019a 开始生成一个旋转图。它在 2018b 中还不起作用。 2019a 的 release notes 提到了
您可以在实时编辑器中启用 for 循环动画以显示更改 在随时间绘制的数据中。要在实时编辑器中启用动画, 将
matlab.editor.AllowFigureAnimations
设置为true
:s = settings; s.matlab.editor.AllowFigureAnimation.PersonalValue = true;
在示例脚本之前运行这两行将产生预期的行为。
【讨论】:
【参考方案2】:2016b 版添加了操作axes
的选项,当将鼠标悬停在axes
上时会出现控件。请注意,这不适用于不可见的axes
(Visible='off'
)。相反,必须隐藏标尺和背景:
ax = axes;
x = rand(9, 3);
plot3(ax,x(:, 1), x(:, 2), x(:, 3), 'x');
% Hide rulers and background color
ax.Color = [1 1 1 0];
ax.XAxis.Visible ='off';
ax.YAxis.Visible ='off';
ax.ZAxis.Visible ='off';
以subplot
排列的轴也可以单独操作。
【讨论】:
【参考方案3】:似乎答案是否定的 - Live Scripts 还太年轻,还不能提供丰富的功能。仅凭它们不可调试的事实就可以让我远离它们 1-2 个版本。 你看过Matlab Notebooks吗?如果您追求漂亮的格式和一些基本的交互性,这可能就是您所寻求的。
【讨论】:
如果我没记错的话,笔记本只有 Windows? 仅限 MS-word。您的目标是什么操作系统? 刚刚检查,它是Windows only。我希望它可以在 Windows 和 Mac 上运行,最好是在 Linux 上运行。 好的,抱歉我不能提供更好的答案。以上是关于unity3d导入带动画的模型怎么添加物理的主要内容,如果未能解决你的问题,请参考以下文章