大家小时候在玩玩具时肯定都幻想过这样的场景:想象着自己手上的玩具能动起来,就像《玩具总动员》里的玩具们一样有自己的性格,能够和自己一起玩耍。以前我也一直以为玩具总动员只是童话,让玩具拥有灵魂,能够动起来的想法只是幻想。但如今HMS Core 3D建模服务让这一幻想变成了现实。

原理解释

使用HMS Core 3D建模服务骨骼绑定能力就能让玩偶在手机屏幕上动起来,开发者只需要用普通手机拍摄二足人形物体的多张图像,建立静态的3D模型,通过云侧AI自动绑定算法后,自动生成模型的骨骼和蒙皮权重,通过业界主流引擎即可一键驱动。除了预置的动作还能加入自己动捕的个性化动作,让玩偶形象在屏幕上跟着节奏跳舞。

Demo演示

自动骨骼绑定能力开发步骤

在开始开发工作之前,需要先配置AppGallery Connect,同时请确保工程已经集成HMS Core SDK并且已经配置Maven仓地址。

  1. 使用云侧服务的能力,需要使用“agconnect-services.json”里的api_key值,在应用初始化时通过api_key或者AccessToken来设置应用鉴权信息,AccessToken的优先级较高。

通过setAccessToken方法设置AccessToken,在应用启动时初始化设置一次即可,无需多次设置。

ReconstructApplication.getInstance().setAccessToken("your AccessToken");

获取Access Token可参见基于OAuth 2.0开放鉴权客户端模式。

通过setApiKey方法设置api_key,在应用启动时初始化设置一次即可,无需多次设置。

ReconstructApplication.getInstance().setApiKey("your api_key");

当在AppGallery Connect上注册应用时,会给您的应用分配api_key。

  1. 新建3D物体建模引擎并初始化,新建自动骨骼绑定配置器。
// 新建3D物体建模引擎
Modeling3dReconstructEngine modeling3dReconstructEngine = Modeling3dReconstructEngine.getInstance(context);
// 新建骨骼绑定蒙皮配置器
Modeling3dReconstructSetting setting = new Modeling3dReconstructSetting.Factory() // 设置工作模式为图片模式 .setReconstructMode(Modeling3dReconstructConstants.ReconstructMode.PICTURE) // 设置任务类型 .setTaskType(Modeling3dReconstructConstants.TaskType.AUTO_RIGGING) .create();
  1. 新建上传监听器回调,用于处理拍摄的物体图片上传结果
