免费预览已结束,剩余81页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文基于 Ogre 图形渲染引擎的 3D 游戏开发Ogre Graphics Rendering Engine Based 3D GameDevelopment姓名: 学号: 学院:软件学院系:软件工程专业:软件工程年级: 指导教师: 二XX 年X月摘要随着计算机图形学的发展,3D 硬件技术的突破,使得 3D 实时画面越来越精致,而 3D 的渲染越来越真实,因此在游戏产业中也掀起 3D 的浪潮,从最初的虚幻竞技场到现在的战锤 40K 战争黎明 II。在制作游戏的开始要先组建自己的游戏引擎。游戏的制作有多方面的因素:图像渲染,物理仿真,界面显示,音频输出,网络传输等。本文采用 Ogre 这款开源的图像渲染引擎,它支持目前主流的游戏开发技术 Direct3D 和 OpenGL,物理引擎选用 ODE,界面显示采用与 Ogre 兼容的 CEGUI,音频采用 Fmod 库,由于我开发的是单机游戏所以不需要网络模块。本文主要介绍了如何在搭建好的游戏引擎上设计并编写游戏的过程,主要包括游戏的框架设计,游戏的详细设计,游戏的实现等部分。游戏的框架保证游戏是易于扩展的,易于实现的。介绍了游戏的关卡设计,模型建立,骨骼动画,脚本编写等。 通过本文的介绍可以在已有的游戏引擎的基础上实现自己想做的游戏,使得游戏的制作变的容易。而且 Ogre 是一款开源的图像渲染引擎,对不满意的地方还可以自行进行修改。关键词:Ogre;3D 游戏;关卡设计;AbstractWith the development of computer graphics and 3D hardware technology, cause the 3D graphics rendered more and more real. So in the game industry set off a wave of 3D, from the original Fantasy, and now War Hammer 40K Dawn of War II , from the stand-alone games to online games have gradually replaced by the 2D game market. A number of European, American and Japanese game company have their own 3D game engine. Many our companies have also developed a number of good 3D games, and also developing its own 3D game engine. However, the free open source game engine has very few and commercial game engines are too expensive. So that causes the general game enthusiasts failing to develop their own games. Therefore, the beginning of develop a 3D game is to build the game engine. There are many factors: Graphic Render Engine, Physical Engine, UI, Audio Output and Network. In my research, I have used this open-source Graphic Render Engine Ogre. It both supports Direct3D and OpenGL. I selected the Physical Engine ODE. the UI use the CEGUI which can work with the Ogre. Finally, audio output uses Fmod library. I didnt develop an online game, so there is no need for network module.This paper mainly introduces how to design a game on a set up game engine, including how to design a framework of the game, the detailed design of the game, and how to realize the plan. Framework can ensure that game play is easy to extend, easy to achieve. The details tell how to use Ogre, how to use physics engine, how to design the missions, modeling, skeletal animation, script and so on. After read, you can develop your game on this game engine much easier. Ogre is also open source, so you can change anywhere you arent approving.Key words: Ogre; 3D Game; Mission design;目 录第一章 引言 .11.1目的 .11.2背景 .11.3程序设计方案 .11.4项目计划 .2第二章 游戏框架设计 .32.1游戏引擎设计 .32.1.1图形渲染引擎 .32.1.2物理引擎 .52.1.3Fmod 和 CEGUI .52.2 游戏整体关系.52.3游戏主框架设计 .72.4游戏主流程图 .9第三章 游戏详细设计 .113.1游戏关卡模块设计 .133.1.1关卡分类 .133.1.2关卡监听器(Listener) .143.1.3关卡控制对象 .143.1.4消息机制 .173.1.5关卡实现效果图: .183.2游戏角色模块设计 .243.2.1角色分类 .253.2.2角色监听器(Listener) .263.2.4角色行为 .263.3游戏静物模块设计 .303.3.1静物行为 .313.4游戏道具模块设计 .323.4.1道具行为 .333.5游戏 AI 模块设计 .343.5.1有限状态机 .353.5.2 状态分类.353.5.3定时器 .353.5.4 状态周期363.6 游戏 GUI 设计363.6.1 GUI 规范373.6.2 GUI 脚本373.6.3 GUI 效果图383.7 游戏影音模块设计423.7.1 DirectShow433.7.2 BaseSound433.8 XML 存储文件设计44第四章 游戏实现454.1 游戏关卡设计454.1.1 游戏菜单454.1.2 关卡策划464.1.2.1 关卡怪物484.1.2.2 关卡技能494.1.3 各关卡设计图504.2 游戏角色设计534.2.1 操作设计534.2.2 角色参数设定544.2.3 角色行为574.3 游戏模型制作584.3.1 模型制作584.3.2 动画制作624.4 游戏脚本制作644.4.1 Material 脚本644.4.2 Particle 脚本654.4.3 Overlay 脚本664.5 游戏贴图纹理制作694.5.1 普通图片制作694.5.2 UVW 贴图70第五章 结束语73参考文献75致谢77Contents1 Index.11.1Intention .11.2Background .11.3Program Plan .11.4Project Scheme .22 Framwork Design .32.1Game Engine Design .32.1.1Graphic Render Engine .32.1.2Physical Engine .52.1.3Fmod and CEGUI .52.2Game Module Design .52.3Framework .72.4Main Flow .93 Detail Design .113.1Mission Module Design .133.1.1Mission Classify .133.1.2Mission Listener .143.1.3Mission Controled .143.1.4Message Transfer .173.2Role Module Design .243.2.1Role Classify .253.2.2Role Listener .263.2.4Role Behaviour .263.3Static Things Module Design .303.3.1Static Things Behaviour .313.4Tool Module Design .323.4.1Tool Behavior .333.5AI Module Design .343.5.1State machine .353.5.2State Classify .353.5.3Timer .353.5.4State cycle .363.6 GUI Design363.6.1 GUI Criterion373.6.2 GUI Script373.7 Audio and Video423.7.1 DirectShow433.7.2 BaseSound433.8 XML Files444 Game Realized454.1 Mission Design454.1.1 Menu454.1.2 Design the Missions464.1.2.1 Monsters484.1.2.2 Skills494.1.3 Design Picture504.2 Role Design534.2.1 Operating Design534.2.2 Parameter Design544.2.3 Role Animations574.3 Make Model584.3.1 Model584.3.2 Animation624.4 Make Script644.4.1 Material Script644.4.2 Particle Script654.4.3 Overlay Script664.5 Make Pictures694.5.1 Normal Picture694.5.2 UVW Texture705 Conclusions73Acknowledgements75References77第一章 引言第一章 引言1.1 目的设计基于开源免费的游戏引擎 (Ogre+Ode) 以及 Autodesk 3ds Max 8,FreeWorld3D 等游戏开发工具,将一部现有的动画改编成 3D 的动作类角色扮演游戏。涉及的主要研究内容有游戏的关卡设计,人物设计,场景人物建模等。该游戏为一动作类角色扮演游戏(ARPG),在描述剧情的同时又兼顾动作类游戏的特点,基于开源的游戏引擎使得游戏的开发和修改更为灵活。1.2 背景本次毕业设计基于开源免费的游戏引擎(Ogre+Ode)以及 Autodesk 3ds Max 8,FreeWorld3D 等游戏开发工具,将一部现有的动画改编成 3D 的动作类角色扮演游戏。涉及的主要研究内容有游戏的关卡设计,人物设计,场景人物建模等。该游戏为一动作类角色扮演游戏(ARPG),在描述剧情的同时又兼顾动作类游戏的特点,基于开源的游戏引擎使得游戏的开发和修改更为灵活。游戏的剧情以一部现有的动画改编(宇宙骑士),对原作进行了一定的修改,游戏一共分为五个章节。1.3 程序设计方案软硬件环境介绍:1、硬件: PC2、软件: Windows 系列操作系统3、所需配置: 512MB 以上内存,独立显卡,有 OpenGL 或是 DirectX 库开发语言:C+开发平台:Visual Studio 20051基于 Ogre 图形渲染引擎的 3D 游戏开发1.4 项目计划游戏的开发和普通软件开发大同小异,从策划到设计到实现。因为是实现一部已经存在的动漫,所以在设计方面简化了不少步骤的开发(如剧本,人设,风格等)。下图为项目计划的甘特图:图 1-1:项目计划甘特图2第二章 游戏框架设计第二章 游戏框架设计一个好的游戏框架是一款好游戏的必备条件,它决定着游戏的性能,游戏的质量,游戏的速度等众多游戏的硬性条件。它主要包括选择游戏需要哪些功能,包含哪些模块,游戏的各个模块是如何组织的,对于较大的游戏还要选择什么样的游戏引擎进行支持。2.1 游戏引擎设计一般的游戏公司开发 3D 游戏或采用其公司自己的游戏引擎,或是购买其它商业引擎。鉴于商业引擎的价格,于是采用免费的和开源的游戏引擎。经过一定得查阅,决定选用 Ogre 引擎。OGRE 本身只是一个图形渲染引擎,所以作为游戏引擎还需要:物理引擎,界面,音频等因为不涉及网络游戏,所以并不需要网络引擎。外加一些建模的工具,幸好 OGRE 支持不少插件,如 CEGUI,ODE,Nivdiv 等,也提供了一些插件来帮助建模,如 oFuction,所以我采用的总体方案是:OGRE(图像渲染引擎) CEGUI(界面制作)ODE(物理引擎) DirectShow(视频播放库)Fmod(音频播放库) Autodesk 3ds Max 8(建模工具) Adobe PhotoShop CS2(贴图制作)2.1.1 图形渲染引擎OGRE 是一个专业的图形渲染引擎,它在相当程度上“专注”于图形处理,确实,拿来做演示 Demo 很方便很强大,但是如果拿来做游戏,必须给它外接各种各样的第三方功能库,用这一个最底层的图形引擎,加上物理、网络、 AI 、 UI 、脚本、场景、角色、等等的各种模块,“组装”成一个可用的游戏引擎。 Nebula 则是一个真正的 3D Game Engine ,具有专业品质,而且各种模块比较全面包括网络和物理、界面、脚本,它设计出来就是为了做游戏,使用会更加方便。3基于 Ogre 图形渲染引擎的 3D 游戏开发Ogre几乎拥有了商业 3D渲染引擎的全部特性,甚至在以下几个方面超越了其它引擎2。全面并同等的支持 OpenGL 和 Direct3D。全面支持 Windows,Linux 以及 Mac OS X 平台。简单并可扩展的对象框架,能方便的插入到已存在的应用程序框架中。自动处理渲染状态和空间剪裁。强大且成熟的材质管理和脚本系统,可以不动一行代码去进行材质维护。支持所有纹理混合和绑定技术,同时支持对 GPU 编程技术,支持汇编语言和所有高级语言形式的各种着色语言,其中高级语言包括:Cg,HLSL 和 GLSL。支持多种纹理图片格式,包括:PNG,TGA,DDS,TIF,GIF,JPG,同时支持特殊格式的纹理,其中包括:一维纹理(1D),容积纹理(Volumetric textures),体积纹理(Cubemaps)和压缩的纹理格式如:DXTC。全面支持渲染到纹理(Render-to-Texture)技术和投影纹理(贴花, Projective Texturing-decals)。全面支持材质 LoD(细节层次,mipmapping)技术。优化的二进制模型文件格式,同时支持手动和自动 LoD 生成。同时拥有多种从商业或者开源 3D 模型软件导出到 Ogre 模型格式和动画格式的插件,其中包括官方以及用户提供的版本。全面支对顶点和索引缓存(vertex and index buffers)、顶点声明(vertex declarations)以及贴图缓存(buffer mappings)。全面支持骨骼动画和姿态动画(pose 动画,顶点动画的一种),每个顶点可以混合任意数目的骨骼权重。支持软件和硬件加速蒙皮。支持静态几何体批次(static geometry batching)。支持二次贝塞尔曲面(biquadric Bezier patches)。给出以插件方式链接不同场景结构的接口,允许你使用适合自己应用程序的场景体系( 基本的八叉树“octree”场景管理做为一个例子出现在插件中)。高级可屏蔽场景查询系统(Advanced maskable scene-querying system)。全面支持多种阴影技术,包括模版阴影(stencil),纹理阴影(texture),叠加阴影(additive),调制阴影(modulative),并且全部支持硬件加速。4第二章 游戏框架设计 高级插件方式的粒子系统,可扩展的发射器( emitters ),效果器(affectors),渲染器(renderers)(ParticleFX 作为插件的例子被包含在工程里面)。全面支持并且方便使用的天空盒(skyboxes),天空面(skyplanes),以及穹顶(skydomes)。 以精灵效果为基础( sprite-based )并得到渲染优化的公告栏(Billboarding)技术。以单一队列为基础的渲染管理,允许全面操作渲染执行顺序自动管理透明对象。成熟且可扩展的资源管理和载入系统,文件系统支持的文件包括 zip,pk3格式。Ogre 的使用方法的文档很多,这里不进行详细的介绍。2.1.2 物理引擎物理引擎我采用同样开源的 ODE,这是一款 Ogre 支持的开源物理引擎,轻量级的物理引擎。并且 OgreOde 对其与 Ogre 进行了二次封装并提供了友好的接口和一些常用模型,游戏中的物理世界就由 OgreOde 来实现。OgreOde 有其相应的使用说明并由 Demo 可以使用,这里不进行详细介绍。2.1.3 Fmod 和 CEGUICEGUI 全称 Crazy Eddies GUI System ,是一个专门的用户界面库,开源并且免费,它支持 DirectX8 、 DirectX9 ,可以作为 OGRE 的界面外挂。由于它功能的相对强大和灵活, OGRE 的开发团队一直在推荐 OGRE 用户使用这个 CEGUI 来开发用户界面,逐渐抛弃 OGRE 本身过于简陋的 GUI 插件。声音方案采用 Fmod 或者 DirectSound。Fmod 是一个轻量级的音频库,可以简单的实现音频文件的播放。2.2 游戏整体关系游戏由图形图像世界和物理世界组成,结合GUI界面和多媒体5。针对不同5基于 Ogre 图形渲染引擎的 3D 游戏开发的功能选用了不同的解决方法(如上文所述),下图为游戏整体关系图,解释了游戏不同部分之间的关系:FmodDirectShow游戏程序OgreOdeCEGUIODEOGREOIS硬件图 2-1:游戏整体关系图OgreEngine:图像渲染引擎,用于游戏中图形图像的现实,3D 场景的构建,模型的显示,动画的显示等等。OgreOde:ODEEngine 是一款轻量级的物理引擎,OgreOde 对其进行的封装,使得它更适合被基于 Ogre 的程序使用,OgreOde 用于创建游戏中的物理世界,比如重力事件,碰撞检测等。DirectShow:用于显示在游戏进行中必要的视频文件,一般为 AVI 格式。Fmod:用于游戏中音效的播放。CEGUI:用于游戏程序中界面的现实,如主菜单的现实,游戏中提示信息,进行菜单的显示等。OIS:输入库,用于捕获键盘和鼠标的输入信息,有了图像的显示,物理世6第二章 游戏框架设计界的建立,影音的输出,但是游戏不同于一般桌面程序,需要自己处理鼠标与键盘的事件,OIS 提供了这样的接口,而且一般是与 Ogre 一起绑定的。GameApplication:游戏程序,通过继承或引用的方式调用上述库的接口,组成所需要的游戏世界。2.3 游戏主框架设计游戏的平台搭建好了之后,就要构建游戏的框架。游戏主程序为 GameFrame,他 继 承 自 BaseApplication ,在 GameFrame 中 , 依 次 调 用 不 同 的 关 卡(BaseMission),来进行游戏,下图为游戏图框架图:图 2-2:游戏图框架图7基于 Ogre 图形渲染引擎的 3D 游戏开发BaseApplication:游戏主程序的基类,拥有 Ogre 引擎显示所需要的所有基本信息,和初始化函数,如 configure,setup,crateViewport 等。GameFrame:游戏的主应用程序,继承自 BaseApplication,由于 Ogre 不支持多线程,所以所有游戏的过程都是由这个类调用的。 go()函数是引擎的启动函数。由于所有关卡都要使用 GUI 所以在 GameFrame 中加入 CEGUI 库的引用,并初始化 CEGUI。BaseMission:游戏关卡的基类,一般来说一关就是一个 BaseMission,游戏的场景建立,人物角色的初始化都是在这个类中进行的,GameFrame 只是对其进行调用和替换。另外游戏关卡可能涉及物理世界的建立所以要引用 OgreOde(部分关卡不用,比如动画关卡等)。BaseSound:对 Fmod 进行了封装,更加符合游戏的需要,由游戏关卡类进行调用。DirectShow:对 DirectX 中的 DirectShow 进行了二次封装,更加符合游戏的需要,在游戏关卡类中进行调用。Main:包含 Windows 程序运行所需要的 main 函数和游戏运行所需要的 GameFrame 类,在 main 函数中调用 GramFrame 中的 go()函数即可。go():函数中的 mRoot-startRendering()是一个阻塞函数,内部不断的循环,所以一个 Ogre 应用程序只能建立一个 Root 对象,当 mRoot 结束时,就DestroySence()退出程序。8第二章 游戏框架设计2.4 游戏主流程图图 2-3:游戏主流程图Main 函数调入 GameFrame 类:1.首先初始化游戏全局信息,调用 createSence 进行场景的初步构建,调用9基于 Ogre 图形渲染引擎的 3D 游戏开发setupGUI 初始化 GUI。2.然后游戏进入主循环,然后判断是否有关卡可以执行,如果有销毁当前关卡,清空场景,判断是否有下一个关卡,如果有进行第 3 步,如果没有进入第 6 步。3.构建相应关卡,初始化关卡信息,关卡 GUI 等,构建关卡监听器,将关卡交由关卡监听器监听控制。4.进入关卡主循环,更新关卡,判断关卡是否结束。5.如果关卡过关条件达成,则回调 GameFram 的 Render 函数,回到第 2 步6.退出游戏。Render 函数调入 BaseMission 类(关卡的主流程):1.首先初始化关卡全局信息,包括基类的和子类的,调用 createSence 进行场景的初步构建,调用 setupGUI 初始化 GUI。2. 然后关卡构造关卡监听器,将关卡交由监听器控制,调用 GameMove 函数的第一步。3.执行 GameMove 函数,更新关卡状态,判断是否关卡结束,如果结束进入第 7 步,如果没有继续执行。4.进入关卡监听器的循环函数。5.调用动画更新函数,更新关卡中的动画。6.调用关卡的 Update 函数,更新关卡,判断关卡是否有新的进展。如果有进行第 3 步,如果没有进入第 4 步。7.销毁当前场景,取消监听器。8.退出关卡,回调 GameFrame 的 Render。10第三章 游戏详细设计第三章 游戏详细设计游戏详细设计图,包括了游戏中的主要的类和设计,显示了游戏的详细框架:图 3-1:游戏详细设计图整个程序分六大部分:AI 部分,Tool 部分,StaticThing 部分,Role 部分, Mission 部分,SoundVedio 部分。AI:由 State 类,StateMachine 类,GameBaseEntity 类,EntityManager 类, MessageDispatcher 类以及各个不同 Role 的 State 类(如 LaDaState ,SpaceKnightState)组成。11基于 Ogre 图形渲染引擎的 3D 游戏开发Tool:由 Tool 基类,ToolFactory 工厂类以及各个不同 Tool 的子类组成。StaticThing:由 StaticThing 基类以及各个不同物品的子类组成如 Chest,Desk 等。Role:由 Role 基类,Model 基类,CollisionTestedObject 基类以及各个角色的子类(如 SpaceKnight,LaDa 等)组成,部分特殊角色(即可以控制的角色)还需要其对应的 Listeners,如 SpaceKnightListener。Mission:由 BaseMission 基类,FrameListener 基类,以及各个不同关卡的子类(如 FirstMission , SecondMission ) 和 其 对 应 子 类 的 监 听 器 组 成 ( 如FirstMissionListener,SecondMissionListener)。SoundVedio:由 BaseSound 和 DirectShow 组成。12第三章 游戏详细设计3.1 游戏关卡模块设计图 3-2:游戏关卡设计图关卡主要由关卡类和监听器类组成,关卡负责场景的构建和角色的显示,并且向关卡中的角色发送必要的消息,而监听器根据键盘的输入对关卡进行必要的控制监听器一般分为 GUI 监听器和事件监听器,事件监听器监听关卡事件,GUI监听器监听玩家操作 GUI 界面的事件。3.1.1 关卡分类关卡分为:标准关卡,Boss关卡,过渡关卡11。13基于 Ogre 图形渲染引擎的 3D 游戏开发标准关卡:即普通的关卡,玩家为了完成某一任务所要经历的事件,游戏中80%都是这种关卡,主要以解密,打怪为主,难度较小。这里 SecondMission,ThirdMission,ForthMission 就是这种关卡。Boss 关卡:为了增加游戏的趣味性,在进行了一定游戏过程后,需要面对一个 Boss , Boss 关卡就是让玩家与 Boss 对决的关卡,难度较高,这里FirstBossMission 就是这种关卡。过渡关卡:让玩家休整的关卡,可以在这里补给,接任务等,相当于游戏中的过渡7,TransitionMission就是这种关卡。MenuMission:这是主菜单,全局唯一,不属于严格意义上的关卡,但是与关卡有不少相似所以也继承自 BaseMission。FirstMission:这是一个动画关卡,玩家不用操作任何角色,是为了介绍剧情和推动剧情发展而建立的,是关卡的特殊形式。3.1.2 关卡监听器(Listener)关卡基类BaseMission声明的两个监听器:FrameListener* mFrameListenerGuiListener *mGuiListener它们分别用来监听关于 CEGUI 的消息和玩家控制角色的消息。FirstMissionListener *mMissionListener;另外每个关卡还会定义一个其自己的监听器,如 FirstMissionListener,用于监听属于当前关卡的信息,控制关卡的进度(通过调用 GameMove(int))。监听器使用时需要添加,用 mRoot 变量,不用时要进行销毁。3.1.3 关卡控制对象每个关卡都有其控制的对象,但大部分是相同的,如:1.关卡界面对象:这些对象负责显示游戏中的二维图像,并做以实时更新。这些图像由脚本定义其初始属性,由程序调用并可以进行动态修改,其中 OverlayElement 对象是Overlay 对象的子元素,每个 OverlayElement 必定在一个 Overlay 中,Overlay14第三章 游戏详细设计控制是否显示和什么时候显示,而 OverlayElement 则控制显示什么和怎么显示,如 photoOverlay 显示对白所配的人物头像,intruOverlay 显示游戏介绍的文字信息,backOverlay 显示游戏介绍的背景图片,pText1,pText2 显示游戏对白的第一行和第二行,pPhoto 显示人物头像,pLiittlMap 显示游戏地图等等。详细如下表:表 3-1:关卡界面控制对象表变量作用OverlayElement* pText1显示游戏对白的第一行。OverlayElement* pText2显示游戏对白的第二行。OverlayElement* pPhoto关卡中对白的人物头像。OverlayElement* pPic关卡介绍中的图片元素。OverlayElement* pCot关卡中的文字信息。OverlayElement* pSayword关卡中的实时更新信息OverlayElement* pLittleMap关卡中的小地图。OverlayElement* pAnimyStatus怪物的状态栏。OverlayElement* pAnimyDegree怪物的等级。OverlayElement* pAnimyHP怪物的血量数字。OverlayElement* pAnimyBlood怪物的血量图示。OverlayElement* pRoleBlood角色的血量图示。OverlayElement* pRoleMagic角色的魔法值。OverlayElement* pRoleExpierence角色的经验值。Overl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毕节市村干部专项招聘乡镇事业单位考试真题2024
- 2024年深圳市盐田区教育局选聘义务教育阶段教师真题
- 2025-2030中国液体化工物流企业轻资产运营模式可行性报告
- 燕京啤酒全面预算管理
- 闸坝施工组织管理总结
- 销售助理工作述职报告
- 异议处理的培训课件
- 施工现场管理实例
- 小学传统文化培训
- 五项管理之睡眠管理
- 2025至2030中国废铅行业发展趋势分析与未来投资战略咨询研究报告
- 网点负责人考试题库考点
- 2025年呼和浩特天骄航空有限公司招聘笔试冲刺题(带答案解析)
- 结直肠癌导致急性肠梗阻外科治疗中国专家共识(2025版)课件
- 辅助改方时方向继电器电路识读穆中华60课件
- 东方航空民航招飞面试常见问题及答案
- 危险性较大的分部分项工程清单
- 英语第二册(五年制高职) 课件 Unit5 Social Rules
- 银行物业年终工作总结
- 2025年三方询价单合同模板
- ISO14001-2015环境管理体系风险和机遇识别评价分析及应对措施表(包含气候变化)
评论
0/150
提交评论