ARKit以及Unity自带的3D模型往往是不能够满足日常开发使用的,但是对于新手小白来说,制作一个3D模型又比较困难,因此,我们往往通过一些3D模型资源网站下载,并加入到我们的项目中。
资源网站:
网站名称 | 网址 | 描述 |
---|---|---|
CG模型网 | https://www.cgmodel.com/ | 部分免费 不可商用 |
爱给网 | http://www.aigei.com/ | 完全免费 部分商用 |
Unity资源商店 | https://assetstore.unity.com/ | 部分免费 模型和账号绑定 |
Free 3D | https://free3d.com/ | 免费区免费 网站打开慢 |
mixamo | https://www.mixamo.com/ | 完全免费 动画绑定 推荐 |
Unity Chan | https://unity-chan.com/ | 完全免费 开源 推荐 |
在当前Assets中新建文件夹Model,通过 Import New Asset 将下载好的模型导入进来。
默认导入后的自定义3D模型是没有贴图的,需要选中该模型,在Inspector中选择Materials,点击Textures的选择菜单,选择模型所在目录,点击Choose,如果提弹出Fix提示框,选择Ignore。
将模型放入场景,如出现没有头发或者衣物材质异常的问题,在Model路径下新建Material,进行相关配置,将配置好的材质拖到场景中的模型上。
效果展示:
在当前场景目录下,新建Prefabs文件夹,并将场景中的3D模型放入Prefabs作为预制,并删除当前场景中的模型
因为模型与现实是等比例大小,所以需要将模型等比例缩小。
把前两节项目中的cube更换为配置好的3D模型。
在当前场景目录下,新建Scripts文件夹,并在文件夹中创建Animator Controller,点击该文件,并自定义3D模型的动画拖拽到场景中。
进行相关配置
参数说明:
loap time: 循环播放
loap pose: 原地播放
将动画脚本加入到模型
脱卡,即卡片消失后模型依然存在。编辑GenerateImageAnchor脚本
void UpdateImageAnchor(ARImageAnchor arImageAnchor)
{
// Debug.LogFormat("image anchor updated[{0}] : tracked => {1}", arImageAnchor.identifier, arImageAnchor.isTracked);
if (arImageAnchor.referenceImageName == referenceImage.imageName)
{
if (arImageAnchor.isTracked)
{
if (!imageAnchorGO.activeSelf)
{
imageAnchorGO.SetActive(true);
}
imageAnchorGO.transform.position = UnityARMatrixOps.GetPosition(arImageAnchor.transform);
imageAnchorGO.transform.rotation = UnityARMatrixOps.GetRotation(arImageAnchor.transform);
}
else if (imageAnchorGO.activeSelf)
{
// 脱卡. 取消找不到识别对象时让模型消失
// imageAnchorGO.SetActive(false);
}
}
}
注:本ARKit系列博客是根据 【子羽老师】发布在腾讯课堂的ARKit视觉风暴课程学习整理总结:https://ke.qq.com/course/575145
本文由 代码君 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://www.loseboy.cn/archives/05使用自定义的3d模型
最后更新:2020-05-06 11:26:06
Update your browser to view this website correctly. Update my browser now