专注3d人物建模,动漫人物3d建模,卡通人物3d建模,游戏人物3d建模
3D建模工作室人物 角色 动漫 卡通
电话(微信):18566234035
当前位置:主页 > 新闻资讯 > 行业资讯 >

3d人物建模捏脸怎么做

时间:2021-04-24 17:01:42 作者:人物建模 来源:三维建模公司 点击:

内容简介:我们提供3d人物建模,三维设计服务,包含角色、动漫、卡通、q版、手办、3d打印等建模代做。下面给您分享的内容是3d人物建模捏脸内容,一起来读。

  深圳三维建模公司专注提供3d人物建模,三维设计服务,包含角色、动漫、卡通、q版、手办、3d打印等建模代做。下面给您分享的内容是3d人物建模捏脸。

  3D捏脸在游戏中是一种非常常见和常规的操作,但在业内可能还是第一次,比较新;此外,负责资源推广的同事给出了很好的资源推广,产生了相当好的数据效果。

  一、3d人物建模捏脸

  与传统的H5相比,这里涉及的3D技术会更多,因此在前期至少需要准备以下三个工具:

  1:三. js:

  用Java写的一个WebGL库可以轻松实现很多3D功能,在WebGL中可以简单粗暴地理解为jQuery。

  2:3DS Max:

  3D模型。游戏开发端的max源文件需要用3DS Max打开编辑,所以也需要安装一个副本,就像写一页需要Photoshop一样。

  同样的原因。

  3: sketchfab.com:

  网站上有很多资料,但我们需要的是它提供的在线编辑功能。编辑器相比3DS有很多功能

  Max更方便,但是需要注意的是,免费用户需要下载的话,需要发布你编辑的3D模型,发布意味着其他用户也可以看到你的模型。

  除了工具,游戏开发端还需要提供相关的3D模型和数据:

  1.角色3D模型:

  需要给出一个骨骼和皮肤绑定在脸上的3D角色模型源文件,一般是。max,但也可能是其他3D工具做的模型。

  如果有需要动态替换的身体部位(比如饰品的动态切换),也要提供相应部位的源文件。

  2.面部贴图材料:

  除了基本的面团,眉毛、胡须、腮红、纹身、眼影和唇彩的贴图也需要单独提供,用于动态替换时面团的合成。具体用法后面会讨论。

  3.捏合参数:

  因为需要和游戏同步,所以需要给出相关参数。比如唇型大小可以在0-31档调整,那么每个档调整多少,怎么调整。

  4.挤压面数据的导出格式:

  最终的揉面数据需要在游戏中导出和应用,所以最终的揉面参数导出的格式需要和游戏中的一致,需要在Web端实现一套具体的数据格式规则。

  三、捏脸技术的实现

  1.使用三个. js构建场景和镜头

  三. js的

  3D场景和模型通过WebGL呈现在画布上。在介绍了Trie . js之后,场景、相机、灯光和渲染器需要先运行,每个基本代码都有几行。使用不同的对象方法可以达到不同的效果。更具体的方法,请参考官方文件。

  

3d人物建模

 

  代码执行后,你应该会看到一张带有网格辅助的3D场景出现在页面中:

  

3d人物建模捏脸

 

  2.加载模型

  设置场景后,需要加载三维模型。模型格式和我们常用的图片格式(JPG/巴布亚新几内亚)一样,有很多种模型。3DS Max的默认导出格式是FBX。

  相比FBX,三人行官方推荐GLTF。我在项目中单独测试了同一个模型。GLTF的面积比FBX小得多,更有利于网络传输。至于其他优点,你可以看看这篇文章。

  如果你需要一个GLTF格式的三维模型,你可以安装3DS的巴比伦插件

  Max增加了GLTF导出功能,也可以通过一些在线转换器和编辑器进行在线转换,比如sketchfab.com。

  无论是FBX还是GLTF,在加载三. js之后都需要加载一个对应的格式加载器,比如FBXLoader.js或者GLTFLoader.js,所有加载机构都可以下载,直接导入即可。(FBX需要引入额外的explain . min . js)

  这里我们以GLTF为例。导出的二进制GLTF格式包含两个模型文件和一组地图:

  

3d建模人物

 

  

人物3d建模

 

  加载模型的代码也很简单,实例化GLTFLoader后调用load方法,方法第一个参数是模型路径,回调函数中返回的值就是模型,添加到场景中即可。

  

3d建模

 

  然后你就可以在网页中看到你加载后的模型,灯光很简陋,所以模型是黑乎乎的一片,大家后续可以参照官方文档中的灯光部分慢慢调整。

  

