找回密码
 注册
X系列官方授权正版
搜索
查看: 2501|回复: 3

[原创] 【MOD制作补完】SOASE模型转换教程

[复制链接]
发表于 2015-5-5 13:58:05 | 显示全部楼层 |阅读模式
Soase确实是可好游戏,可惜由于引擎过于陈旧,不支持一些新的画面效果,而且内存占用似乎有限制,达到2G左右就很容易跳出,真心希望Stardock开发soase2代。
最近捣鼓softimage,算是把模型转换的问题大体搞清楚了,写个简单转换流程算是对这个月折腾结果的小结吧。

SOASE MOD模型的制作有两种方式。Stardock官方论坛推荐的MOD模型工具是SOFTIMAGE,将制作完成的模型导出为.XSI格式,然后利用官方MOD工具ConvertXSI可以快速的转换为.MESH格式。另一种方式是利用玩家制作的3DS脚本SOASE_Maxtool,流传的版本主要有1.1,2.0、Rebellion三个版本,操作教程吧里也有。
两种方式的差别:
1、3DS MAX操作简便,比较适合初学者制作模型,但是SOASE_Maxtool转换脚本存在太多问题:1.1版可以正常导入/导出,但只能转换单材质模型,比如你给飞船加上炮塔,分别使用贴图文件就无法转换为.mesh了。2.0版说明文件提到支持多材质模型了,却又无法正常工作。反叛版更改了模型点位(武器点、引擎点等)为骨骼加蒙皮绑定,但是导出依然无法工作,但是可以将SOASE的.mesh格式文件导入到3DS,无论哪个版本,导出过程都是非常的慢,一个12M的模型导出需要几个小时(E3-1230)
2、SOFTIMAGE和3DS MAX一样是AUTODESK旗下的软件,以前是免费软件,最新也是最后的版本是SOFTIMAGE 2015,以后将不再更新,需要资源的自行百度一下就有。
SOFTIMAGE操作远不如3DS便捷,AUTODESK明显对免费的软件不伤心。但是有SOASE官方MOD工具支持,导出模型的转换过程极其迅速,支持多材质模型的导出,设置武器、引擎、特效点位和方向也很方便,最新版本加上AutoDesk 的CrossWalk2013套件,可以支持SOFTIMAGE、3DS、MAYA3个软件之间的互相转换。
        所以最合适的流程就是用3DS完成模型和贴图UVW,导出为.3ds格式(.obj..max应该也可以),再打开SOFTIMAGE2015导入模型,设置好贴图和点位,导出为.XSI格式,最后用官方MOD工具ConvertXSI转换为游戏可用的MESH格式。
3DS的部分这里就不说了,也不太了解模型制作技术,主要说说完成的模型或其他游戏导出的模型如何转换为SOASE可以使用的格式。需要注意的是,导出的3ds或者其他格式务必要有模型贴图UVW,这样在SOFTIMAGE里贴图就不会错乱了。另外使用其他游戏的模型需要注意版权问题。
一、        SOFTIMAGE界面简介

与调整、转换相关的常用工具已在图中标出。Softimage XSI 2011中英文菜单对照手册
http://wenku.baidu.com/view/997ff966783e0912a2162a5d.html

一、导入模型


在file菜单中找到crosswalk->importFBX选择相应的文件类型和文件所在目录,然后打开,这里是.3ds,出现的对话框不用改,确定就好。船体模型导入后,同样方法再导入武器模型,此时导入的模型都是在坐标原点,会被挡住。
按“快捷键8”打开管理器。下面2个分别是船体和武器模型,点开+号,将shape重命名(F2)以便于识别,然后把武器和船体shape文件都拖到其中一个根目录下(这里选择“adr”),剩下的Fbx_Root都删掉,再把空的“武器名”目录删掉。


二、模型调整和贴图

2.1重新点击船体模型shape,发现在一系列转换后,右边模型比例变成2.54,全部改成1.再点击武器模型shape作同样修以改统一比例。分别选择飞船和武器shape在Transform里把模型中心点重置一下,作为后续的“旋转、移动”等操作的参考点。窗体右上方可更改显示模式,这里更改为Textured。


  

