站内搜索

搜索

VR玩家-综合型VR社区

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

26

主题

4

精华

55 小时

在线时间

人气玩家

Rank: 4

荣誉值
150 点
贡献
260 点
威望
50 点
次元币
0 枚
玩家币
3905 枚
发表于 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篇

327

主题

29

精华

524 小时

在线时间

管理员

站长

Rank: 9Rank: 9Rank: 9

荣誉值
1000 点
贡献
1359 点
威望
1309 点
次元币
170 枚
玩家币
93182 枚
QQ
发表于 2019-11-24 21:25:50 | 显示全部楼层
大佬牛批
回复

使用道具 举报

0

主题

0

精华

1 小时

在线时间

注册玩家

Rank: 1

荣誉值
0 点
贡献
0 点
威望
0 点
次元币
0 枚
玩家币
500 枚
发表于 2019-12-1 13:37:42 | 显示全部楼层
萌新一脸懵逼
回复

使用道具 举报

0

主题

0

精华

11 小时

在线时间

新手玩家

Rank: 2

荣誉值
0 点
贡献
0 点
威望
30 点
次元币
0 枚
玩家币
285 枚
发表于 2020-3-26 21:34:24 | 显示全部楼层
大佬,如果模型脸部贴图显示为灰的,跟你教程设置过还是没有变化,是什么问题呢?模型在blender里面看是正常的
回复

使用道具 举报

26

主题

4

精华

55 小时

在线时间

人气玩家

Rank: 4

荣誉值
150 点
贡献
260 点
威望
50 点
次元币
0 枚
玩家币
3905 枚
发表于 2020-3-27 01:22:42 | 显示全部楼层
AmeSucre 发表于 2020-3-26 21:34
大佬,如果模型脸部贴图显示为灰的,跟你教程设置过还是没有变化,是什么问题呢?模型在blender里面看是正 ...

emm.我写的好像是blender直接导出整体的材质.应该不会出现单独丢失贴图的..等等.?灰?这我遇见过..可以加群讨论一下
回复

使用道具 举报

0

主题

0

精华

11 小时

在线时间

新手玩家

Rank: 2

荣誉值
0 点
贡献
0 点
威望
30 点
次元币
0 枚
玩家币
285 枚
发表于 2020-3-28 14:32:55 | 显示全部楼层
nu-nuko 发表于 2020-3-27 01:22
emm.我写的好像是blender直接导出整体的材质.应该不会出现单独丢失贴图的..等等.?灰?这我遇见过..可以加 ...

我在群里,大佬你在群里叫什么啊?
回复

使用道具 举报

0

主题

0

精华

1 小时

在线时间

注册玩家

Rank: 1

荣誉值
0 点
贡献
0 点
威望
0 点
次元币
0 枚
玩家币
75 枚
发表于 2020-4-12 14:48:17 | 显示全部楼层
请问,有全身的设置教程么?
回复

使用道具 举报

26

主题

4

精华

55 小时

在线时间

人气玩家

Rank: 4

荣誉值
150 点
贡献
260 点
威望
50 点
次元币
0 枚
玩家币
3905 枚
发表于 2020-4-14 19:50:15 | 显示全部楼层
Mirian 发表于 2020-4-12 14:48
请问,有全身的设置教程么?

有是有.但是是生肉.我没转过来.可以加群发给你
回复

使用道具 举报

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

本版积分规则

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

B站

扫码关注-公众号

扫码关注-公众号

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