人物建模

 

  这里要注意,之前的渲染方法renderer.render(scene, camera);,在这里要改为加载模型完毕后在调用,否则先渲染,后加载模型,是不会显示出模型文件的。

  3. 调用模型动画使模型动起来

  刚才加载的模型时静态的,如果需要让模型动起来,需要使用Three.js中的动画播放器AnimationMixer。当然,前提是美术同学已经在模型中制作了动画。

  

3d人物模型

 

  我们需要先在模型加载完毕后的回调函数中为模型添加播放器,并生成动画实例,然后调用play方法执行播放操作。

  因为动画是不间断执行的,所以需要有一个循环函数(animate)不断的推荐播放器的时间(mixer.update)来更新动画,循环函数中也需要不断的渲染3D场景(renderer.render),最终就得到了动画的播放效果。

  

人物模型代做

 

  4. 通过骨骼点来进行捏脸

  3D捏脸实现原理是通过代码来更改3D模型面部的骨骼点,对骨骼点进行旋转、缩放、位移可以达到面部样式的修改。

  

3d打印建模

 

  上图是美术同学在3DS Max中设置的骨骼点,当模型文件通过Three.js加载到网页中以后,这些骨骼点会以对象的形式返回,通过traverse方法遍历模型的所有对象元素,并筛选类型为骨骼,可以找出所有的骨骼对象。

  

3d建模代做

 

  

3d人物代做

 

  每一个骨骼一般美术同学都会标注一个名字,可以粗暴的理解为Photoshop里的图层名称,找美术同学要一份对照表,找到对应的骨骼就可以修改对应的部位。

  比如我们这里修改嘴巴的大小,首先过滤到嘴巴具体的骨骼点,展开对象后可以看到position、rotation、scale,通过修改这些值,就可以调节面部细节了。

  

人物建模代做

 

  比如我们更改scale:

  

3d人物建模公司

 

  可以通过下图对比看到右侧的模型嘴部明显变大了(请忽略这鬼畜的灯光,不是重点……)。

  

人物建模公司

 

  依次筛选出眼睛、鼻子、颧骨、眉毛等部位的骨点,然后根据游戏研发方给出的数值表进行调整,可以达到与游戏中一致的捏脸效果。

  5.面部元素的皮肤合成

  面部皮肤图包含“面部皮肤、眉毛、胡须、眼妆、腮红、纹身、唇彩”等多种皮肤元素,很多元素可以进行颜色修改,但对应的模型只是面部模型。

  因此,在用户改变所选面部区域的对应地图(如选择不同的眉毛)后,需要动态改变整个面部的地图。

  这里的实现方案如下:

  1:根据用户选择,加载不同形状的部分图片,如“胡须样式_4.png,眉毛样式_2.png”等.

  

动漫人物建模

 

  2:根据用户所选颜色,利用Canvas对部件图片进行像素着色。

  3:将所有部件通过Canvas拼合到一起并附加到3D模型上。

  

卡通人物建模

 

  效果展示:

  

3d建模公司

 

  6. 毛发颜色的更改

  头发的颜色修改相对简单,对应的对象中有一个color对象,里面包含了R/G/B三原色的键值百分比,直接修改这个值,就可以更改头发模型的颜色。

  比如你可以在PS里找到一组37/81/121的颜色值,然后37/255=0.145,挨个填进去就行。

  

3d建模捏脸

 

  而眉毛、胡须的颜色修改是修改具体贴图的颜色,更改方法在第5点钟有介绍,是通过Canvas对图片像素点逐个修改,最后拼合成一张皮肤贴图附加到面部模型上的。

  7. 捏脸参数

  需要Web端捏脸数据和游戏数据互通,即Web端创角后,待游戏正式上线时,用户使用预创角的账号登录游戏,就可看到自己的捏脸形象。

  所以需要同步游戏研发侧的捏脸参数,这里根据游戏研发侧提供的参数Excel表格进行各个幅度的对应修改,保证和游戏内的效果一致。

  Excel表格中列出了对应的每一个骨骼需要调整的范围,以及调整的方式(position/rotation/scale)。

  