注意飞船模型的朝向是否正确,比如这里导入的无畏舰需要X轴旋转+90度才是正确的方向,然后继续用右边的位移、选择、比例调整工具将第一个武器挪到合适的武器位上。

2.2

左边工具栏更改为RENDER选择Materrials打开材质管理器,这里已经有几个转换时产生的材质文件,选择新建材质,然后把飞船的3个材质文件(.cl/.da/.nm)拖进来,如果需要多材质贴图,则先将第一组材质拖进来。然后将.cl材质的蓝点拖到右边链接phone,链接类型为漫反射(diffuse),.nm同样链接为ambient,.da是specular。
重命名材质(F2)便于识别。继续新建一组材质,同样方法把飞船的第二组材质放进去并链接,武器材质是同样方法处理。

材质链接完成后点击飞船模型,在材质管理器左上方切换到scene,下面显示出飞船模型各个部分的子shape,点击这些会在窗口中显示模型对应的元素,将飞船的第一组材质拖到shape0上,旋转窗口视角观察贴图是否正确,错误的话就继续将第二…X组贴图拖到shape上,下面的几个元素也是同样方法贴图,直到飞船全部贴图完成,武器的贴图同上。如果觉得高光贴图(.da)难看的红绿色影响观察, 可以先取消其链接,待最后检查时再重新恢复。最后检查一下飞车和武器是否都已经正确贴图,然后删掉没用的材质文件。

这样就完成了飞船和第一个武器的贴图,如果同样武器有多个,选择第一个武器然后Ctrl+v克隆一个实例,用位移、旋转工具把全部武器移动到正确的位置上。

检查完成的飞船及其武器模型是否都已调整、贴图正确。然后在管理器(快捷键8)中选择全部模型再Transform->Freeze Akk Transforms冻结,完成模型部分的工作。

  
3、mesh point 设置

SOASE中,武器、技能、推进器位置和发射方向等都是用一组坐标来表示的,各种点位的定义参考这个页面:
http://gamergate.ca/SoaSE/Meshpoints.html
我们可以在softimage中方便的对这些点位进行设置。

get->Primitive->Null,得到一个空点,这时可以在管理器中(8)看到,选择这个点,Ctrl+V再复制4个。
分别命名(F2)为Root,P001-Above,P001-Center,P001-Aura,P001-Exhaust。后面4个全部拖到Root里。
Convertxsi时,在root下的点位才会被转换,且前5个字符会被删除(即“P001-”)。然后点位非常小,不利于调整操作,需要做一些外观设置。选择并双击P001-Exhaust,把外观改为盒子、箭头、设置大小及颜色,然后用位移工具把P001-Exhaust移动到正确的引擎喷口位置。这时会发现,箭头是朝向飞船前方的,将Y轴旋转180度,方向就正确了。其他引擎喷口就Ctrl+V然后调整位置就可以了,注意!引擎点位最多只能10个,超过的在游戏中无法显示!


接下来继续设置武器点位,增加空点,重命名为P001-Weapon-0,拖到Root里。最好改一下颜色便于识别。然后把空点移动到正确的武器发射口,再旋转到正确的发射方向,注意!这里的方向,最好设置轴角度为+90,-90等,其他斜向角度似乎会有问题,在游戏中出现武器发射方向错误。我是把武器发射方向设置为朝正前、左、右、上、下,然后最后再手工编辑.mesh文件来实现斜向发射的(例如导弹)。
P001-Flair-Flair_是一些附加粒子效果,例如海盗飞船后面的海盗旗效果,闪烁的航行灯、机库隔离力场等,
官方文件限制为10种效果,不过关于这一定义,我觉得似乎有问题,因为遇到过只使用一种闪灯Particle效果,设置了30多个,在游戏中只有10多个显示出来,换了另外一个模型又可以。对于点位设置的限制,暂时还没搞清楚。
其他的技能发射点、机库发射点的设置就容易多了,完成后做最后检查,在材质管理器中重新连接.da贴图,在场景管理器(8)中检查点位都在Root里,复制的点位自动加了数字后缀,需要转换后手工修改。然后DeselectAll取消选择。File->Export->doXSI导出,默认设置不用改。

