一、家园2修改侦察机

提取家园2单位的模型,以及在精确位置添加武器

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

dll家园?星际家园的登陆问题

作者:大猫

出处:家园官方论坛

本教程介绍如何将BIG文件解压,并提取家园2单位的模型,贴图,以及在精确位置添加武器.

所需软件: RND TOOLS, HODView1.2(或以上版本,现在最新是1.5),MAYA

以下例子假设家园2装在 c:\game\homeworld2, RND Tools已经安装,并按RND TOOLS的安装说明设好环境变量(见安装完后的readme.txt文件).

dll家园?星际家园的登陆问题

一. BIG文件解压:

1.将RND tools提供的Archive.exe(在..\tools\bin下) copy到 c:\game\homeworld\data下,

2.将c:\game\homeworld\release\下的msvcp70.dll msvcr70.dll copy到 c:\game\homeworld\data下

3.在命令行(DOS)中,执行:

cd c:\game\homeworld\data

archive-a Homeworld2.big-e c:\game\homeworld\data

二.提取家园2单位的模型,贴图:

家园2单位文件是hod文件,可以用HODView将单位的模型,贴图提取出来.

这里以希格拉的拦截机为例,它的HOD文件位于c:\game\homeworld\data\ship\hgn_interceptor下.

运行HodView,打开hgn_interceptor.hod,然后将左上角Extract Options下的选项全部勾选(Extract Objects,LoD to Extract....等等).再重新打开一次hgn_interceptor.hod.这样就可以把模型(obj文件)和贴图(dds文件)解到c:\game\homeworld\data\ship\hgn_interceptor目录下.在HodView右边Textures项下,可以看到各个贴图文件,勾选Save Current Texture,并选bmp格式.然后逐个选贴图,就可以把dds文件转为bmp文件.这时,你可以在

c:\game\homeworld\data\ship\hgn_interceptor目录下看到save好的文件.

三,导入MAYA:

1.建立你的MAYA工作项目目录.

注意,在MAYA里不要使用中文名,包括路径在内.

选File\Project\New,在Name下输入项目名,如HWmod,Location为路径.在Scenes里输入scenes,Imagaes里输入images,Source Images里输入Sourceimage.选Accept即可.

2.导入

选File\Import,导入刚才解出的obj文件(hgn_interceptor_Root_lod0.obj).

选Window\Outliner,在Outliner里选persp相机(附图 1),ctrl+a打开相机的属性编辑窗口

(Attribute Editor),将Far Clip Plane设为1000000.选close关闭Attribute Editor.

3.指定贴图.

将在第二步解出的bmp文件copy到你的项目目录下的sourceimage目录,

回到工作窗口,选择拦截机机身,留意一下outliner窗口(附图 2)和通道栏(附图 3),会显示相应的名字(group3).按a(快捷键).让场景里所有物体最大化显示.

选Window\Hypershade打开材质编辑窗口(Hypershader),在确保已选择group3的状态下,按附图中4所指示的按钮,就会显示group3的材质phong3(附图 5).用资源管理器(或acdsee)找到Hgn_Interceptor_LOD2_EXPORT[2].BMP,将它拖放到Hypershade窗口里phong3节点旁,这时会自动建立一个贴图节点(附图 6),用中键(没有中键的可用ctrl+左键)将拖到phong3上,这时会出现连接提示,选color(附图 7).

回到工作窗口,按6,就会以实体带贴图的模式显示.(按4,是以网线模式显示,按5是以实体模式显示).

4.确定新增hardpoint的精确位置.

选Create\Locator建立一个虚拟物体locator1,附图中8里的图标会别为移动,旋转,缩放,选移动.将locator1移动到你想增加武器的位置,这时,在通道栏(附图 9)处可以看到它的坐标. Translate为位置,Rotate为旋转.它与hardpoint的数值一一对应.如:

以下是希格拉的拦截机的Weapon_FrontGun hardpoint的结构:

Weapon_FrontGun_Position

Root

0.577608-0.606758 7.028312对应于maya里的Translate值

0.000000 0.000000 0.000000对应于maya里的Rotate值,但这里的单位为弧度,即是Rotate值除57.

1.000000 1.000000 1.000000

0.000000 0.000000 0.000000

-872349439

Weapon_FrontGun_Muzzle

Weapon_FrontGun_Position

0.000000 0.000000 0.000000

0.000000 0.000000 0.000000

