GalForUnity入门教程

入门

  1. 找到GalForUnity/Demo/Scenes/SampleScene场景,并打开场景(什么是场景?),

打开后如图所示,在层级面板中。为一个GalForUnity的使用案例

如果出现人物不显示的问题,只需要双击层级面板(Hierarchy)中的/RoleController/Live2d2(即Live2D对象)再拖拽左边滚动条即可

  1. 直接点击播放,然后在游戏视图(Game)中点击鼠标即可观察到效果。

    image-20210104120059992

框架及其使用

观察效果后,我们来系统性的了解框架的运行原理和使用方法。首先层级视图中最显眼就是GameSystem对象。这是游戏系统的管理类,管理着游戏的始终

SceneController,该对象是场景的控制器,在游戏开始的时候,会将所有的场景模型(SceneModel)附加到控制器内

RoleController,该对象是角色的控制器,在游戏开始的时候,会将所有的角色模型(RoleModel)附加到控制器内

PlotFlowController,该对象是剧情流的控制器,在游戏开始的时候,会将所有的及剧情模型(PlotModel)附加到控制器内

ShowPlotView,该对象是剧情视图的展现对象,能将剧情视图展现到屏幕中来

OptionController,该对象是剧情的选项控制器,管理需要玩家选择的选项

上述的控制器都通过GameSystem统一协调和管理,并且都可以通过 G a m e S y s t e m . D a t a \textcolor{RedOrange}{GameSystem.Data} GameSystem.Data来访问。虽然整个游戏系统会在游戏开始时自动初始化,但是在Inspector视图中依旧保留有初始化按钮,以便开发者在开发过程中能获得良好的游戏框架,以便游戏的维护与开发

image-20211118195217266

对于一个空GameSystem,在点击GameSystem的初始化按钮后,会自动创建相应的控制器并且引用,如果场景中已经有相应的控制器,则控制器会被最后一个初始化的GameSystem所夺取,但是所有的GameSystem均会持有相同的控制器引用。

不要尝试创建额外的控制器,尽管他们最后只有一个会被引用,但是大量附加在层级视图中的控制器会交叉执行,造成无法预料的结果

创建新场景

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U8mV8u5S-1637676953742)(images/image-20211118200604883.png)]

首先在Project目录创建新Scene,并且双击打开。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gz8Y4EmF-1637676953742)(images/image-20211118200717697.png)]

在层级视图(Hierarchy)中右击创建新的空对象。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wc1PGkQM-1637676953743)(images/image-20211118203648398.png)]

选中新创建的对象,并点击AddComponent,输入GameeSystem,点击脚本并添加。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vnHOcmOd-1637676953743)(images/image-20211118203942558.png)]

GameSystem会自动初始化整个系统,您无需再执行手动操作。当您在未来发生项目混乱不堪的问题时,您可以通过点击初始化游戏系统来使得项目变得整洁。

对于一个空GameSystem,您可以先点击 初 始 化 游 戏 系 统 \textcolor{orange}{初始化游戏系统} ,并在RoleController控制器下新建GameObject,或者拖拽Live2D模型到层级视图,并且附加RoleModel类

  1. 在层级视图(Hierarchy)中对着RoleController右击鼠标点击Create Empty以新建GameObject,
image-20210104122818112
  1. 建议您可以从自有的模型中拖拽到视图中,以减少操作步骤(Rice模型是Live2D插件提供的默认模型,GalforUnity不提供)

image-20201228211128564

image-20201228211524081

  1. 单击新建的GameObject,并在Inspector视图的底部点击AddComponent输入RoleModel添加组件。

image-20201228213207552

如果您没有Live2D的授权,也可以使用Unity精灵,或者网格渲染器,关于网格渲染器和Unity精灵的使用您可以参阅Unity手册。本文档简述添加步骤。

  1. 点击Project选择自己喜欢的图片,您可以从外部拖拽导入图片,在Inspector视图中将TextureType改为Sprite。点击应用

    在这里插入图片描述
  1. 将该图片拖动至RoleController下即可查看到您的精灵

  1. 记得为你的角色添加RoleModel哦

  2. 如果图片过大。通过修改Transform组件的scale属性来修改大小

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jny3bBfd-1637676953745)(images/image-20211118223645813.png)]

一个合理的建议是新创建一个空对象,将角色移动到空对象下,并修改空对象的Scale,通过父组件来控制大小可以保证运行时不受影响。

RoleModel类会自动捆绑并添加RoleData类,并且被添加在Live2D模型上时还会自动添加CubismFadeController和CubismMotionController(仅限编辑器模式)。您可以在该RoleData中修改该角色的初始数值,并且在RoleModel中填写角色姓名,如果您没有将RoleModel添加到Live2D模型或您的Sprite上,那么这里还需要手动附加到模型属性上(如何附加?)

