OGRE实现纸娃娃系统

关于Ogre的主角模型,纹理加载 因为马上毕业了,加之自己在学习ogre,还在网上找到点天龙八部的资源,所以,就想毕业设计做个MMORPG的游戏,当然只是做个大概,我可没这种实力和时间做这种东西,主要还是学习ogre的目的了 好了,言归正传,我刚刚用我自己的土办法完成了天龙八部的主角模型的加载,网上有很多关于天 阅读详情

先站在巨人肩上看看纸娃娃。

首先是WOW

WOW中装备有分几种,

武器,护肩,头盔,盾牌,箭袋是挂接在关键骨骼上的

OGRE的话就是用Entity::attachObjectToBone() ,这个函数实现。

没什么难点。有个问题就是需要找到身体某个部分关键骨骼的名字,比如要挂接在肩部,就必须知道肩部关键骨骼的名字。

用WOW Model Viewer 导出的.Mesh并没有包含关键骨骼的信息(所有骨骼的名称都是按顺序排列的数字),要自己找。

这里有魔兽世界M2文件的定义

http://www.madx.dk/wowdev/wiki/index.php?title=M2/WotLK#Bones

根据这个写了个程序分析关键骨骼。整出一个关键骨骼名称列表。

下面是女血精灵的:

一个27个关键骨骼

骨骼含义 关键骨骼名称

ArmL 28
ArmR 29
ShoulderL 19
ShoulderR 22
SpineLow 2
Waist 3
Head 27
Jaw 41
IndexFingerR 72
MiddleFingerR 73
PinkyFingerR 75
RingFingerR 74
ThumbR 71
IndexFingerL 67
MiddleFingerL 68
PinkyFingerL 70
RingFingerL 69
ThumbL 66
$BTH 140
$CSR 154
$CSL 153
_Breath 139
_Name 86
_NameMount 89
$CHD 141
$CCH 133
Root 1

如果要把武器挂接到手上,代码如下

Ogre::TagPoint* tag = mEntity->attachObjectToBone("75", entity);

mEntity是人物模型实体,entity是武器模型实体,"75"是无名指的骨骼名称。

Ogre::TagPoint 继承自Ogre::Node,对tag进行操作就可以对挂接到物体进行位移,旋转。

WOW中其他装备都是用贴图实现。

如图,长筒靴对人物小腿的几何形状有影响。

每个人物模型针对长筒靴,手套这类装备都做了额外一些模型,当发现是长筒靴时,小腿的模型就会切换成长筒靴模型,然后对小腿进行贴图。

现在分析天龙八部和火炬之光,

天龙八部和火炬之光的avatar系统与WOW不同,毕竟用来OGRE,一些方法都是贴近OGRE。

天龙八部中武器也是挂接在关键骨骼上,而头盔,衣服则是做了额外的模型,然后与人物模型共享骨骼。

用OGRE::shareSkeletonInstanceWith()这个函数实现。

shareSkeletonInstanceWith并不会改变你模型的坐标,美工导出时模型坐标是什么,显示时坐标是什么。所以导出模型时就必须对装备的坐标进行调整,帽子就要调整到头部的高度。

这种方法有个缺点,如果人物从成人变成一个萝莉,装备的坐标就不相符了。

最后是RealXtend的Avatar系统。

针对上面所说的缺点,realXtend 中的 Avatar系统提供了一个比较好的解决方案。

Ogre::TagPoint* weaponTag = mEntity->attachObjectToBone("75", weaponEntity);

以上我们挂接武器的方法。

clothEntity->shareSkeletonInstanceWith(humanEntity);

以上是装备共享骨骼的方法。

由于Ogre::TagPoint继承自Node,而Ogre::SceneNode也继承自Node。

因此定义一个Node* 的列表

std::vector<Node*> attachmentNodes

sceneNode->attachObject(clothEntity)

attachmentNodes->push_back(sceneNode)

attachmentNodes->push_back(weaponTag)

以上步骤,将武器和装备都添加到attachmentNodes列表中。

通过对attachmentNodes操作即可对所有挂接到模型上的物体进行位移,旋转,或者缩放。

最终成果

Avatar系统完善以后再发布代码