1.000000 1.000000 1.000000

0.000000 0.000000 0.000000

-872349439

Weapon_FrontGun_Rest

Weapon_FrontGun_Position

0.000000 0.000000 4.803081

0.000000 0.000000 0.000000

1.000000 1.000000 1.000000

0.000000 0.000000 0.000000

-872349439

Weapon_FrontGun_Direction

Weapon_FrontGun_Position

0.000000 3.679605 0.091561

0.000000 0.000000 0.000000

1.000000 1.000000 1.000000

0.000000 0.000000 0.000000

-872349439

增加hardpoint,主要是确定translate,rotate的数值就行了,即hier文件中_Position处的数值,而Muzzle,Rest,Direction的数值不用修改,直接copy到新增hardpoint的_posttion下即可,如

Weapon_FrontGun2_Position

Root

0.5 2 7对应于maya里的Translate值

0.000000 0.000000 0.000000对应于maya里的Rotate值,但这里的单位为弧度,即是Rotate值除57.

1.000000 1.000000 1.000000

0.000000 0.000000 0.000000

-872349439

Weapon_FrontGun2_Muzzle

Weapon_FrontGun2_Position

0.000000 0.000000 0.000000

0.000000 0.000000 0.000000

1.000000 1.000000 1.000000

0.000000 0.000000 0.000000

-872349439

Weapon_FrontGun2_Rest

Weapon_FrontGun2_Position

0.000000 0.000000 4.803081

0.000000 0.000000 0.000000

1.000000 1.000000 1.000000

0.000000 0.000000 0.000000

-872349439

Weapon_FrontGun2_Direction

Weapon_FrontGun2_Position

0.000000 3.679605 0.091561

0.000000 0.000000 0.000000

1.000000 1.000000 1.000000

0.000000 0.000000 0.000000

-872349439

子系统建模

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

作者:大猫

出处:家园官方论坛

子系统速成教程

本教程简单介绍子系统制作的基本方法.

1.模型:

在MAYA3里,确保现在处于Modeling(建模)模块,见图中1.

选Create\PolygonPrimitives\Sphere建立一个球,名字是pSphere1. ctrl+a打开它的Attribute Editor(属性编辑器),选polySphere1项,将adius设为20, Subdivisions

Axis和 Subdivisions Height都设成8.然后沿Y轴(上)移动到20单位处.这时,球的坐标应该是(0,20,0)

2.材质

选windows\Hypershade打开Hypershade窗口,在RelicTools选HW shade(附图 2)创建一个HW材质,名字为hw2Shader.

3.贴图

这里使用原希格拉航母的Fighter模块的贴图,找到它的hod文件hgn_c_production_fighter.hod,并解出它的贴图(具体的方法请看我的相关教程).并将它save成bmp文件,其文件名应该是Hgn_C_Production_Fighter_EXPORT[1].BMP和Hgn_C_Production_Fighter_EXPORT[2].BMP

在photoshop里将刚才的bmp打开,新建一个和刚才的贴图文件同样大小的psd文件(这里应该是128x64象素),选Hgn_C_Production_Fighter_EXPORT[1].BMP,在layers窗口里,按住shift,然后用左键将图层拖到新建的文件里.这时它就会作为图层Layer2.在Layers窗口右键选Layer2,选Layer Properties,然后将Name改为$diffuse.

用同样的方法将Hgn_C_Production_Fighter_EXPORT[2].BMP作为新建文件的图层,其名字为:$glow.将多余的图层del掉,确保只有$diffuse和$glow图层,然后存盘,文件名为subsys_test.psd.

注意,如果你自己做贴图的话,它的长,宽应该是能被16整除的数(如128x64,512x512...),否则在导出时会出错甚至maya自动退出.

在maya3里,将subsys_test.psd连到材质hw2Shader的color节点.选hw2Shader材质,ctrl+a打开它的属性编辑器(Attribute Editor),找到 HW2 Shader Attributes项(附图 3),

按Shader Script Name后面的文件夹图标,然后打....\homeworld\data\shaders\ship.st.

4 Hardpoint.

在MAYA里,是用joint来作为Hardpoint的.

在附图1处,将当前模块(modeling)切换成Animation(快捷键是F2),选Skeleton\Joint Tool,然后在坐标原点(0,0,0)处按一下左键,然后按回车键创建一个joint.将它改名成Root(注意大小写).用同样的方法创建一个名为joint2的joint(位置应该是(0,41,0)),在后面会将它设成导航灯.