4、XSI转换Mesh
把导出的模型.XSI文件和ConvertXSI放在同个目录,例如C:\ConvertXSI
运行CMD打开命令行,cd C:\ConvertX切换到目录工作,然后convertxsi xxx.xsi xxx.mesh,转换很快就完成了,得到文本格式的模型xxx.mesh文件,可以直接用UE、notepad等编辑

打开这个文件检查材质是否正确,缺失的自行补上,然后检查下面的点,把Exhaustxx全部改为Exhaust
武器组做相应修改,Weapon-0对应第一个武器,Weapon-1是第2个,Ability-0对应第一个技能,依次类推。
P001-Flair-Flair_Blink1,2,3。。。等,全部改为所使用的Particle文件名,例如这里是“Flair_Blink”。如果点位的数量与NumPoints 计数不符,打开游戏时正常,但在使用相应的模型时(建造飞船,读档等)会跳出。BoundingRadius,模型的半径(星球的半径一般6000)。如果飞船大小需要调整,可以用soase_resizetool无损转换。 http:// pan.baidu.com /s/1kTkSwxL  密码: ejsf
保存,把.mesh文件复制到mod/mesh/,说使用的材质文件复制到mod/Textures/,粒子效果文件复制到/mod/Particle/,这样模型导出完成,后面就可以在飞船定义文件.ENTITY中使用这个模型。
最后再游戏中看看最终的效果是否满意。

转换文档参考http://gamergate.ca/SoaSE/Export.html#Convert_XSI
Forge Tools 3 MOD工具包资源:http://stardock.cachefly.net/ForgeTools3.rar
BIN格式与TXT格式互转:http://gamergate.ca/SoaSE/Convert_Data.html

更详细的资料参考官方MOD论坛 http://forums.sinsofasolarempire.com/376221/page/1/#2604565

SOASE官方提供的MOD相关限制说明
http://forums.sinsofasolarempire.com/363233/page/1/
enum { MaxNumWeaponBanks = 4 };
enum { MAX_NUM_MESHES = 400 };
enum { MAX_NUM_FILE_TEXTURES = 1000 };
enum { MAX_NUM_FILE_CUBE_TEXTURES = 10 };

enum { MAX_SOUNDDATA = 2000 };
enum { MAX_SOUNDIDS_PER_TYPE = 6 };

static const int MAXNUMALTERNATES = 4; //sound alternates

enum { MAX_NUM_ICONS = 2000 };

enum { MaxNumSegments = 20 };  //exhaust trails
enum { MaxNumTrails = 4 }; //exhaust trails

struct MaxNumLinearPathEffects{enum {Value = 1000};};
struct MaxNumBeamEffects{enum {Value = 1000};};
struct MaxNumAttachedWeaponFireEffects{enum {Value = 2000};};
struct MaxNumAttachedWeaponHitEffects{enum {Value = 2000};};
struct MaxNumAttachedWeaponCriticalEffects{enum {Value = 200};};
struct MaxNumAttachedPersistentDamageEffects{enum {Value = 200};};
struct MaxNumAttachedBuffEffects{enum {Value = 1000};};
struct MaxNumAttachedExhaustEffects{enum {Value = 1000};};
struct MaxNumAttachedExplosionEffects{enum {Value = 200};};
struct MaxNumShieldEffects{enum {Value = 1000};};
struct MaxNumMissileEffects{enum {Value = 1000};};
struct MaxNumTrailEffects{enum {Value = 250};};

enum { MAX_NUM_PARTICLES = 6000 };
enum { MAX_NUM_PARTICLE_SIMULATIONS = 2000 };
enum { MAX_NUM_EMITTERS_PER_SIMULATION = 10 };
enum { MAX_NUM_AFFECTORS_PER_SIMULATION = 15 };

enum { MAX_NUM_RESEARCH_TIERS = 8 };
enum { MAX_NUM_RESEARCH_TRACK_SIZE = 8 };
enum { MAX_NUM_BUFF_LEVELS = 3 };
enum { MAX_NUM_EXPERIENCE_LEVELS = 10 };