并且在1.0r版本当中,我们对RoleData进行了重写,现在的RoleData相较于之前的固定数据,最新版本能支持大量的自定义数据,只需要点击RoleData右下角的 “+” 即可

优化前优化后

我们这里给他取一个名字,例如:柒玥;并输入到姓名属性内

并且单击CubismFadeMotionList按钮,附加动作资源

随后我们在PlotFlowController中新建GameObject,并且附加PlotModel

PlotModel会自动附加类组件从1.0b的三个减少了到1.0r的两个,并且在1.1b中不会附加脚本,除了不可见的GfuInstance,但是这不意味着PlotModel不在支持对角色数据之类的控制了,相反,这会使开发者有更多的自由度去手动控制附加。

在最新的1.1r版本当中对PlotFlow,PlotRequire进行了二次重写,优化了操作界面,并且曾经添加的ActionMotion(结束活动)的功能将会在不久的为了被废弃,功能已经被PlotScript覆盖

1.0b1.0r1.1b
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X0q8CNTW-1637676953745)(images/image-20211118220444452.png)]

可以注意到在最新版中PlotRequire(剧情要求)被集成到了PlotModel(剧情模型)当中,并做了适当修改

  • 功能解释

**RoleData(角色数据):**负责记录剧情对角色数值的要求,所有数值满足要求才能触发绑定该RoleData的剧情。当剧情要求不存在RoleData时,默认不论玩家的数值如何都会触发剧情 ∗ 推 荐 专 门 定 义 一 个 对 象 组 来 管 理 全 部 的 角 色 要 求 , 当 然 您 也 可 以 在 剧 情 模 型 中 附 加 角 色 要 求 , 并 引 用 ∗ *\textcolor{RedOrange}{推荐专门定义一个对象组来管理全部的角色要求,当然您也可以在剧情模型中附加角色要求,并引用}*

**PlotFlow(剧情流)(已经废弃):**顾名思义,剧情流就是剧情本身,记录着剧情的内容,角色的名字、动作、配音、说的话以及背景等等数据

**PlotRequire(剧情要求):**记录剧情的类型及要求,包括剧情的允许从什么时候开始检测触发,什么时候结束检测,以及管理场景要求(SceneModel)和角色要求(RoleData)的引用等等,如果角色数据和场景要求都被满足,剧情才会被触发,剧情流才会被一条条执行

**PlotModel(剧情模型):**持有着剧情要求和剧情流的引用,管理着剧情要求和剧情流。一般无需操作。

**ActionModel(活动模型):**活动模型又称完结操作,是指剧情流结束之后执行的操作,主要有前往场景,跳转剧情等等,当然也可以自定义 ∗ 例 如 在 一 个 剧 情 结 束 之 后 调 用 U n i t y 拉 近 镜 头 , 切 换 S c e n e , 打 开 小 游 戏 等 等 ∗ *\textcolor{RedOrange}{例如在一个剧情结束之后调用Unity拉近镜头,切换Scene,打开小游戏等等}* UnityScene

随后我们操作剧情流,将Rice附到出场角色当中,并添加编辑剧情项,和附加要播放的角色动画。如果对于场景和角色数据有要求的可以自行添加。不填写的默认不做要求,即任何场景以及角色数据都可以触发剧情, 这 通 常 用 于 某 些 必 定 会 触 发 的 日 常 剧 情 。 \textcolor{RedOrange}{这通常用于某些必定会触发的日常剧情。}

一切保持默认即可

接下来就是重头戏,来见识一下全新的Gal开发工作流吧!

1.在Project右击选择GalForUnity,创建PlotItemGraph

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5HD79wuE-1637676953746)(images/image-20211118224018366-16375037862443.png)]

  1. 创建完成以后双击打开,将弹窗移动到合适的选项卡或者位置,你可以看到一个空视图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j2ojYvfz-1637676953746)(images/image-20211118224138712.png)]

  1. 右击空视图,点击Create Node -> 节点 -> 剧情项节点新建一个节点并输入要显示的名字和语句,最后将新建的节点连接主节点,单击保存,没有保存的图进入播放模式或切换场景后会丢失编辑的内容。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oy6XiCVg-1637676953746)(images/image-20211118224617505.png)]

  1. 最后在先前创建的PlotModel(剧情模型)中的剧情图中,创建一个GfuSceneGraph,并将节点拖动到Graph(图数据)中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存失败,源站可能有防盗链机制,建议将图片保存下来直接上传下上传(i2p-E7ozm34k-1637676953747)(images/image-20211118225331376.png)(images/image-20211118225331376.png)]

一切准备就绪,点击屏幕中间的播放键,在点击Game视图查看效果吧!

image-20210104152933832

什么?角色消失了?那是因为角色还没有进行登场操作…

什么,如何登场?快好好研究一下节点系统吧!提示:操作->角色节点->操作类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值