5导航灯

选joint2将它的名字改为以NavLight为前缀的名字,如NavLightT,在RelicTools里按一下导航灯图标(附图 4),然后按ctrl+a打开NavLightT的属性编辑器,找到 Extra Attributes,将 Red,Green,Blue分别设为0,255,0(纯绿色)将Frequency设成2(每秒闪2次)

6导出hod文件

将NavLightT和步骤1创建的球作为Root的子物体,见附图 5.确保场景中没有其它多余的物体,然后选File\Optimize Scene Size将没有使用的节点del掉.

最后选File\Export All后面的方形图标,打开 Export all的设置.

File Type选 hod.

Export Type选 Ship

TextureOptions选DXT5

OptimizationOptions选 Triangle Strip和 Merge

NormalMappingOptions选 None

然后输出成hgn_c_production_fighter.hod

7在Game里测试:

在家园2Game目录下,将刚才输出的hgn_c_production_fighter.hod放到你的mod的相应目录(...\date\subsystem\hgn_c_production_fighter),然后运行你的mod,在game里建造一个航母的战斗机建造模块后,将会看到你刚才自己创建的子系统.

关于mod的运行及所需文件,以前的贴子有说明,在此不再解释.同样,你也可以把它作为新增的子系统.

关于子系统参数的设置文件.subs可看RND Tools里的相关文档.

二、星际家园的登陆问题

您好!出现:0x????????指令引用的0x????????内存。该内存不能为"read"或"written"。答案【shijan8原创】★严禁复制★

【1】对电脑没有影响或【偶尔】出现,不用管它,【重启电脑】后可能会自动消失。

【2】盗版系统或Ghost版本系统,系统文件错误或丢失,也会出现该问题,及时安装官方发行的补丁,{检查电脑年、月、日是否正确}。建议:安装【正版】系统。

【3】检查驱动是否出现问题,重新安装驱动或及时更新驱动。

【4】病毒引起的:升级杀毒软件或下载专杀工具,清理恶意插件,对电脑全盘杀毒。

【5】硬件引起的:

(1)可能是内存条出现的小问题,关机断电,把内存条拆下清理干净重新安装。必要时更换内存条。

(2)有些硬件配置过低,尤其是运行大型游戏时,不能正常运行。必要时升级电脑显卡、内存条等硬件。(硬件上一般不会出现该问题)

【6】软件引起的:

(1)安装的软件与系统或其它软件发生冲突,盗版或带病毒的软件,请慎重下载软件,最好使用正版。【这里主要说的是检查开机启动项,把没必要启动的启动项禁止开机启动】

(2)如果你的电脑中安装了两款或两款以上的同类软件,比如:两款杀毒软件、两款优化系统软件等,请卸载一款,以免发生冲突,以保持电脑稳定性。

(3)有些系统补丁下载安装了错误补丁,可能与您当前的系统或其它软件发生冲突,也会出现该问题。卸载该补丁,找到适合您电脑补丁,重新下载重新安装。

(4)有些版本的游戏不支持双核或多核电脑,请更换其它版本试试。如果不行只有卸载该游戏,一定要卸载干净,否则还会出现该问题。

(5)当安装或打开运行播放器、游戏、QQ等第三方软件,出现该问题时。可能是您下载的软件存在着危险,系统本身为了保护系统不受影响,也会出现该内存不能为“read”或“wrtten”。一般的解决办法就是卸载该软件重新安装。如果不能解决,需要更换同类型其它版本的软件,或找到发生冲突的软件卸载它,问题才能解决。

可以试试下面的方法:看看能不能解决。

◆开始→运行→输入cmd→回车,在命令提示符下输入下面命令

for%1 in(%windir%\system32\*.dll) do regsvr32.exe/s%1回车。

完成后,在输入下面的

for%i in(%windir%\system32\*.ocx) do regsvr32.exe/s%i回车。

如果怕输入错误,可以复制这两条指令,然后在命令提示符后击鼠标右键,打“粘贴”,回车,耐心等待,直到屏幕滚动停止为止。(重启电脑)。

●在检查运行regedit进入注册表,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,应该只有一个正常的键值{AEB6717E-7E19-11d0-97EE-00C04FD91972},将其他的删除。【如果还有一个(默认)值不用管它,一般它为空。】必要时【还原】或重新安装系统。