入门
- 找到GalForUnity/Demo/Scenes/SampleScene场景,并打开场景(什么是场景?),
打开后如图所示,在层级面板中。为一个GalForUnity的使用案例
如果出现人物不显示的问题,只需要双击层级面板(Hierarchy)中的/RoleController/Live2d2(即Live2D对象)再拖拽左边滚动条即可
-
直接点击播放,然后在游戏视图(Game)中点击鼠标即可观察到效果。
框架及其使用
观察效果后,我们来系统性的了解框架的运行原理和使用方法。首先层级视图中最显眼就是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视图中依旧保留有初始化按钮,以便开发者在开发过程中能获得良好的游戏框架,以便游戏的维护与开发

对于一个空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类
- 在层级视图(Hierarchy)中对着RoleController右击鼠标点击Create Empty以新建GameObject,
![]()
- 建议您可以从自有的模型中拖拽到视图中,以减少操作步骤(Rice模型是Live2D插件提供的默认模型,GalforUnity不提供)
- 单击新建的GameObject,并在Inspector视图的底部点击AddComponent输入RoleModel添加组件。
如果您没有Live2D的授权,也可以使用Unity精灵,或者网格渲染器,关于网格渲染器和Unity精灵的使用您可以参阅Unity手册。本文档简述添加步骤。
- 点击Project选择自己喜欢的图片,您可以从外部拖拽导入图片,在Inspector视图中将TextureType改为Sprite。点击应用
将该图片拖动至RoleController下即可查看到您的精灵
记得为你的角色添加RoleModel哦
如果图片过大。通过修改Transform组件的scale属性来修改大小
一个合理的建议是新创建一个空对象,将角色移动到空对象下,并修改空对象的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.0b | 1.0r | 1.1b |
---|---|---|
![]() | ![]() | ![]() |
可以注意到在最新版中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,打开小游戏等等}* ∗例如在一个剧情结束之后调用Unity拉近镜头,切换Scene,打开小游戏等等∗
随后我们操作剧情流,将Rice附到出场角色当中,并添加编辑剧情项,和附加要播放的角色动画。如果对于场景和角色数据有要求的可以自行添加。不填写的默认不做要求,即任何场景以及角色数据都可以触发剧情, 这 通 常 用 于 某 些 必 定 会 触 发 的 日 常 剧 情 。 \textcolor{RedOrange}{这通常用于某些必定会触发的日常剧情。} 这通常用于某些必定会触发的日常剧情。
一切保持默认即可
接下来就是重头戏,来见识一下全新的Gal开发工作流吧!
1.在Project右击选择GalForUnity,创建PlotItemGraph
- 创建完成以后双击打开,将弹窗移动到合适的选项卡或者位置,你可以看到一个空视图
- 右击空视图,点击Create Node -> 节点 -> 剧情项节点新建一个节点并输入要显示的名字和语句,最后将新建的节点连接主节点,单击保存,没有保存的图进入播放模式或切换场景后会丢失编辑的内容。
- 最后在先前创建的PlotModel(剧情模型)中的剧情图中,创建一个GfuSceneGraph,并将节点拖动到Graph(图数据)中
一切准备就绪,点击屏幕中间的播放键,在点击Game视图查看效果吧!
什么?角色消失了?那是因为角色还没有进行登场操作…
什么,如何登场?快好好研究一下节点系统吧!提示:操作->角色节点->操作类型