基于xml简单的剧情系统

Unity实现RPG角色对话框 因为打算制作一款RPG类的游戏demo, 阅读详情

写得比较简陋,仅实现了对白,头像功能这两个核心功能

 

系统主要包括决本的制定和后台代码的编写。
首先是脚本方面
脚本:
这里我用的是xml,本来想用lua的,想想xml的操作我还不熟悉还是先弄xml
代码如下:

 

解释一下:
}}头像处理{{
<action type="loadFace" pos="left">yihu</action>
type属性指这条脚本的类型,loadFace是加载头像的意思,另外一个值dialog是对白
pos属性指头像在何方,可选left或right
type="loadFace"下,<action></action>之间值代表加载谁的头像。

<action type="removeFace">luqiya</action>与上面相对,是移除头像的意思。

}}对话处理{{
<action type="dialog" name="露琪亚">一户,现在可是紧急状况啊。</action><!--对白-->
name属性指谁说的
type="dialog"下,<action></action>之间值代表说话的内容。

脚本就是这样简单

后台:
后台主要的功能读取脚本,然后根据脚本内容执行相应操作。
全局变量:juqingStep,totalStep
用来判断在情节dialog下有多少条action,用以判断脚本操作何时结束,剧情是否完毕。

//初始化工作
private function juqingHandleInc(){
//这里主要有两个操作
//1是读取相关情节的action数量,并赋给totalStep
//2是调用loadJuqing(enemyLevel:uint),这里enemyLevel是指执行第几段剧情
}

//读取脚本并执行相应操作
private function loadJuqing(enemyLevel:uint){
//这里主要有三个操作
//1是判断当前juqingStep是否>=totalStep,是的话就return退出
//2 读取一条脚本,juqingStep++; 判断脚本类型
//3 根据脚本类型执行操作。如果是无需等待用户响应的操作,如loadFace,则执行loadFace(name:String,dir:String):加载头像,然后调用loadJuqing(enemyLevel:uint)读取下一条脚本。如果是需要等待用户响应的操作,如dialog(用户看完对白要按鼠标才到下一条),则只显示对白内容,在外面写监听语句,等用户点击鼠标后才执行loadJuqing(enemyLevel:uint)读取下一条脚本

}

//加载头像
public function loadFace(name:String,dir:String):void{
}

//移除头像
public function removeFace(name:String):void{
}

//监听用户操作,如用户鼠标点击对白内容时,执行loadJuqing(enemyLevel:uint)读取下一条脚本。不同语言处理方法差异较大我就不写了

效果:

 

虽然十分简单,但也足够我目前的一个小游戏了

2D游戏轻量级剧情系统开发:JSON数据驱动与Unity实践 游戏剧情系统是现代游戏开发中的核心技术组件,它通过结构化的数据管理和事件驱动机制实现叙事内容的动态呈现。其核心原理是将剧情元素抽象为可配置的数据节点,利用状态机模型控制流程跳转,通过UI渲染层实现玩家交互。这种技术方案的价值在于实现了内容与逻辑的解耦,大幅提升了剧情创作的可维护性和迭代效率。在2D游戏开发领域,轻量级剧情系统尤其重要,它需要在不影响性能的前提下,为平台跳跃、角色扮演等类型游戏提供沉浸式叙事体验。本文基于JSON数据格式和Unity引擎,详细解析了如何构建一个完整的2D游戏剧情系统,涵盖了从数 阅读详情

相关推荐

AI应用架构师:打造AI驱动元宇宙游戏的剧情系统

本文将以“AI应用架构师”的视角,系统讲解如何设计并实现一套支撑元宇宙游戏的AI驱动剧情系统。我们将从底层架构设计出发,拆解“剧情生成、玩家感知、状态管理、多模态交互”四大核心模块,详解AI模型选型(如大语言模型、强化学习、情感计算)、数据流转链路、分布式协作机制,并通过实战案例演示如何让剧情根据玩家行为实时进化、让NPC拥有“自主意识”、让世界叙事具备“涌现性”。将玩家行为分为核心事件(直接影响剧情,如任务提交)和辅助事件// 事件唯一ID// 玩家ID。

AI天才研究院 449

基于XML实现的在线考试系统

基于XML实现的在线考试系统XML课程考核作业

xml写的简单学生管理系统

该简易的学生管理系统是用xml写的,包括学生管理系统的最基本操作增删改查

Unity剧情对话XML实现

Unity剧情对话XML实现 小生正在做一款剧情冒险游戏,剧情游戏最少不了的便是对话系统。 那么今天我们就来说一下具体实现。 1.创建对话Canvas 我的排版是三个图片,依次为npc头像,对话的背景,主角头像。 2.创建人物 我们先创建主角,挂载脚本,不方便贴出所有代码,讲下思路。 有一个Player脚本,其中设置一个函数包括所有点击行走鼠标射线检测到的第一个layer,分情况讨论,如果是路,...

编程书生的博客 2678

【游戏客户端】剧情系统

一个优秀的剧情设计能够让玩家更好的了解游戏的世界观,致使玩家能够沉浸式体验游戏。今天要和大家分享如何实现游戏中的剧情系统

Lampard的博客 3371

过场剧情系统

USequencer一款强大的剧情制作插件。 美术、程序、策划我们都喜欢它… 优点 官方提供的demo很容易看懂。 功能强大,但是扩展却非常容易。 无限的扩展:事件扩展。可以达到美术要求的任何效果。 编辑器扩展:虽然官方的编辑器做的并不好,但是却提供了给你扩展的机会,而且扩展起来也很容易。 有开源版本。 缺点 动态的过场,依赖游戏运行时数据,这样根本就没有办法事先就在编辑器模式下完成。 对于...

qq_15507535的博客 517

XML系统学习

一、XML基础1.什么是XMLXML 指可扩展标记语言(eXtensible Markup Language)XML 被设计用来传输和存储数据。 HTML 被设计用来显示数据。 XML 是一种很像HTML的标记语言。 XML 标签没有被预定义。您需要自行定义标签。XML 不是对 HTML 的替代 XML 是独立于软件和硬件的信息传输工具。 2.XML的用途 XML 把数据从 HT

蜡笔小新的博客 685

剧情还玩毛RPG

本章源码下载:http://www.iamsevent.com/zb_users/UPLOAD/dramaPlayer/MyDramaSystem.rar(其中包含剧情编辑器及剧情测试应用。对于剧情编辑器,要看源码的话直接在FB中导入项目文件夹,要直接运行的话运行.air程序安装包,要发布.air,可以使用我放在编辑器目录下的.p3文件,发布密码是123456) 结果演示:http://www.

haihaiger的专栏 1155

2D游戏剧情系统开发:从数据驱动到Unity集成的完整指南

游戏剧情系统是现代游戏开发中的核心技术组件,它通过数据驱动架构实现剧情内容与游戏逻辑的分离。其核心原理是将对话、分支选择等剧情元素存储在外部JSON文件中,利用状态管理跟踪玩家进度,实现可视化编辑和条件判断。这种技术方案的价值在于提升开发效率,支持多语言本地化,并实现剧情与游戏机制的深度集成。在应用场景上,无论是独立2D游戏还是大型RPG项目,都能通过模块化的剧情系统增强玩家沉浸感。本文以Unity引擎为例,详细解析剧情系统的基础架构设计、JSON数据驱动实现,以及如何通过事件系统剧情与游戏玩法有机融合,

weixin_30740581的博客 267

打造沉浸式射击游戏:C#剧情系统实战全解析

C#射击游戏剧情系统设计与优化摘要(148字) 射击游戏剧情系统需平衡枪战快感与叙事沉浸。本文提出模块化架构:StoryNode管理事件单元(对话/动画/场景切换),TriggerCondition实现动态触发,FlowController协调流程推进。关键技术包括:基于协程的节点生命周期控制、空间分割优化触发检测、状态机管理分支剧情、资源异步加载避免卡顿。实战方案采用数据驱动,通过JSON/Excel配置剧情逻辑,结合事件总线实现系统解耦。特别优化了多线叙事同步机制,确保射击玩法与剧情演出无缝衔接。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 1011

了解RPG游戏中剧情播放器的制作原理及流程

http://www.iamsevent.com/post/44.html 本章源码下载:http://www.iamsevent.com/zb_users/UPLOAD/dramaPlayer/MyDramaSystem.rar(其中包含剧情编辑器及剧情测试应用。对于剧情编辑器,要看源码的话直接在FB中导入项目文件夹,要直接运行的话运行.air程序安装包,要发布.air,可以使

any 4529

基于XML的查询系统

基于XML的学生查询系统,内含数据库,CSS,XSL,DTD,并且带有界面,可以自己调整,简单上手,结构鲜明。

基于XML的学生信息系统

基于XML的学生信息管理系统,欢迎大家下载,

基于XML的学生信息管理系统

基于XML的学生信息管理系统 附有课程设计报告一份 各种齐全各种有

xml编写的图书管理系统

xml编写的图书管理系统,可以实现增删改查操作,两个学生和一个图书

cocos2d-x实现游戏剧情对话——打字效果

做RPG游戏的时候会有剧情对,中英文混搭,要求打字效果,一个字一个字的往出蹦。 先看一下xml文件 [html] view plaincopy xml version="1.0" encoding="UTF-8"?>      plist version="1.0">     talk anchor="0" icon="talk/ic

houjia159的专栏 4191

UE5 动态剧情系统:C++蓝图函数库实现CSV剧本实时解析

本文详细介绍了在UE5中利用C++蓝图函数库实现CSV剧本实时解析的动态剧情系统开发方法。通过定义结构体、设计CSV文件格式及实现解析逻辑,开发者可以创建低耦合、易扩展的剧情系统,支持实时加载和修改,大幅提升游戏开发效率。

weixin_28197941的博客 327

SiameseUIE与Unity集成:游戏剧情文本的智能分析

本文介绍了如何在星图GPU平台自动化部署SiameseUIE模型部署镜像,实现游戏剧情文本的智能分析。该镜像能自动提取游戏对话中的人物、地点和事件关系,为动态剧情生成系统提供结构化数据支持,提升游戏开发效率和玩家体验。

weixin_29317963的博客 315
上一篇: 小游戏算法系列一之俄罗斯方块矩阵旋转的一种方法
下一篇: 小游戏系列算法之五广度优先搜索,双向广搜,八数码,华容道
fengsser
博客等级 码龄17年 62粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值