jjzjj

突破次元壁垒,让身边的玩偶手办在屏幕上动起来!

HMS Core 2023-03-28 原文

因为喜爱,人们会将二次元形象制作成玩偶手办,然而没有生命气息的冰冷模型并不能满足人们互动性的情感需求。如何能让带有情感寄托的玩偶手办更具表现力和感染力呢?

近日,HMS Core 3D建模服务上线自动骨骼绑定能力,可以让已建成模型的二足人形物体根据自定义动作活动起来,甚至与用户产生互动,不再只是冰冷僵硬的玩偶手办。

那么,通过自动骨骼绑定能力动起来的3D模型,可以用来干什么呢?

比如,使用音视频编辑能力,可以将小朋友喜欢的玩偶建成3D模型,并加上舞蹈动作、配音和儿歌故事,剪辑成较为完整的儿童教学视频,帮助孩子更快更好的接收知识;

又比如,结合3D Engine的动作制作能力,通过实时骨骼动画、面部表情驱动、全身IK、多重动画状态机融合等功能,可实现流畅的3D动画效果,再加上3D Engine的高清渲染与视觉特效、智能寻路导航等功能,即可制作一款成熟的动画游戏;

再比如,借助AR Engine的运动跟踪、人体和人脸跟踪、环境跟踪等AR能力,可以在镜头下将3D模型置入真实的场景中,并与用户产生互动。该场景可应用于AR游戏领域,实现游戏中自定义3D模型及模型动作的功能,让AR互动游戏更具趣味性。

除此之外,我们还可以突破想象,在建模过程中将生活中的瓶瓶罐罐、随用物件加上两条“腿”,让自动骨骼绑定能力不再局限于特定模型类别,万物皆可活动起来,真正实现“万物复苏”的有趣景象。

实现原理

自动骨骼绑定服务面向的是有3D游戏、3D动画制作等需求的开发者,通过输入一个二足人形物体的静态3D模型,即可基于AI算法进行肢体绑定,并自动生成模型的骨骼和蒙皮权重,完成自动骨骼绑定,然后通过改变骨骼的朝向和位置,动态驱动模型完成行走、跳跃、跳舞等自定义动作,以此赋予3D模型运动的能力。

能力优势

1、 无需人工干预,即可实现一键绑定蒙皮。

骨骼绑定分为手动绑定和自动绑定,目前多数高精度的自动骨骼绑定方法,除了要求模型处于标准姿态外,还需要手动放置七八个关键点才可绑定。而华为的自动骨骼绑定能力基于AI智能算法,只需要让模型处于一个大致正确的位置,甚至都不要求模型绝对的直立、朝前,即可对模型完成精确的绑定,无需手动放置关键点。

2、 基于海量数据,提高AI绑定算法的准确性和泛化性。

那么,华为自动骨骼绑定能力是如何进行3D模型数据制作,确保AI绑定算法准确性的呢?不同于耗时耗力的传统3D模型数据制作方法,华为自动骨骼绑定能力的3D模型数据制作仅需要用普通手机拍摄采集物体图像,通过华为自研算法自动化生成3D角色数据。在针对大规模生成的数十万3D模型绑定数据进行算法训练时,只需要在少量的真实数据上进行微调,即可得到高准确性、高泛化性的AI模型。

输入模型约束

考虑到3D世界模型的多样化,为了保证自动骨骼绑定能力算法的精准性,我们对绑定算法的输入模型作出以下建议:

来源:使用双足人形手办(不含手持物体)、毛绒玩具的照片扫描建模;

外观:从视觉上看,网格无分离,四肢与身体无粘连,无大块的附属物,尽量双腿站立,双臂张开;

姿态:整体姿态为z轴朝前,y轴朝上,各关节可有不超过15°的扰动,不对对称性作要求;

Mesh:Mesh为三角面或四边面,顶点数量不应超过80k,模型整体没有大规模面片缺失;

其他:身体和四肢比例符合大部分玩具风格,肢体不应过细、过短(手臂和腿宽度比例不能小于模型最长边的8%),模型姿态整体竖直朝前。

华为HMS Core 3D建模服务自动骨骼绑定能力,通过智能化技术牵引,大大降低了3D模型动画的制作门槛,动画制作不再是需要复杂设备的高难度的技术能力,即便非专业人士使用普通手机也能轻松完成动画制作,实现日常生活中更多的创意作品制作。

了解更多详情>>

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

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