人物建模

 

  在Web界面中,根据表格中的参数调整滑块各刻度的值,达到和游戏中一样的效果。

  例如,根据表格,嘴大小中涉及的骨骼是“嘴”,要修改的参数类型是“比例”,然后范围是3-

  10,分为31档进行调整,那么每个档位为(10-3)/31=0.226。用户在UI界面调整滑块时,代码可以根据滑块调整的比例乘以0.026进行调整。

  当然,也有骨骼需要同时调整位置/旋转/比例的情况,也有不同位置调整涉及同一骨骼的情况。此时,需要记录之前的调整值,并根据该值继续调整。

  8.收缩面数据的导出格式

  同样,为了保证与游戏的一致性,需要同步游戏R&D端的捏数据的导出格式。这里介绍完美世界中的捏数据的导出格式,每个游戏的导出格式都会有所不同,仅供参考。

  当完美世界游戏端的角色被创建并最终导出时,所有的十进制参数值都会被转换成二进制进行数据存储。

  首先根据可调范围确定各参数值的二进制数。如果可调范围高达31档,二进制数为5,因为5位二进制(11111)只能存储31档。

  然后对每个调节数据的参数值进行排列,再转换为二进制模式(不足位数前加0),再进行排列。

  最后每32位二进制作为分隔符,最终形成游戏中可用的人脸揉捏数据。

  如:

  3D模型各项调整参数值为:

  [12, 7, 13, 12, 11, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 14, 0, 7, 8, 11, 13, 2, 20, 0, 6, 16, 21, 16, 3, 10, 12, 6, 15, 8, 31, 22, 11, 4, 30, 7, 7, 9, 7, 0, 21, 18, 16, 18, 8, 16, 3, 13, 13, 10, 0, 0, 0, 2, 2]

  最终得出的提交游戏内的格式为:

  [347485420,8192,0,0,2699063488,403310805,2560737968,1172039801,2162768380,1883545898,42676,132,0,0,0]

  以上就是这次3D捏脸项目的核心技术点,剩下的类似灯光的调整、模型加载优化、代码管理等细节限于篇幅就不展开了。

  四.日程安排建议

  主流浏览器开始支持WebGL已经好几年了,但是团队中的应用还是很少。蜘蛛网

  3D在日常业务中的应用难度确实高于日常需求,但实际上只需要解决两个核心关键点。

  首先,与游戏R&D方建立良好的沟通。3D需求中的各种3D模型和参数,和日常需求中的设计稿一样重要。没有这些,聪明的女人没有饭也很难做饭。第二个是在网上

  3D技术用于学习和拓展新的知识点。

  针对第一点,相比常规需求,3D需求需要游戏R&D方的支持,也就是说多了一个需求环节,会占用更多的调度时间。此外,与游戏R&D方的沟通通常需要一对多。你不仅需要和美术生交流所需的3D模型素材,还需要和开发生交流3D模型的一些人脸捏取参数与头发等色卡的匹配。当然,如果能把这些环节尽可能标准化成一个常规流程,可以节省很多时间。

  针对第二点,我们建议在项目前期有一个前期研究的过程,大概1-2周,先确定具体的Web

  3D需求,然后做最简单的DEMO来判断是否可行。比如在3D中捏脸,先要一个3D模型,然后问R&D这边的同学怎么在游戏中捏脸(这次的“完美世界”是改变模型的骨架),我们会根据游戏端的实现在Web端也这样做。这个过程实际上是网络

  3D技术的连续存储和分配。

  当第一点是尽可能规范流程,第二点是我们对Web 3D技术的掌握达到了常规需求的认知水平,那么Web

  3D项目也可以成为我们可以轻松支持大量需求的常规业务。

  动词(verb的缩写)网络3D展望

  目前Web 3D项目已经很久没有在我们的日常生活中使用了,我们的游戏大部分属于3D游戏。适当的向前看,很多场景是通过3D更好的展现吗?

  官网的职业介绍页面可以考虑显示3D角色模型,甚至在技术可以支持的情况下,可以在web端预览技能特效,让玩家提前从各个角度查看角色技能。

  对于MOBA游戏的视频回放功能,可以考虑在Web端回放一个简化版的免费游戏吗?加载3D地图模型,导入各个英雄,回放日志,自动播放当时的战况。用户可以在Web端的不同视角之间切换,不受视频播放固定视角的限制。

  FPS游戏往往需要为每张地图布置战略点。我们可以考虑在Web上制作一个地图战略布局工具。用户可以在实际的三维场景中标记各种地图,然后共享和导出,这比2D地图方便和直接得多。

  大钟设计工作室为您分享3d人物建模捏脸怎么做资讯,如果您有相关建模需求,欢迎咨询我们。

  来源:本文由大钟设计室创作,转载请注明出处: http://www.sz-lingdu.com//news-industry/152.html