天龙八部TLBB补丁Update目录说明 Interface\Schema\WoWLookSkin.scheme.xml 统计自定义图片位置。\Interface\YuanbaoShop\YuanbaoShop.lua 元宝商店修改。\Config\StrDictionary.txt 游戏款内文字和系统相关文字统计。\Config\Config.txt 端框文字统计。是一些效果文件,比如音乐效果页面效果等;是登陆账号的资料信息;是资料的临时信息文件;是电脑中的数据关联; 阅读详情

相关推荐

DirectX角色扮演游戏编程

带可执行exe文件,原书的全套源码,完整无缺损。放心下载。一共16个章节,包含GameCore游戏核心文件。

天龙八部技术分析报告

刘洋通过一段时间对天龙八部这款游戏进行分析研究,主要从客户端入手,从技术角度学习天龙八部游戏中各种实现机制。最终写成此文,献给搜狐游戏,以表敬意。本文主要分为三个部分,分别是1 天龙八部基本技术实现技术分析,2 天龙八部中使用的资源文件分析3 天龙八部中出现的问题及改进意见。本报告实属本人分析总结,其中必定会有很多错漏之处,望给予指正。一:天龙八部的基本实现技术:所用图形引擎: OgreOGRE(

痞子龙3D编程 7139

SimpleFOC STM32实战:基于F103与HAL库,剖析速度环与电流环的协同控制

本文详细介绍了基于STM32F103与HAL库的SimpleFOC实战应用,重点剖析速度闭环控制与电流环的协同工作原理。通过开发环境搭建、参数调试技巧及性能优化方案,帮助开发者高效实现无刷电机精准控制,适用于机器人、无人机等高精度应用场景。

weixin_29170327的博客 476

修改ETM,用Ogre实现《天龙八部》地形与部分场景详解(附源码)

本文主要讲的是《天龙八部》游戏的地形和一部分场景的具体实现,使用C++, Ogre1.6,我摸索了段时间,可能方法用的并不是最好的,但好歹实现了。文章可能讲得有点罗嗦,很多简单的东西都讲了。我是修改了ETM(Editable Terrain Manager)实现的地形,其实单单实现天龙八部的地形场景等的载入根本不需要使用ETM,直接用Ogre的顶点->索引->纹理就可以搞定地形,但我要...

weixin_30512043的博客 427

cmu15445 2023fall project4 详细过程(包括Bonus Tasks) Concurrency Control

CMU15-445 23fall project 4详解

LA的博客 1604

算法系列之十二:多边形区域填充算法--几种边标志填充算法

四、边界标志填充算法 在光栅显示平面上,多边形是封闭的,它是用某一边界色围成的一个闭合区域,填充是逐行进行的,即用扫描线逐行对多边形求交,在交点对之间填充。边界标志填充算法就是在逐行处理时,利用边界或边界颜色作为标志来进行填充的。准确地说,边界标志填充算法不是指某种具体的填充算法,而是一类利用扫描线连贯性思想的填充算法的总称。这类算法有很多种,本篇就介绍几种。 首先介绍一种以边为中心的边缘填充...

java开发指南博客 【转载】 1898

Ogre 天龙八部地形管理器(2) --- 地形和静态对象的加载

参考他人的文章<br />修改 ETM,用Ogre实现《天龙八部》地形与部分场景详解(附源码)<br />纹理的创建方法和该文一样, 只是我打不算用ETM管理器创建地形<br />自己创建一个mesh来管理地形, 包含顶点数据, 纹理数据<br />  1 void TLBBTerrain::createManualMesh()<br />  2 {<br />  3 <br />  4     MeshPtr mesh = MeshManager::getSingleton().createManual(

guanghua_2009的专栏 591

霍尔安装歪了也能用?揭秘无感FOC中的‘霍尔自学习’黑科技,实现信号线自适应

本文揭秘了无感FOC中的‘霍尔自学习’黑科技,即使霍尔安装歪了或信号线接错,电机仍能平稳运转。该技术通过算法创新解决了传统霍尔方案的安装公差、接线容错和校准成本问题,显著提升了电机控制的可靠性和效率。文章详细解析了自学习算法的实现架构、关键技术及工程实践中的优化方案,展示了其在工业应用中的卓越性能。

weixin_28309571的博客 463

Ogre集成Havok ragdoll

  贴一个星际2虫群之心的单位死亡动画演示~很给力哟,请自行翻墙   https://www.youtube.com/watch?v=RlM2K-rHi9k   毕业做毕设时用过PhysX的Wheel,它家的机车示例跟我后来考察的Havok家的相比,后者显然十分霸气和豪华,自此Havok给我留下了很好的印象.    前段时间在工作中使用了PhysX的Max插件做r...

183

Python+Vue计算机毕业设计风电场监控系统的设计与实现7bd6i(程序+LW+源码+部署)

Python3.7.7+Django+Mysql5.7+pip list+HBuilderX(Vscode也行)+Vue+Pychram社区版。2. 前端:vue+css+javascript+jQuery+easyUI+highcharts。2.IDE环境:Python和Python 社区版都可以。Django + Vue +Python+Mysql 等等组成,B/S模式等等。该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。1. 后端:Python、Vue、Django、Mysql。

华信计算机毕设源码程序 341

在Ubuntu22.04.2远程服务器上搭建OHIF+Orthanc

在Ubuntu远程服务器上不翻墙,但是本地windows需要科学上网开始之前,首先在终端输入export -p查看是否有代理端口如下如果有就关了,输入如下命令。

weixin_51116549的博客 1337

Ogre物理编辑器Physics Editor

Scythe is a modelling tool for physics engines. You can create objects, vehicles, ragdolls, structures... all from physical joints and bodies, and then test them, throw them arou...

weixin_34112900的博客 240

《湖科大教书匠计算机网络》学习笔记总目录+思维导图

本篇文章是对《湖科大教书匠计算机网络》所有知识点的笔记总结归档和计算机网络的思维导图

weixin_73077810的博客 8245

OgreODE

为ogre提供的ODE封装   许可证 LGPL 状态 持续 依赖项 Ogre 1.4+, Open Dynamics Engine 最新版本 SDK:12-Jan-2006 教程 Release Thread, ReadMe 支持 OgreODE 论坛 and ODE wiki百科     作者 Monster (原作者) 和 Tuan Kuran

痞子龙3D编程 3333

【CSP-S 提高组】考试大纲集合

【CSP-S提高组】考试大纲集合

weixin_42596089的博客 7255

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

吸血小易工作室-我的第四代3D引擎

今天我很高兴! 第一是我的师傅,就是刚进公司教我做3D引擎的师傅,他的娃娃生出来了,真为他感到高兴,现在先在这里祝贺他了. 第二就是前段时间看到一大牛做了Quantumas3D,着实让我羡慕不已.不管是谁做的确实厉害.因此我也不断激励自己开发引擎,因此这个版本才在上个版本上解决了很多实质性的问题. 因此我叫他四代3D引擎. 海平面加固,海面和地形全部经过优化,使用GPU渲染的四

dyqq12的专栏 2939

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

我,又回来了!

  看看最近一篇随笔的纪录,居然是2012年11月的一篇,很遗憾没有坚持下来,其实好多时候都想把自己在工作过程中遇到的问题和解决方法记录下来,使自己在以后做同样的事情的时候有个参考,当然如果能帮到其他的人是最好的。最近两年一直引擎开发和维护的工作,也多少有些心得吧。本篇文章不会具体讲某个东西算是一个概述吧,讲讲最近两年的感受,技术性的东西会在接下来的文章中展开讨论。   从毕业到工作已经三年了,...

weixin_30552635的博客 114

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Crazy Engine 3.0(又名盘古引擎)的技术特性

零、概述 “盘古引擎”是我2013.4-2015.12年间,在“远明山水网络科技有限公司”担任引擎部部门经理期间,带领9人团队研发的第三代大型3D游戏引擎。 这代引擎使用Ogre 3D作为框架,使用C++、D3D 9.0c、HLSL 3.0、OpenAL、PhysX3.2和MyGUI作为开发语言或者中间件。研发团队研究了大量国际上顶尖的论文,借鉴和吸收了大量的高端算法和设计模式,同时也借鉴了其它世界闻名的游戏引擎,如CryEngine 3和Frostbite。同时,我们也花费了大量时间,研究出了一些自己

Crazy Engine的博客 2470

Urho3D简介

注:这是根据网上一篇文章修改的,修正了一些术语表述,并改成了自己对这个引擎的理解。忘了出处,回头想起来了补上。向原作者致敬。之后有时间会将原文中的内容都替换掉。 Urho3D是一个轻量级、跨平台的渲染的c++开源游戏引擎中,在MIT许可协议下发布。极大地吸收了到OGRE(http://www.ogre3d.org)和Horde3D(http://www.horde3d.org)的特点。(

Crazy Engine的博客 1万+

从cocos看国内自研的游戏引擎

游戏引擎技术可谓重中之重,它是整个游戏产业的核心技术。中国的游戏引擎研发,一直就未停止过。从2003年,“网络游戏通用引擎研究及示范产品开发”、“智能化人机交互网络示范应用”等两个项目被正式纳入国家863计划开始,中国的游戏研发人员就一直在努力。近十年过去了,这些努力终于有了一些成果。虽然还不及国际一流游戏引擎,但也总算没有落后太多。 D回合制网游时代:一个大学生在网游产业走向上画了一个圈

L的博客 2372

从cocos看国内自研的游戏引擎(转自腾讯新闻)

游戏引擎技术可谓重中之重,它是整个游戏产业的核心技术。中国的游戏引擎研发,一直就未停止过。从2003年,“网络游戏通用引擎研究及示范产品开发”、“智能化人机交互网络示范应用”等两个项目被正式纳入国家863计划开始,中国的游戏研发人员就一直在努力。近十年过去了,这些努力终于有了一些成果。虽然还不及国际一流游戏引擎,但也总算没有落后太多。 转播此图到微博 新功能幻灯观看

wisdom605768292的专栏 2859

与国外有多少差距?浅谈国产游戏引擎进化论

原文地址: http://www.ali213.net/news/html/2012-8/51912.html 【游侠导读】游戏的引擎是游戏的心脏,玩家所体验到的剧情、关卡、美工、音乐、操作等内容都是由游戏的引擎直接控制的,那么游戏引擎究竟止于何处,而又是从那里开始呢?我们从国产游戏十几年的发展或许可以看出点端倪。   游戏的引擎是游戏的心脏,玩家所体验到的剧情、关卡、美

duhaomin的专栏 4814

Ogre天龙八部地形mesh部分的C++源码

Ogre的地形部分历来受人诟病,基本没什么用.听说将来的的Ogre1.7版本会重写地形.期待中...在没有合适的地形可用的情况下,自己手动生成mesh来当地形是一个不错的选择.由于很多人问我天龙八部地形方面的问题,我索性放出自己terrain类的源码.先前我的部分源码有一些问题,这次是最新版本的.其他场景的源码,等我找到工作后可陆续放出,我只是一个待就业的穷学生而已,请见谅

LuoyinanRoy的专栏 9837

VS2008下 天龙客户端编译

这两天在VS2008编译了一下天龙八部客户端,结果是万事不爽,各种纠结啊。还好得到了很多人耐心的帮助,不想让 各位也跟着受苦,特地把这两天的心得给贴出来。      至于在哪里找个源代码我就不说了,不过务必找齐全就是了。      首先要想顺利编译通过(只是编译通过哈),你得改几处地方。      1.将OgrePlatform.h中的 #define vsnprintf _vsn

熊小屁的专栏 2095

菜鸟学习OGRE和天龙八部

<br />看到了qq18052887写的“菜鸟学习OGRE和天龙八部”博客,觉得写得不错,特分享之。<br />(一)准备工作<br />VS2008 + OGRE1.6.2 + ETM 2.3.1的具体配置<br />(二)学习内容<br />菜鸟学习OGRE和天龙八部之一:OGRE+MFC+OIS<br />菜鸟学习OGRE和天龙八部之二: 天龙八部AXP数据格式搞定(2009.10.19) <br />菜鸟学习OGRE和天龙八部之三: GridInfo和HeightMap文件的数据格式(已更正)<b

Augmented Reality & Computer Graphics 2759
上一篇: 集控式太阳能中央热水 系统监测管理软件
下一篇: FLASH嵌入网页中,漂浮在页面上
农夫三拳
博客等级 码龄18年 31粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值