站内搜索

搜索

VR玩家-征战未来

[教程·工具] 制作Beat Saber人物虚拟形象的方法(三)Unity篇

26

主题

4

精华

44 小时

在线时间

人气玩家

Rank: 4

贡献
260 次
威望
0 点
氪金值
0 点
玩家币
2877 枚
发表于 2019-11-24 14:48:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Unity篇目录
1.项目制作。
2.读取3D模型。
3.创建新对象。
4.虚拟角色的编辑。
5.IK(Inversymatics)的设定。
6.文件名的设定。
7.avatar文件的漏洞端口。
8.启动游戏确认动作。

1.项目制作

                               
登录/注册后可看大图
请不要在意此图片的文件夹名称。

当您启动Unity时,将使用在介绍篇下载的【UnityProject】,用于定制化身的Unity项目来创建一个项目。
请单击右上方的“Open”,选择与CostomAvatar一同打包的“TemplateUnityProject”文件夹。
请选择“UnityProject”>“AvatarsUnityProject”文件夹。

请务必从用于定制化身的模板中创建项目。


读取3D模型。
文件夹创建和文件复制。
这里有2种做法.第一种是按照上篇(blender) [%_$[KGWZ)EY@[UL`GN9Z$N.png
先在assets目录下右键创建一个新文件夹(名字可以填模型名字)
然后把从blender里生成的材质和fbx都拖入文件夹里面
PS(O9F015@$Y73O3J%PRL8M.png
然后在要生成一个材质球
DG{FM5`PCP5P0IE3[R@5_7Q.png
模型文件夹里面右键---create--material
生成完以后把合并起来的材质拖动进去材质球的选项里面
UYW}NRO4U6D}ST_`1H0ZJC0.png
要注意的是,要先把材质球的shader更改为BeatSaber/Unlit Glow或BeatSaber/Unlit Glow Cutout Dithered
再把材质拖进去texture.


到这里要先把fbx的动画模式更改一下
P0~NYXS6DSRX}RF8KO(XAA0.png
选择fbx文件.右边的Animation Type选择Humanoid.点击下方的apply
应用完后点击Configure检查模型(一般是没什么大问题)
_W02@$_(0A87X_94J@TL@(1.png
检查一下右方的骨骼有没有标红点就行了,如果是红点的话.就是骨骼不正确,需要去找一下对应的骨骼

完事后点击done

8X9}K~CAMP69G)ORE)FR$OD.png
接下来把fbx文件拖去项目
G{U@[}ZS$%2$ZJBJMFCM1K5.png
选择body,右边往下拉会看到material.把弄好的材质球拖进去element.
得出的结果就是你的模型上色了.

如果贴图显示不完整.或者缺失.就改变一下shader的方式.如果再不行,就必须按照下面的方法去做.
一步一步的把每一个部位贴图贴上
这就是第二种方法

首先在文件夹中创建新文件夹。


                               
登录/注册后可看大图

右键单击Project窗口中的“Assets”,然后选择“Create”→“Folder”。
文件夹名称请取虚拟角色名等适当的名称。


                               
登录/注册后可看大图

接下来,让我们在创建的文件夹中创建一个技术文件夹。
(在创建的文件夹中右键>Create>Folder>文件夹名输入“Textures”)。


请在这里加入3D模型的技术说明。


                               
登录/注册后可看大图

双击打开创建的“Textures”文件夹,并通过拖放将技术文件导入。

                               
登录/注册后可看大图

导入用Blender编辑的模型。
请通过拖放将.fbx放入虚拟角色名称的文件夹中。

fbx文件的地方通过简易的预览显示模型数据。
这个模型由于头部零件差分的影响,模型变得看不见了。通常会显示得很普通,所以请不要在意。



材料的抽出。
模型的读取完成后,提取材料。


材料是保持模型表面的描绘设定等的数据。包含要参照的纹理、质感等信息。


                               
登录/注册后可看大图

在与“Textures”文件夹相同的层次上创建“Materials”文件夹后,进行以下操作。
点击fbx文件。
选择监察者(Inspector)窗口的“Materials”标签。
“Extract Materials”点击“。
指定并打开“Matelials”文件夹。
由此,在“Matelials”文件夹内提取模型的材料。
“Extract Materials”“不按的情况下,按下面的步骤操作。
将Location更改为“Use External Materials(Legacy)”
点击“Apply”



马特尔尔的设定。
设定材料的质感。


如果想在确认外观的同时摆弄质感的话,请在后述的虚拟形象配置后设定材料。这里的程序前后都没问题。
请打开“Matelials”文件夹,并选择材料的文件。


从Inspector窗口,将Shader变更为“BeatSaber/Unlit Glow”等。


请从下面的BeatSaber用模式中选择最合适的。


<旧TemplateUnityProject的情况>

BeatSaber/CellShading        BeatSaber/Standard
BeatSaber/Lit Glow        BeatSaber/Unit Glow Cutout Dithered
BeatSaber/Metallic        BeatSaber/Unlit Wave



<现AvatarsUnityProject的情况>
_Shaders/Rainbow                                BeatSaber/Standard
BeatSaber/CellShading                        BeatSaber/StandardAlpha(cookie)
BeatSaber/CellShading_Wnormals        BeatSaber/Tex Lit-Unlit Glow
BeatSaber/DSCellShading                        BeatSaber/Transparent
BeatSaber/Lit Glow                                BeatSaber/Unlit Animated Gradient
BeatSaber/Lit Glow Cutout Dithered        BeatSaber/Unlit Glow
BeatSaber/Metallic                                BeatSaber/Unlit Glow Cutout Dithered
BeatSaber/Particle Alpha Blended                BeatSaber/Unlit Wave


                               
登录/注册后可看大图

当您没有在Texture的右侧显示任何东西时,您需要选择一个技术文件。
变更为Beat Saber专用的模式时,只需初次重新设定。


                               
登录/注册后可看大图

请按“Select”登录技术文件。
这是对所有的材料进行的。
不知道对应的技术时,将Shader变更为“Unlit/Texture”等,(在该状态下按Select)确认已登录的技术文件名后再进行操作就可以了。

如果不能很好地显示脸颊染等,请试着将Shader变更为“Particles/Alpha Blended”和“BeatSaber/Particle Alpha Blended”。

想使透过(透明/半透明)时,将Shader变为“Standard”后,将Rendering Mode变更为“Fade”或“Transparent”。接下来只要调整Albedo的alpha(透明度)值就可以了。



动画类型的设置。
这样下去,模型数据不会被识别为人型,所以将动画类型变更为类人机器人。


                               
登录/注册后可看大图

单击Project窗口中的fbx文件。
打开Inspector窗口的“Rig”标签。
将Animation Type改为“Humanoid”
点击“Apply”
在“Configure”的左侧显示检查就可以了。



创建新对象。
创建父对象。
创建虚拟角色的父对象。


                               
登录/注册后可看大图

在Hierarchy窗口的空白中右键单击,选择Creat Empty。

如果创建了对象,请再次单击正在选择的“GameObject”以更改名称。用阿凡达的名字。


                               
登录/注册后可看大图

将内部窗口的Transform“Position”X,Y,Z坐标全部设为0。


创建用于调整大小的对象。
创建一个模型大小调整时要引用的对象。
这是用来做身高的


                               
登录/注册后可看大图

在Hierarchy窗口的空白中用右键→“3D Object”→“Cube”制作立方体的对象,
将Transform“Scale”设置为“X:0.1,Y:身高,Z:0.1”。
例如,如果身高为170 cm,请将比例Y的值设为1.7。


                               
登录/注册后可看大图

将Transform“Position”设置为“X:0,Y:身长在2,Z:0”。
Position:如果将Y的值设为0,立方体就会埋在地面上,所以有必要设定为Scale:Y的1/2。




虚拟角色的编辑。
终于是模型的配置了。


                               
登录/注册后可看大图

请将3D模型(fbx文件)拖到透明密钥窗口(对象列表)的虚拟形象名的正上方。


大小调整。
根据牌手调整模型的大小。
如果按照步骤进行的话,代替身高计的对象和3D模型的脚边应该是相同的高度。


                               
登录/注册后可看大图

从左上角的工具菜单中选择Scale Tool,调整模型的大小。
如果用左键拖动中心的白色方块,就可以放大/缩小大小。
如果放大时脚下的坐标偏离,请确认屏幕左上角的工具栏右侧的“Pivot”(枢轴)是否为“Center”。


                               
登录/注册后可看大图

单击位于显谱窗口左上角的复选框,可以切换对象的显示/非显示。这样一边确认一边调整的话很容易做。


                               
登录/注册后可看大图

大小调整结束后,删除样本的对象。
请右键点击Hierarchy窗口的对象名,选择Delete,或者用[Delete]键删除。






塑胶键的应用。
将Blender中创建的塑形键应用到虚拟角色中。

请单击位于模型对象名称左边的横向三角图标,以展开对象。
Tips:在选择对象的状态下按下[Alt+Shift+右向键],可以展开所有子对象。按[Alt+Shift+左方向键]即可全部折叠。


                               
登录/注册后可看大图

选择Body对象。

                               
登录/注册后可看大图

当您展开Inspector窗口的“VlendShapes”时,下面有一个用Blender创建的共享键。
在“左手握”和“右手握”中输入100。
这样一来,虚拟角色的姿势就变成了握着手的状态。



IK(Inversymatics)的设定。
为了将玩家的动作和虚拟角色的动作链接起来,进行IK的设定。


IK是指。
为“IK到底是什么”的人简单说明一下。
逆运动学的意思是,如果直接翻译的话,就是“使用逆运动学的动作附加”的意思。
简单地说,就是自动计算多个关节动作的动画手法。
在移动角色的时候,每一个伯恩都会弯曲或旋转来活动关节。在Inversenematics中只移动了一个波恩,其他也会联动地移动。
例如,在野兽Saber的游戏中,虚拟角色的手的位置发生变化的时候,肘和肩膀等关节也会联动活动,这是多亏了这个功能。
也有类似的功能,也可以利用FK(音效学)。


在IK和FK中,各关节的动作方式不同。
IK···手→肘→肩膀的情况下,从身体的末端向躯干联动移动。

FK···肩膀→肘→手这样的情况下,从身体的躯干向末端联动移动。
两者都有优点和缺点,IK最适合表现直线的运动,FK适合表现旋转系统的动作。



创建用于IK的对象。
制作决定牌手的照相机位置和控制器位置的对象。


                               
登录/注册后可看大图

请右键单击模型的父对象,然后选择“Create Empty”,并准备四个新对象。
复制使用[Ctrl+D]键的快捷方式很方便。


                               
登录/注册后可看大图

更改您创建的对象的名称。
请将对象名设定为“Head”、“Body”、“LeftHand”、“RightHand”。



设定对象的坐标。
设定Head,LeftHand,RightHand的坐标。

Head=玩家摄像头(HMD)的位置。
LeftHand=左控制器的位置。
RightHand=右控制器的位置。
让我们根据不同的模型进行调整。


Head的位置调整


选择Hierarchy窗口的Head,用“Move Tool”调整对象的坐标。(Move Tool在屏幕左上角的工具箱中)。
例:将Y轴(绿色)对准眼睛的位置后将Z轴(蓝色)移动到脸的跟前。
对象被埋在脸上时,用游戏内的第一人称视点显示虚拟形象时,可以看到模型的内侧,所以要注意。



LeftHand的位置调整

                               
登录/注册后可看大图

按照同样的步骤,LeftHand也会调整。
把对象带到握着的手的位置吧。
Position的Z坐标设定在拳头更前方的位置正好,虚拟角色抓住了Saber的中心。重点是把它放在拇指更靠前的地方。
使用定制Saber的时候,配合拳头的位置会变得更漂亮。另外,根据模型的不同,最佳位置也会发生变化,所以请作为参考程度。


                               
登录/注册后可看大图

如果位置可以调整,则Rotation也会改变。
更改Rotation是因为需要设置与虚拟角色直立停顿相对应的控制器的最佳角度。
如果这里的设定有问题的话,虚拟角色的手腕就会经常向不同的方向弯曲。
请从工具箱中选择“Rotate Tool”。
使Z轴向左旋转。
最合适的角度根据模型的不同多少会有所变化,但是倾斜30~50度比较好。

想要对应特殊控制器的持有方法(X-Grip,B-Grip,S-Grip等)时,倾斜130度左右。
虚拟角色完成后请在游戏内确认,如果手腕的角度不正常的话请重新调整。



RightHand的位置设定

这个只需在竞标后反转就可以简单地进行设定。

                               
登录/注册后可看大图

在选择LeftHand的状态下,在右键→“Copy Component”中复制显谱窗口的Transform。

                               
登录/注册后可看大图

接下来,将RightHand的Transform用右键→“Paste Component Values”粘贴坐标,删除Position的X坐标和Rotation的Z坐标的负数,就可以完成设定。


Target对象的制作。
制作决定模型头部和手腕位置的对象。



创建LeftHandTarget的步骤。
请按以下顺序展开对象。
虚拟角色的父对象>模型的对象>Armature>Hips>Spine>Chest>Left Shoulder>Left arm>Left elbow


                               
登录/注册后可看大图

右键单击展开Left arm显示的Left wirst,然后按Create Empty。

将创建的对象的名称更改为“LeftHandTarget”。


                               
登录/注册后可看大图

通过拖放将“LeftHandTarget”移动到“LeftHand”。
(“LeftHandTarget”只要成为“LeftHand”的子对象就可以了。)。
让我们按照同样的步骤来创建RightHandTarget和HeadTarget。


RightHandTarget的制作程序


                               
登录/注册后可看大图

展开_Right shoulder>Right arm>Right elbow。
右键单击Right wrist并按Create Empty。
将创建的对象名称更改为“RightHandTarget”
把“RightHandTarget”拖到“RightHand”


HeadTarget的制作步骤


                               
登录/注册后可看大图

_Neck展开。
右键点击Head,按Create Empty。
把创建的对象名改为“HeadTarget”
把HeadTarget放到Head。


组件的制作。
添加用于导入IK的组件。


                               
登录/注册后可看大图

请在以下操作中将“IK Manager(Script)”和“VRIK(Script)”与角色游戏对象进行附接。

选择模型的对象。
按Inspector窗口的“Add Component”
在搜索窗口输入“ik”
点击“IK Manager”和“VR IK”
※追加腰和两脚跟踪器的情况,或者VRIK的设定详细调整的时候,IK Manager代替IK Manager Advanced附接。



IK Manager的设置。
将创建的目标对象设置为IK Manager。


                               
登录/注册后可看大图

Hierarchy窗口的对象。
HeadTarget。
LeftHandTarget。
RightHandTarget。
将它们分别拖放到“IK Manager”的对应部分。
例如,“HeadTarget”只要拖放到写有IK Manager(Script)的Head Target“None(Transform)”的地方就可以了。


VR IK
需要你把全身的骨骼对应到VRIK里面
]QLUM(Q(RW`AP2W80JYB6[J.png
对应的把骨骼拖过去了



                               
登录/注册后可看大图

请选择虚拟角色的父对象,然后单击“Add Component”。
在检索窗中输入ava等,选择Avatar Descriptor。
如果添加了组件“Avatar Descriptor(Script)”,那么输入以下信息。
Avatar Name:虚拟角色的名字。
Author Name:虚拟角色的作者名



                               
登录/注册后可看大图

avatar文件的导出



从“Window”→“Avatar Exporter”输出.avatar文件。
按下保存化身文件,也会促进保存场景文件(*.unity)。

我想您会在确认动作后修改或添加摇摆物和动画设置,所以两个都要保存下来。
如果取消的话只对化身文件进行输出。



启动游戏确认动作。
将完成的.avatar文件放入“CustomAvatars”文件夹中,以确认操作。
如果虚拟角色的显示和动作没有问题,那么就结束了。
辛苦了!

下一篇:Beat Saber虚拟形象的制作方法(四)常见问题&总结篇
上一篇:Beat Saber虚拟形象的制作方法(二)Blender篇

征战未来,VR玩家聚集地:vr-game.club/vr-game.cool官方QQ群:580081193 【在本站注册即承诺将本站加入广告白名单】

226

主题

27

精华

280 小时

在线时间

管理员

站长

Rank: 9Rank: 9Rank: 9

贡献
1179 次
威望
1009 点
氪金值
1000 点
玩家币
14579 枚
QQ
发表于 2019-11-24 21:25:50 | 显示全部楼层
大佬牛批
征战未来,VR玩家聚集地:vr-game.club/vr-game.cool官方QQ群:580081193 【在本站注册即承诺将本站加入广告白名单】
回复

使用道具 举报

0

主题

0

精华

1 小时

在线时间

注册玩家

Rank: 1

贡献
0 次
威望
0 点
氪金值
0 点
玩家币
500 枚
发表于 2019-12-1 13:37:42 | 显示全部楼层
征战未来,VR玩家聚集地:vr-game.club/vr-game.cool官方QQ群:580081193 【在本站注册即承诺将本站加入广告白名单】
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

商务
关于我们 加入我们
友情链接 商务合作
联系我们 QQ群
官方
A站 B站
新浪微博 百度贴吧 脸书 推特
反馈
意见建议 用户使用协议
帮助
更多
捐助本站
B站

B站

扫码关注-公众号

扫码关注-公众号

QQ|Archiver|手机版|小黑屋|VR玩家 |网站地图