推荐的一些学习资料

unity

官方文档:Unity 用户手册 (2019.4LTS) - Unity 手册

视频教程:https://www.bilibili.com/video/BV1zB4y1C7U9

live2d

官方文档:

https://docs.live2d.com/zh-CHS/cubism-sdk-tutorials/top/

https://docs.live2d.com/zh-CHS/cubism-sdk-manual/cubism-sdk-for-unity/

unity + live2d 视频教程

https://www.bilibili.com/video/BV1dS4y177F8

下面我们就开始吧,这一部分 0 代码,小白也可以轻松上手!

一,认识 Unity

安装方式

安装了 Visual Studio 的话,可以直接在 Installer 中下载使用 Unity 的游戏开发。



推荐结合 Visual Studio 使用,代码调试会很方便,虽然本文不涉及代码编写,但之后的扩展是必然需要的。

visiual Stadio 2022 下载地址:https://visualstudio.microsoft.com/zh-hans/vs/

在 Unity 官网进行下载,安装也是没问题的。https://unity.cn/products

下载完成后,会有一个 Unity Hub,这个就是未来 Unity 的启动入口。

许可证

点击许可证,根据提示先创建一个 Unity 账号。

登录后,点击[激活新许可证]

然后选择个人版,非专业身份,即可获得免费的许可证。免费许可证过一段时间就需要再次获取。

界面简介

  • 1 是场景预览部分,白色的框代表摄像机的摄像范围。Unity 的一个工程是一个个场景组合而成,做游戏的过程可以想象成在布景拍电影。
  • 2 是游戏预览部分,开始运行后,在这个部分就可以看到真实拍摄出来的样子。还可以使用暂停,逐帧查看等操作。
  • 3 是项目的资源文件,Assets 里面存放游戏运行所需要的内容。其中有很多约定的文件夹,比如 Scenes 就是专门存放场景的,Plugins 就是存放类库的...... Package 里是 Unity 提供的内容,不可进行增加操作。
  • 4 是场景下的所有“物品”,可以在 Assets 切换场景。
  • 5 是“物品”的属性。可以直接在其中进行修改,也可以把脚本拖到这个位置,给这个物品加上脚本。
  • 这三个按钮分别是 [运行/停止][暂停][逐帧播放]

好了,知道以上内容,我们就可以开始搞起自己的第一个游戏了。更多知识请观看更详细的视频介绍,或者官方的教程手册。

二,让 Live2D 模型动起来

再次说一句,Live2D 的官方教程真的非常非常详细,强烈推荐大家翻阅一下

https://docs.live2d.com/zh-CHS/cubism-sdk-tutorials/top/

想更深入的了解 Live2D 的支持情况,可以看它的文档

https://docs.live2d.com/zh-CHS/cubism-sdk-manual/cubism-sdk-for-unity/

什么是 Live2D,可以做些什么?

Live2D 是将平面的图像分割成不同的部位,再拼接在一起,通过变形使得图片可以动起来。广泛用于游戏,视频,APP 等。

Live2D SDK 导入

在 Live2D 的官网下载 Cubism SDK for Unity。然后在开启 Unity 项目的时候双击,Unity 界面中就会出现导入的弹窗。在 Assets 中手动右键选择 Import Package 也行。

弹窗会列出包中包含的内容,全选导入即可。

我们点开 Samples ,里面有一些实例 Models。之后我们用 Koharu 模型做示例。

我们下载的 sdk 版本是 CubismSdk4.0,如果大家要用外部的模型,需要注意一下模型的版本噢,和 sdk 需要对应。

显示 Live2D 模型,并给 Live2D 模型加上一些自然动作

点击 Koharu,我们可以看到一个预制体,这个就是我们可以直接使用的模型了。

把它拖到 Samples 里面。点击一下运行,我们就可以看到模型出来了。(点击运行之前看不到,是正常现象。)然后我们可以调整一下模型的位置和大小,让它展现在视野中。

如果模型的图层前后加载错误,可以调整一下预制体的以下属性。

这时候我们发现我们的 Koharu 不会动。我们需要给她加上一些自然动作,比如 呼吸、眨眼、眼部跟随等。要实现这些,我们先来简单看一下模型,点开 Cubism Parameters Inspector 属性,可以看到很多滑动条。拖拽滑动条,右边的模型预览就会发生相应的变化。这里面每个属性都是对应 Parameters 里的参数。

所以原理就是,改变参数的值,让 Koharu 动起来。