private Modeling3dReconstructUploadListener uploadListener = new Modeling3dReconstructUploadListener() { @Override public void onUploadProgress(String taskId, double progress, Object ext) { // 上传进度 } @Override public void onResult(String taskId, Modeling3dReconstructUploadResult result, Object ext) { // 上传成功处理 } @Override public void onError(String taskId, int errorCode, String message) { // 上传失败处理 }
};
  1. 使用3D物体建模配置器初始化任务,并且给新建的3D物体建模引擎设置上传监听器,上传采集的图片数据。
// 使用3D物体建模配置器初始化任务(该接口需要在子线程中调用)
Modeling3dReconstructInitResult modeling3dReconstructInitResult = modeling3dReconstructEngine.initTask(setting);
String taskId = modeling3dReconstructInitResult.getTaskId();
// 设置上传监听器
modeling3dReconstructEngine.setReconstructUploadListener(uploadListener);
// 调用3D建模引擎的上传接口,上传采集的图片数据
modeling3dReconstructEngine.uploadFile(taskId, filePath);
  1. 查询自动骨骼绑定任务状态
// 查询3D物体建模任务状态需要初始化任务处理类
Modeling3dReconstructTaskUtils modeling3dReconstructTaskUtils = Modeling3dReconstructTaskUtils.getInstance(context);
// 调用查询接口获取3D物体建模任务状态(该接口需要在子线程中调用)
Modeling3dReconstructQueryResult queryResult = modeling3dReconstructTaskUtils.queryTask(taskId);
// 获取建模任务状态
int status = queryResult.getStatus();
  1. 新建下载监听器回调,用于处理自动骨骼绑定模型文件的下载结果
private Modeling3dReconstructDownloadListener modeling3dReconstructDownloadListener = new Modeling3dReconstructDownloadListener() { @Override public void onDownloadProgress(String taskId, double progress, Object ext) { // 下载进度 }     @Override public void onResult(String taskId, Modeling3dReconstructDownloadResult result, Object ext) { // 下载成功处理 } @Override public void onError(String taskId, int errorCode, String message) { // 下载失败处理 }
};
  1. 新建的下载配置项并将新建的下载监听器传入新建的3D物体建模引擎,下载骨骼绑定成功的模型文件
// 设置下载配置项
Modeling3dReconstructDownloadConfig downloadConfig = new Modeling3dReconstructDownloadConfig.Factory() // 配置OBJ或glTF格式 .setModelFormat(Modeling3dReconstructConstants.ModelFormat.OBJ) // 配置普通或PBR模式 .setTextureMode(Modeling3dReconstructConstants.TextureMode.PBR) .create();
// 设置下载监听器
modeling3dReconstructEngine.setReconstructDownloadListener(modeling3dReconstructDownloadListener);
// 调用3D物体建模引擎的下载接口,传入任务ID,下载地址和下载配置项,下载模型文件
modeling3dReconstructEngine.downloadModelWithConfig(taskId, fileSavePath, downloadConfig);

更多应用场景

使用骨骼绑定功能,除了可以实现让玩偶在手机屏幕上跳舞,还可以帮助开发者做很多其他有趣又强大的功能。如电商领域,使用自动骨骼绑定能力可以驱动手办进行动态展示,从而增加产品的吸引力;在教育领域,可以将骨骼绑定和音频功能结合,让孩子手中的玩偶跳舞讲故事,寓教于乐;在游戏领域,可以将骨骼绑定和AR功能结合,让3D模型走入真实场景中。

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

如何给玩偶建模并让它跳个舞?相关推荐

  1. 你觉得跳广场舞的都是一群什么样的人?

    我觉得跳广场舞的主要是一群正常的退休老年妇女.硬要说她们有什么不一样,或许可能有以下几个方面: 一是喜欢跳舞. 许多人小时候在学校时就曾经参加过班级.学校的文娱活动和演出,老了看到社会流行广场舞,很自 ...

  2. 维汉一家亲 60岁维族大妈免费教市民跳新疆舞(图)

    乔金红在教市民跳新疆舞.本报记者 宗兆宣 通讯员 宋旭涛摄 60岁的维吾尔族大妈乔金红在海口免费教市民跳新疆舞 "远方的客人快下马,请你尝块哈密瓜:远方的客人快下马,请你尝块哈密瓜--&qu ...

  3. 机器人为你跳钢管舞,如此“销魂”

    作者 | 神经小刀 来源 | HyperAI超神经(ID:HyperAI) [导语]近日,法国的一家俱乐部为了周年庆典,邀请了跳钢管的机器人前来助兴.这两个跳艳舞的机器人,是经由一位艺术家,通过废弃材 ...

  4. 人老了,到底是应该多运动还是多静养?跳广场舞要注意啥?

    中老年人每天没事干,忙活了大半辈子当然要好好的享受一下老年生活.不论生活精彩与否,最重要的还是想要一个健康的身体安度晚年.有些中老年人开始锻炼身体,没事干的时候跳跳舞,有些中老年人认为老了就不要再折腾 ...

  5. [继续八卦]微软CEO史蒂夫·鲍尔默学跳猴子舞

    微软现任CEO鲍尔默,做销售出身,向以简单粗暴.激情洋溢闻名.Internet上流传着关于这位仁兄的一些有趣视频--感谢YouTube,这些视频现在传播甚广. 还是从"很久很久以前" ...

  6. NowCoder每天下班都会经过万达广场,那里有很多大妈伴随着很high的音乐,在跳广场舞,脖子扭扭,屁股扭扭,乐哉,乐哉! 在广场上,大妈大婶排成 m 排,n列的队伍,其中有一个大妈所在的行中年龄最

    NowCoder每天下班都会经过万达广场,那里有很多大妈伴随着很high的音乐,在跳广场舞,脖子扭扭,屁股扭扭,乐哉,乐哉! 在广场上,大妈大婶排成 m 排,n列的队伍,其中有一个大妈所在的行中年龄最 ...

  7. 五 跳个舞你就满足了吗?--机器人动力学

    通过三四章的学习,我们已经可以操作机器人来改变他的关节角度了,也就是说,我们可以让机器人跳舞咯,只需要编排好关节角度,在一定周期给信号就OK啦-----当然也可以赋予一个random值让它乱动哦--- ...

  8. 26岁年薪百万!华为最新“天才少年”曝光:B站博主,爱跳街舞

    最近,据电子科技大学披露,2022年秋季校园招聘中,该校博士研究生宁博宇进入华为,成为"天才少年"项目一员,年薪百万. 宁博宇表示:"我只是一个普通学生,这次入选是我运气 ...

  9. 英雄!「安可心」请你跳支舞

    工程源码:请在公众号中回复[action]获取工程代码. 在线演示:http://example.creator-star.cn/action-demo 你可以点击[阅读原文]在手机上体验 Creat ...

最新文章

  1. Java 多线程同步和异步详解
  2. catia 如何提取cgr面_CATIA教程之创成式外形设计金元宝
  3. 实现透明渐变的Activity
  4. mysql 优化300例_PHP+MySQL实现对一段时间内每天数据统计优化操作实例
  5. python装饰器作用噜咕_python 装饰器的实际作用有哪些
  6. NHibernate.3.0.Cookbook第三章第9节的翻译
  7. 搞笑日常:有位程序员的老爸是个什么感觉?过程你绝对意想不到!
  8. 软件变更控制 - 控制成本溢出
  9. 软件测试第一部分——初步概念与过程
  10. Python+OpenCV:图像快速角点检测算法(FAST Algorithm for Corner Detection)
  11. UML——实现图(构件图与部署图)
  12. linux symbol字体下载,解决:WPS for Linux提示“系统缺失字体symbol、wingdings、wingdings 2、wingdings 3、webding”...
  13. 光缆弹性模量计算_OPGW光缆及规格参数.doc
  14. Horizon 桌面用户会话10h后超时断开
  15. BSH验厂介绍BSH博世社会责任审核内容
  16. 结构化程序设计方法:自顶向下,逐步求精
  17. orange's一个操作系统的实现--学习过程  第三章:a  为什么需要认识IA32架构IntelCPU保护模式
  18. ★追风的牛★添翼圈Moto Droid玩家手册(感谢原作者,只是做个备份而已,如果牵扯到越劝,我会立即删掉)
  19. Win10自定义路径位置安装WSL2 (Ubuntu 20.04) 并配置CUDA
  20. android动态mac地址,android 设备唯一码的获取,Cpu号,Mac地址

热门文章

  1. Apollo安装记录
  2. java postgresql date_javapostgresql时区总结
  3. HTML5基础实例(三)
  4. win7总是显示加载计算机,win7系统打开“此电脑”很慢总是在加载不显示的具体办法...
  5. 130 余个相见恨晚的超实用网站,总有一个用得着
  6. 美苏太空竞赛历年卫星火箭发射以及历史事件介绍
  7. 《JOEL说软件》-- Jole Spolsky
  8. ppspp android编译,PPSSPP Windows和Android更新版本至1.1~~
  9. 超图平台倾斜摄影发布流程
  10. 用脚本语言对 Excel 分组汇总