模拟城市中文网

 找回密码
 入住
搜索
查看: 4189|回复: 6

关于SCS中日照设置修改全攻略(更新文件下载)

[复制链接]
发表于 2009-10-22 20:09 | 显示全部楼层 |阅读模式
先上个效果~




前几天看到有人问如何修改时间保持一直黄昏,稍微研究了一下,不知道有人改过没,我自己测试了没问题,现跟大家分享~

首先,游戏里时间的运行是没法修改的,因为涉及到很多建筑的开关门时间等,时间停止了这世界就没法运行了。
接下来,关于保持一直黄昏的问题,关键在于修改太阳以及光照的位置。

一切一切还是XML的修改。

SCS里关于太阳的运行设置主要位于安装文件夹内的路径为X:Program FilesElectronic ArtsSimCity SocietiesDataXMLDb
里面的SunPosition.xml文件。xml文件用记事本打开就可以修改了,当然强烈推荐先保存一个副本。

接下来就是如何修改了,
(下面一段主要对于不熟悉xml文件结构的读者,如果你有编程基础并了解xml的话直接skip吧~)
(如果只想知道简单如何修改的话就跳到最后)



XML结构简单说明
xml结构简单点说就是一个层次一个层次的结构,用<object>括起来表示定义一个对象,之后用</object >表示这个对象的结束,其中object可以是你任意定义的东西,只要跟后面的 </object> 里的object对应就行了,就是说一个开始就得对应一个结束。在开始和结束之间的就是这个对象的内容,比如<cat>kitty</cat>
在< object >和</object >之间可以任意定义多几个对象,表示object之下的一层的对象,比如<animal><cat>kitty</cat></animal>
这个对象的属性可以定义在对象开始符号后面,比如<animal><cat sex="female">kitty</cat></animal>
好了,貌似说的很糊涂,其实用IE打开游戏里随便一个.xml文件就可以看到啥样子了,而且可以展开和收起来。想进一步了解xml文件的话可以上网搜索下xml文件的相关知识,功能很强的,现在很流行。


SCS里设置太阳位置的sunposition文件结构
sunposition文件结构大致如下:



如何修改
说明一下,CelestialBodies表示天体,这里面不用管,也不能改;set表示一组设置,理论上应该可以定义多组设置,但我搜索了整个xml数据库都没找到在哪里可以设置游戏里使用不同的set,所以暂时也不用管,不能改。

那么能改的就是type里面了,可以看到里面默认有两个type,一个的ID是Sun,一个是Moon,表示的是两个天体的运行设置。
接下来在Type下面一层就是一堆position了,每个position都有Time属性,还有Light和Body两个更低一层的设置。这里说明下各自的作用:

每个Position表示这个天体在Time这个时间点的位置,里面有Light和Body表示的是游戏里Light是一个发光点,表示光线从哪里照下来,而body表示的是太阳这个天体的贴图在场景里的位置,一般情况下light和body位置应该相同这样才能模拟光线从太阳或月亮照射出来,但有时候也会有特殊情况,比如黎明时,太阳还没出来,光线已经出来了。

light和body里面都各有两个属性:altitude和azimuth,altitude表示这个物体的高度,相对于地面最低点,azimuth表示的是这个物体所在位置是在场景里相对中心点北面偏东多少度。还可以看到在body里面有时可以看到有size属性,它表示的是这个天体贴图的放大倍数,1就是1倍,黎明和黄昏时由于光线折射我们会看到太阳比原来要大,这种情况便可以设置size来模拟。

(这里面细心纠结的话还有两个问题,就是相对中心点在哪,这个在constant里面设置基本不用管,另外就是只设置角度和高度却没设置多远距离,这个估计是贴到天空上面了,反正不会被你够着呵呵)

修改这些属性就可以修改太阳或者月亮的运行轨迹了,position是从0到23的,表示24小时,其他时间的位置电脑会自动生成,不用管。


扩展功能
那么这里面除了修改还能否添加什么东西呢?

一个是添加位置,
我们可以发现default情况下,sun的位置和月亮的位置都只是几个小时,没有设置position的时间段表示的是这时候没有太阳和阳光。
这时我们便可以通过添加不同的position来扩展太阳的运行轨迹,比如我设置了一个极圈里的极昼现象,太阳永远不落~呵呵,蛮cool的。

回答刚开始的问题:如果只是想永远黄昏的话,只需要将太阳里添加0到23的position,每个position里面的位置属性都设置成更17点的时候一样就行了。

另外一个是设置多几个天体,
理论上这个xml文件里面可以添加多几个Type,ID可以自己设置,比如我想添加火星,可以添加:
<Type ID="Mar">
...(这里面设置位置等信息)
</Type>
就可以了,但是游戏里并没有火星的贴图。这个功能是xml文件说明里说明了可以安全添加的,但我暂时找不到在哪里设置贴图。


还有一个功能就是原本的太阳及月亮的贴图都是可以自己换的,每个城市类型都有不同的样式贴图。
在X:Program FilesElectronic ArtsSimCity SocietiesDataXMLDbGameProfilesXXXX.xml里面。(xxxx表示里面各种不同城市类型的xml文件,想修改哪个类型的城市就修改哪个)有个suntexture和moontexture属性,这个贴图是可以设置的。在Art文件夹里有贴图的源文件。由于我电脑没装3DMax也懒的测试这方法行不行的通了。

最后是我修改的日月同辉太阳和月亮同时在天上的场景,游戏截图我发到城市展示里了。。。。http://www.simcity.cn/thread-68424-1-1.html


下面是更新添加了我修改的日照设置xml文件附件,貌似还有点不够真实,喜欢的可以试试看,覆盖原有的sunposition.xml就行了,记得保留源文件

[ 本帖最后由 SidneyChan 于 2009-12-28 15:49 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?入住

x

评分

参与人数 1威望 +5 模拟币 +100 收起 理由
tafen + 5 + 100 玩到修改程序佩服!

查看全部评分

发表于 2009-10-23 22:12 | 显示全部楼层
还没学到,玩还不会咧,`
回复 支持 反对

使用道具 举报

发表于 2009-10-23 23:40 | 显示全部楼层
看来你还不是一般的高手呢!佩服佩服!
回复 支持 反对

使用道具 举报

发表于 2009-10-24 00:31 | 显示全部楼层
照着改了一通,嘿嘿,太阳不会落山,但是方位和光线还是会变化,由于效果关了,看不了远景,截图难看我就不上图了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-25 00:44 | 显示全部楼层

回复 3# 的帖子

过奖了,只是这个游戏提供了很多可修改的方式~好像heyufit说的,这样diy会好玩很多呵呵~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-25 00:47 | 显示全部楼层

回复 4# 的帖子

哈哈,你里面light部分位置有没有改?就是那个azimuth参数?

我正在调试那个日月同辉的轨道,现在还有点问题就是0点时候太阳会逆着移动一点,调试完了我再放上来吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-28 15:51 | 显示全部楼层
更新文件下载,12月28日。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 入住

本版积分规则

小黑屋|手机版|模拟城市中文网

GMT+8, 2024-5-4 17:49 , Processed in 0.023549 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表