边策划边制作的游戏开发日志(二)引入Unitychan的舞蹈

2024-02-17 06:50

本文主要是介绍边策划边制作的游戏开发日志(二)引入Unitychan的舞蹈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Unitychan官方项目里有一个完整的舞蹈项目,里面有很多很炫的特效,里面的特效还会根据音效来做出反应。我摸索了一番这个项目,决定把它的舞台和舞蹈搬到自己的游戏中来。

这个项目的场景和人物都是运行的时候再加载到场景中的,一些参数也是动态加载的,运行后会根据一些动画机内置的事件来触发镜头的切换,人物嘴型的切换等。
首先是移植UnityChan的状态机,这是原先的状态机

原来有三层,第一层控制全身动作,第二层控制脸型,第三层控制手指动作,我将其移到我原先的状态机中
在这里插入图片描述

同时,那个开源项目在代码里设置了状态机层级的权重,我相应的修改了这些层级次序和权重,以便和我自己的动画适配。
原项目通过这个动画来控制嘴型在这里插入图片描述
,我也一并移植到了我的项目。
我修改了触发舞蹈的条件,以及舞蹈结束的处理。此时我的项目中已经可以让Unitychan跳舞了。但是没有分镜和场景,效果和原项目差了一大截。

我把原项目用于生成这些的代码给搬了过来并进行一翻魔改以适配我的项目,让场景在一开始就生成但不触发动画事件和一些其他的事件,然后再将舞台的一些材质的shader修改成了双面Shader,这样从外面看舞台时不是透明的了。
在这里插入图片描述
上图是原先的shader,
在这里插入图片描述
这是用双面shader后的效果。
在这里插入图片描述
这是没有激活的舞台内部。
在这里插入图片描述
这是激活后的。

在这里插入图片描述
通过切换相机,将在跳舞时的主相机设成原项目里的相机,把原来的分镜效果也移过来了。
在这里插入图片描述
后面这个大屏幕是通过另一个移动的相机来渲染一个纹理得到的,上面的条形效果用到了他自写的shader,混合了一张条纹图片。以前做小地图也用到了这种技术。

在这里插入图片描述
舞台上的蜂巢光圈和红色旋转光圈会根据音效来变换效果,这里用到了作者自己写的很复杂的shader。

舞蹈跳完后Unitychan又可以自由活动了,同时也能再回到舞台上舞蹈。

在这里插入图片描述
同时我用ProBuilder来装饰了一下舞台,加了个平台和梯子不然Unity酱上不去。。当然ProBuilder还有很多功能,可以直接用来做类似纪念碑谷的关卡。

这次就先做到这里,之后可能会发展示视频在B站。

这篇关于边策划边制作的游戏开发日志(二)引入Unitychan的舞蹈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/716995

相关文章

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.