而这些在 Live2D 中已经有写好的脚本,我们只需要加上来即可,比较简单。

  • 眨眼:

    • 选中 Koharu,在属性界面 Add Component , 搜索添加 Cubism Auto Eye Blink Controller 和 Cubism Auto Eye Blink Input。
    • 然后在 Parameters 里找到控制眼睛开合的参数,PARAM_EYE_L_OPEN 和 PARAM_EYE_R_OPEN ,对应的属性界面 Add Component,搜索添加 Cubism Eye Blink Parameter。
    • 运行,即可看见眼睛会自然开合了。
    • 在这个属性中,可以调节眼睛开合的时间间隔等。Mean 是时间间隔;Maximum Deviation 是最大偏差值,偏差值是最大偏差值范围内的随机数,眨眼频率=时间间隔 +/- 偏差值;Timescale 是动画快慢。

  • 眼部跟随:

    • 选中 Koharu,在属性界面 Add Component , 搜索添加 Cubism Look Controller 和 Cubism Look Target。把 Cubism Look Target 拖到 Cubism Look Controller 的 Target 属性中。

    • 然后在 Parameters 里找到控制头部位移和眼球位移的参数,PARAM_ANGLE_X PARAM_ANGLE_Y PARAM_EYE_BALL_X 和 PARAM_EYE_BALL_Y,对应的属性界面 Add Component,搜索添加 Cubism Look Parameter。

    • 运行,按下鼠标,移动,就可以看见 Koharu 的视线可以跟随鼠标了。

    • 如果运动不明显,可以调整 Cubism Look Parameter 里的参数。

    • 如果想更改触发视线跟随的判断条件,就需要重写 Cubism Look Target 脚本。推荐复制一份出来,替换 Kohar 对象的 Cubism Look Target。由于写脚本需要一些 C# 和 Unity 知识,本文先不做过多说明。推荐看一下文章开头推荐的视频合集。

  • 呼吸

    • 选中 Koharu,在属性界面 Add Component , 搜索添加 Cubism Harmonic Motion Controller。这个属性不是专门控制呼吸的,任何需要简谐运动的地方都可以用到它。
    • 然后在 Parameters 里找到控制呼吸的 PARAM_BREATH,对应的属性界面 Add Component,搜索添加 Cubism Harmonic Motion Parameter。
    • 调整 Cubism Harmonic Motion Parameter 的参数。这里的参数稍微复杂一些,下面贴出了官方说明。

    Channel

    指定在CubismHarmonicMotionController中设置的正弦波周期的倍率。在HarmonicMotion中,您可以为一个模型设置多个周期,且可以在CubismHarmonicMotionController中设置它们。在此处设置CubismHarmonicMotionController.ChannelTimescales的索引。

    Direction

    以参数的中心为基准,设置周期动作的范围。有以下三个设置项目。

    – Left : 它仅在参数中心的左半部分动作。– Right:它仅在参数中心的右半部分动作。 – Centric:它在参数全体动作。

    NormalizedOrigin

    在Direction中设置要用作基准的参数中心。以该参数最小值为0、最大值为1时的值为中心进行设置。

    NormalizedRange

    设置使值从NormalizedOrigin中设置的值的中心动作的幅度。设置该参数最小值为0、最大值为1时,从中心移动的距离。该值只能设置在NormalizedOrigin设置的中心位置到参数的最小值或最大值的范围内。

    Duration

    调整参数周期。

至此,点击运行吗,你的模型就可以栩栩如生的动起来啦。

更深层次的东西,如果大家感兴趣,就去看看更详细的视频系统学习吧。

三、我的赛博小猫



加上一些代码,支持更多的互动会变得更有趣。其实在 AI 的加持下,电子宠物可以有更厉害的能力,它可以有思想,能沟通,甚至可以帮你打工。这也是我下一步想做的事。

由于这个模型不允许开源,所以项目暂时不能上传到开源社区。之后有精力会继续做这个项目以及后续教程。

不多说了,快快开始你们的尝试吧!如果你觉得这个教程有用,请给我点一个大大的赞,你们的支持就是我更新的最大动力!