enum { CapitalShipMaxFlairEffectCount = 10 };限制附加特效不超过10种不同的粒子效果
enum { FrigateMaxFlairEffectCount = 10 };
enum { PlanetModuleOrbitMaxFlairEffectCount = 10 };
enum { StarBaseMaxFlairEffectCount = 25 };
enum { CannonShellMaxFlairEffectCount = 1 };
enum { StarMaxFlairEffectCount = 1 };
enum { PlanetMaxFlairEffectCount = 10 };
enum { SpaceMineMaxFlairEffectCount = 1 };

enum {MaxNumWeapons = 3};
enum {MaxWeaponPointCount = 20}; //per weapon per bank (so 3 * 4 * 20 = 240 total)

enum {MaxNumPersistentDamageEffectDefinitions = 6};

enum {MaxBuffEffectMeshPointsPerAttachPoint = 25};

enum {MaxStageCount = 10}; (Starbase Upgrades)
enum {MaxStageCount = 10}; (Planet Upgrades)

enum{MaxNumAbilities = 5};
enum{MaxBombEffectPointCount = 10};
enum{MaxNumBuffInstantActions = 5};
enum{MaxNumBuffPeriodicActions = 2};
enum{MaxMeshNames = 12};
enum{MaxNumSpecificDebris = 2};
enum{MaxNumPersistentDamageEffectsPerDef = 10};
enum{MaxNumSquadTypes = 4};
enum{MaxNumHangarPoints = 10};
enum{MaxSkyboxMeshNames = 10};
enum{MaxNumUpgrades = 9}; //starbase upgrades
enum{MaxSpawnShipsRandomEntityCount = 5};
enum{MaxNormalPlayerCount = 10};
enum{MaxAvailablePlayerColorCount = MaxNormalPlayerCount};
enum{MaxFleetSubjectLevels = 9};
enum{MaxPlanetAsteroidCount = 500};
enum{MaxTextures = 4}; //dust clouds
enum{MaxParticlesPerTexture = 200}; //dust clouds
enum{MaxNumFarStarPointGroups = 3};
enum{MaxNumFarStarPoints = 40};
enum{MaxNumHalos = 10};
enum{MaxNumPlanetElevatorConnections = 5};
enum{MaxNumClusters = 50}; //planet elevators
enum{MaxNumElevators = MaxNumClusters * NumElevatorsPerCluster};
enum{MaxNumStars = 50}; //background stars
enum{MaxNumStarTextures = 10}; //background stars
enum{MaxNumExhaustPoints = 10}; //exhaust trails  限制引擎点不超过10
enum{MaxNumEffects = 200}; //exhaust trails
enum{MaxNumUniqueTextures = 2}; //exhaust trails
enum{MaxSubExplosionCount = 12};

点位命名参考:
8) The different meshpoint types—including naming conventions— are as follows:
Note: Meshpoint names are case-sensitive.

a) Buff Points - common to all ships and modules in the game and must have no rotation value
P001-Above
P001-Center
P001-Aura

b) Weapon Points (directional)


P001-Weapon-0
P001-Weapon-1
P001-Weapon-2, etc.

c) Ability Points
P001-Ability-0
P001-Ability-1
P001-Ability-2, etc.

d) Exhaust Points (directional)
P001-Exhaust

e) Hangar Points (directional)
P001-Hangar

f) Bomb Points (directional)
P001-Bomb

g) Flair Points
P001-Flair-Flair_Blink
P001-Flair-Flair_Blink_Small
P001-Flair-Flair_Doubleblink
P001-Flair-Flair_Doubleblink_Small
P001-Flair-Flair_Bowtiespin
P001-Flair-Flair_Lighthouse

h) Other Particle Effect Points:
P001-(particlename)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

参与人数 1声望 +1 UCC +30 贡献 +1 收起 理由
roro + 1 + 30 + 1 优秀作品!支持~

查看全部评分

发表于 2015-5-5 17:21:13 | 显示全部楼层
我是第一名?
回复

使用道具 举报

发表于 2015-5-6 13:02:36 | 显示全部楼层
这种纯技术性帖子要支持!虽然我不会做
回复

使用道具 举报

发表于 2017-1-16 14:32:57 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|DeepTimes.NET 太空游戏站