有关突破次元壁垒,让身边的玩偶手办在屏幕上动起来!的更多相关文章

  1. 屏幕录制为什么没声音?检查这2项,轻松解决 - 2

    相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声

  2. ruby-on-rails - ruby:将数组的每个元素用附加引号引起来 - 2

    我有以下字符串:a="001;Barbara;122"我拆分成字符串数组:names=a.split(";")names=["001","Barbara","122"]我应该怎么做才能将每​​个元素另外用''引号括起来?结果应该是names=["'001'","'Barbara'","'122'"]我知道这听起来很奇怪,但我需要它在ruby​​onrails中进行数据库查询。出于某种原因,如果我的名字在“”引号中,我将无法访问数据库记录。我在数据库中确实有mk1==0006但rails不想以某种方式访问​​它。但是,它确实访问1222。sql="SELECTmk1,mk2,pk1,pk

  3. ruby-on-rails - 为什么我的 Rails 服务器渲染时间不加起来? - 2

    我的Rails应用程序在暂存服务器上运行速度非常慢,这让我遇到了一些麻烦。最令人困惑的是每个请求的日志输出的最后一行。看起来View和数据库时间甚至不接近整个渲染时间。在一页上,完成时间大约1000毫秒,View大约450毫秒,数据库大约20毫秒。渲染页面所需的其余时间从何而来? 最佳答案 当事情变得神秘时......分析器是你的friend!分析器将统计哪些方法被调用最多以及每个方法调用花费多长时间。ruby-prof当我在RubyLand时,它会帮我解决这个问题,它会生成一个漂亮的调用图(如果需要,可以是html格式),这使得查

  4. ruby-on-rails - 在服务器端检测屏幕尺寸和像素密度? - 2

    我一直在做一些研究,我想我已经知道答案了,但我想知道是否有任何方法可以在不使用javascript或依赖CSS3媒体的情况下获得设备的屏幕尺寸和像素密度查询。本质上,我正在研究如何获取屏幕分辨率和像素密度,以便服务器可以决定在URI请求中为服务器提供哪个图像。到目前为止,我还没有发现任何证据表明这是可能的,但我想嘿,为什么不问问呢? 最佳答案 我不完全同意上面的正确答案。实际上,这个答案在很多情况下都是正确的……但理论上并非如此。通常向Web服务器发出的请求包含一个User-Agent字段,从理论上讲,该字段可用于识别有关设备屏幕分

  5. ruby - 什么是最像 Ruby 的生成 3 个正整数加起来等于 100 的唯一组合的方法 - 2

    条件:a+b+c=100a,b,cpositiveintegersor0期望的输出:[[0,0,100],[0,1,99],...#allotherpermutations[99,1,0],[100,0,0]] 最佳答案 我会写:(0..100).flat_map{|x|(0..100-x).map{|y|[x,y,100-x-y]}}#=>[[0,0,100],[0,1,99]],...,[99,1,0],[100,0,0]]站点注释1:这是一个经典示例,其中列表推导式大放异彩(如果某处有条件则更是如此)。由于Ruby没有LC,我

  6. ruby floats 根据顺序加起来不同的值 - 2

    所以这很奇怪。我在Ruby1.9.3中,float加法没有像我预期的那样工作。0.3+0.6+0.1=0.99999999999999990.6+0.1+0.3=1我在另一台机器上试过了,得到了同样的结果。知道为什么会发生这种情况吗? 最佳答案 浮点运算是不精确的:它们将结果四舍五入到最接近的可表示浮点值。这意味着每个float操作是:float(aopb)=mathematical(aopb)+rounding-error(aopb)如上式所示,舍入误差取决于操作数a和b。因此,如果您以不同的顺序执行操作,float(float(

  7. ruby - 以编程方式在 Ruby 中获取桌面的屏幕截图? - 2

    我问了这个关于takingapictureofawebpageprogrammatically的问题,我已经下载并获得了webkit2png工作(为博客等HTML页面拍照)。太酷了,谢谢你给我看!现在我想开始做更多的事情,比如能够在加载Flash网站和我的桌面后拍照。是否可以使用webkit2png为Flash网站拍照(考虑到您可能需要等待几秒钟才能加载)?但主要问题是,如何以编程方式为桌面拍照?这将使我能够更好地控制正在发生的事情。 最佳答案 您可以使用xwd(1)获取根窗口的屏幕截图:xwd-display:0-root|xwd

  8. ruby - (Watir webdriver) 在 OSX 10.9 中使用多显示器时如何将浏览器移动到另一个屏幕 - 2

    我知道有一个名为browser.window.move_to(0,0)的函数可以将浏览器移动到不同的位置,但OSX10.9对它来说是全新的。有什么方法可以将浏览器移动到另一个桌面吗?例如。在“桌面2”中触发命令的控制台,但我希望浏览器出现在“桌面1”中。非常感谢! 最佳答案 哈,在我尝试这个之前我正要说这可能是不可能的:browser.window.move_to(-1200,0)我的第二台显示器位于主屏幕的左侧。有效。好问题。您需要花点时间才能正确使用它,但watir似乎能够使用整个显示器Canvas。例如,如果您的显示器位于主屏

  9. ruby - 如何使用 ruby​​ 和 unix 服务器截取网页的屏幕截图? - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我正在尝试以编程方式创建大量网页的缩略图,这些网页托管在我自己的基于ruby​​/rails的网站上。我希望能够编写一个独立的ruby​​代码,看起来像这样:require'awesome-screenshot-maker'items.eachdo|id|url="http://foo.com/bar/#{id}"shooter=AwesomeScreenshotMa

  10. ruby-on-rails - 在 rake 任务中打印到屏幕 - 2

    我有一个长时间运行的rake任务。我时不时地在屏幕上打印更新,让我知道任务已经完成了多长时间。puts"Almostthere..."我的问题是所有puts语句似乎都缓冲在某处,直到任务完成后才会打印到屏幕上。届时,它们将被一次性全部打印出来。有什么方法可以强制他们在任务运行时打印吗? 最佳答案 STDOUT.sync=true 关于ruby-on-rails-在rake任务中打印到屏幕,我们在StackOverflow上找到一个类似的问题: https://

随机推荐