如何用 Unity 做出一只赛博宠物的更多相关文章

  1. 如何用Unity制作自定义字体——Custom Font

    一.效果图 二.步骤 将美术做好的字体分块导入BMFont,使用BMFont工具生成艺术字库: 将上面的数据导入unity资源目录下:*.fnt文件中记录每个文字的状态信息: 导入*.png图片并设置 ...

  2. 我是如何用Go语言搭建自己的博客的

    前言: 话说,已经很久没有在博客园更新博客了,之前写的关于go语言的系列学习文章<让我们一起Go>也由于种种原因一度中断.但是,正如我之前在文章中所写,可以慢慢来,但是对于Go语言的学习却 ...

  3. 如何用Unity创建一个的简单的HoloLens 3D程序

    注:本文提到的代码示例下载地址>How to create a Hello World 3D holographic app with Unity 之前我们有讲过一次如何在HoloLens中创建 ...

  4. 如何用Unity GUI制作HUD

    若知其所以然,自然知其然. HUD是指平视显示器,就是套在脸上,和你的眼睛固定在一起,HUD的意思就是界面咯,一般我们说HUD特指把3D空间中的界面的某些信息(比如血条,伤害之类)的贴在界面上,对应3 ...

  5. 通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息

    源代码:https://github.com/nnngu/LagouSpider 效果预览 思路 1.首先我们打开拉勾网,并搜索"java",显示出来的职位信息就是我们的目标. 2 ...

  6. 赛博杯-HMI流水灯-stack

    stack(ret2libc) 分析 首先checksec一下,发现没开栈保护,可能是栈溢出. [*] '/root/Desktop/bin/pwn/stack_/stack' Arch: i386- ...

  7. unity让碰撞只发生一次

    碰撞发生在帧的开始,所以你可以检测到冲突,并在LateUpdate复位: private bool hasCollided = false; void OnCollisionEnter(Collisi ...

  8. 如何用CDR做出毛笔字效果

    不仅仅是水墨字,毛笔字在CDR中的制作也是很简单的.一般来讲,水墨字其实跟毛笔字有相通之处,也可以说毛笔字是水墨字的一种,在CDR中的实现也是既简单又实用的. 方法一:艺术笔工具 艺术笔工具是比较便捷 ...

  9. 如何用python做出老师看了都给满分的GUI学生管理系统毕设

    序 言 哈喽大家好鸭!我是小熊猫 最近有什么有趣的事情发生吗?快来说给我听听( •̀ ω •́ )✧表弟大学快毕业了,学了一个学期Python居然还不会写学生管理系统,真的给我丢脸啊,教他又不肯学,还 ...

  10. 养只爬虫当宠物(Node.js爬虫爬取58同城租房信息)

    先上一个源代码吧. https://github.com/answershuto/Rental 欢迎指导交流. 效果图 搭建Node.js环境及启动服务 安装node以及npm,用express模块启 ...

随机推荐

  1. 报名开启 | HarmonyOS第一课“营”在暑期系列直播

    <HarmonyOS第一课>2023年再次启航! 特邀HarmonyOS布道师云集华为开发者联盟直播间 聚焦HarmonyOS 4版本新特性 邀您一同学习赢好礼! 你准备好了吗? ↓↓↓预 ...

  2. 全局模型可解释之部分依赖图:Partial Dependence Plot

    本部分是来自大纲 模型可解释的一个子分支. 部分依赖图可以表示1个或者2个特征对模型的预测结果所能产生的边际效应.同时也能展示1个特征和label直接是否具有:线性相关性.单调性等. 当我们把pdp应 ...

  3. 报表如何批量导出成 excel 文件

    需求说明 报表展现后可以通过工具栏中的导出按钮将当前展现的报表导出成 excel 文件,但是在实际使用中通常会要求报表不需要展现,直接通过一些操作将报表导出成 excel 文件,并且往往会要求批量导出 ...

  4. gRPC入门学习之旅(七)

    gRPC入门学习之旅(一) gRPC入门学习之旅(二) gRPC入门学习之旅(三) gRPC入门学习之旅(四) gRPC入门学习之旅(五) gRPC入门学习之旅(六) 3.6.创建gRPC的桌面应用客 ...

  5. 文件上传之Webshell连接方法

    "感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" Websh ...

  6. 力扣237(java&python)-删除链表中的节点(中等)

    题目: 有一个单链表的 head,我们想删除它其中的一个节点 node. 给你一个需要删除的节点 node .你将 无法访问 第一个节点  head. 链表的所有值都是 唯一的,并且保证给定的节点 n ...

  7. 《领域驱动设计》:从领域视角深入仓储(Repository)的设计和实现

    简介: <领域驱动设计>中的Repository(下面将用仓储表示)层实际上是极具有挑战性的,对于它的理解,也十分重要.本文讲大部分内容都在众多前辈理论基础上,从一个崭新的领域视觉开始探索 ...

  8. AI和大数据结合,智能运维平台助力流利说提升核心竞争力

    简介: 简介:本文整理自数智创新行--智能运维专场(上海站),流利说最佳实践演讲:<基于SLS千万级在线教育平台统一监控运营实践> 作者:孙文杰 流利说运维总监元乙 阿里云智能技术专家 优 ...

  9. 最佳实践丨云上虚拟IDC(私有池)如何为客户业务的确定性、连续性保驾护航

    ​简介: 企业业务上云后,还面临特定可用区购买云上特定计算产品实例失败的困境?云上私有池pick一下 Why 云上业务为什么需要资源确定性.服务连续性 云计算正朝着像水电煤一样的基础设施演进,支持用户 ...

  10. DataWorks 功能实践速览

    ​简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率! 功能推荐:独享数据集成资源组 如上期数据同步解决方案介绍,数据集成的批数据同步任务运行时,需要占用一定 ...