插件教程
Celestia 是一款不错的天文软件,也可以用来娱乐,但是我们想要制作自己的恒星,行星,其它天体,这就叫 Celestia 插件,那么我们如何制作插件呢?请看下面的介绍。
开始[]
- 找到Celestia的根目录,并且找到 extras 文件夹并进入。
- 创建一个文件夹,随便取名字。
- 在您刚才创建的文件夹里,创建一个记事本,随便取名字,然后在文件下面加上“.”,再加上您想做的插件类型。
插件类型有三种:
stc = 恒星、双星、聚星和黑洞等(全名:Star Catalog 译为"星表")
ssc = 行星、卫星、小行星、彗星、人造天体(全名:Solar System Catalog 译为"太阳系目录")
dsc = 星云、星系、星团等深空天体(全名:Deep Space Catalog 翻译"深空天体目录")
- 创建一个textures文件夹,在里面再添加"hires","lores","medres"这三个文件夹用于放置纹理。
- hires是高分辨率纹理,lores是低分辨率纹理,medres是中等分辨率纹理。
- 创建一个models文件夹,用于放置模型的。
- Celestia中可支持的模型文件:3ds、cmod和cms。
- 不支持max、obj、skp等文件。(3dmax、SketchUp的文件)
那么,本教程会引导您一步一步往下制作恒星、行星、深空天体。(stc / ssc / dsc)
制作插件时,建议使用 Notepad++ 或 Celestia Helper 编辑,这样会提高效率,也能写中文。
stc插件制作[]
stc的全称:Star Catalog,翻译:星表
- 注意:stc只能支持恒星,双星,聚星,黑洞!
- 打开您刚才在extras文件夹中创建的文件夹。例如“my star catalog”
在刚才的文件夹中,创建一个记事本,将扩展名改成".stc"。(如果没有成功,请到其它问题那里去看)
制作单星[]
"R136a1" # 名字自己定制,前面可加HIP编号,数字太大会变成TYC编号。
{
RA 84.676625 # 赤经,算法参考下面(以天球一圈为360度)
Dec -69.1008083 # 赤纬,算法参考下面(赤道为0度,北极为90,南极为-90)
Distance 163000 # 距离,单位是光年
#AbsMag -8.09 # 绝对星等,为距离恒星32.6光年(10秒差距,1秒差距=3.26光年)时的视星等,表示恒星的亮度,太阳为4.83,数值越小天体越亮
AppMag 12.23 # 视星等 (视星等和绝对星等只能二选一,距离远可能会不准确)
SpectralType "WN5" # 光谱类型,详细规则见下面(例如:B4Ia0,M2Ia,G0Ib,F5II,K0III,B8IV,M6V)
Texture "ostar.jpg" # 恒星贴图,此代码可省略,Celestia会自动从cfg里指定的贴图使用。
Radius 24360000 # 半径,单位千米,此代码可省略,Celestia会自动估算。
Mass 215 # 恒星质量,单位倍太阳质量,此代码可直接省略,无论为何值,在Celestia中也不会显示恒星的质量信息,也不会对恒星产生任何影响。
SemiAxes [ 1 0.95 1 ] # 恒星形状,[ 长 高 宽 ],可控制恒星的形状(这里是椭球体),若为正常的球体此代码可省略。
RotationPeriod 425 # 自转周期,单位是小时,此代码可省略,Celestia会自动根据光谱类型估算。
}
- 赤经的算法:例如 5h 38m 42.39s 就是 (5*3600+38*60+42.39)/3600*15=84.676625
- 赤纬的算法同上:例如 −69° 06′ 02.91″ 就是(-69*3600+6*60+2.91)/3600=-68.89919167
- 恒星光谱类型一般是由分类+数字+后缀组成
- 分类依照温度高低排序主要有O,B,A,F,G,K,M(口诀:Oh be a fine girl kiss me!),另外还有褐矮星的L,T,沃尔夫拉叶星分WN,WC,碳星有C,R,S,N,白矮星DA,DB,DQ,DZ,中子星为Q,黑洞为X 。Celestia 不能显示 WN5h 光谱,故此处填 WN5。
- 数字最小为0,最大为9,小数部分在Celestia会被直接抹去,即使输入A8.9V,也仍会显示A8V,数字越大,恒星温度越低。
- 后缀有I-a0代表特超巨星,I-a代表较亮的超巨星,I-b代表较暗的超巨星,II代表亮巨星,III代表巨星,IV代表次巨星,V代表主序星,VI代表次矮星。
赤经赤纬是表示恒星在天球上的位置,不可乱填写。 - 恒星光谱不可乱填写,不可不填写,但可以简写,只填写分类(如M,G,B)、分类+数字(K5,A1,C0)或分类+光谱(如FV,OII,GIV)恒星仍可生成。
- 绝对星等和视星等只能二选一,不能全部填写。
- 半径不能乱填。(超过极限就会无法运行插件)
- 1 太阳半径等于 696000 km。
简化恒星数据[]
- 恒星数据是可以简化的,是可以完整运行的。
"The Simple Star:Easy"
{
RA 32.4
Dec 27.6
Distance 124
SpectralType "B3V"
AppMag 1.7
}
- 没有半径,系统会按照信息估半径,但是一般都不准确。
- 这样的方法还可以减少代码编写的字节。
缺点:不可达到自己要求的效果。
增加HIP编号[]
- 恒星其实可以增加HIP编号。
- 如果是已有恒星的HIP编号,则将更新该恒星的数据。
在恒星、双星代码,名字前增加数字就可以出现HIP编号了。
例如:
135622 "Test Star"
{
RA 42
Dec -6
Distance 263
SpectralType "B2V"
AppMag 2.6
}
- 警告:HIP编号只能适用于恒星,多星,不能适用于行星,星系,其它天体
增加TYC编号[]
注意!TYC编号不能和HIP编号一起用!
规则:
TYC aaaa-bbbbb-c cbbbbbaaaa
第一行是TYC代码,第二行是在Celestia插件里的写法。(如果有空位请用0占位,例如:“TYC 1111-2222-1”的“2222”要变成“02222”)
例如大犬座CX:
1016916541 "CX CMa"
{
RA 110.50409919637
Dec -25.87663461876
Distance 4563.54
AbsMag -0.82
SpectralType "B5V"
Radius 2262000
RotationPeriod 25
}
双星[]
- 双星的代码比较复杂。
Barycenter "The Test Binary" # 恒星质心,名字随便填写。
{
RA 42 # 赤经,跟刚才恒星的赤经的编写规则一样。
Dec -6 # 赤纬,跟刚才恒星的赤纬的编写规则一样。
Distance 263 # 距离,单位是光年。
}
"The Test Star A"
{
OrbitBarycenter "The Test Binary" # 绕行的恒星系统质心名称。
SpectralType "F2V" # 恒星光谱。(详见制作单星那一行)
Texture "fstar.*" # 恒星贴图,删除会自动识别。
AbsMag 2.8 # 绝对星等。
#AppMag 2.8 视星等,只能二选一。
Radius 136522 # 半径,单位是千米(km)。
EllipticalOrbit # 轨道数据。
{
Period 0.04 # 环绕周期,单位是年。
SemiMajorAxis 0.01 # 轨道半径,天文单位(AU)。(1天文单位是地球到太阳的距离)
Eccentricity 0.0 # 轨道离心率,0为圆形,越靠近1越椭圆,这里是圆形。(是1就会变成射线)
Inclination 65.0 # 轨道倾角,调整轨道的角度。
AscendingNode 45.0 # 轨道进动
ArgOfPericenter 0 # 恒星相对位置,与另一颗伴星的差异必须是180度。
}
#Obliquity 65.0 # 配合轨道倾角,这样子恒星才会是正的转,这里不需要。
#EquatorAscendingNode 45.0 # 配合轨道进动,这样子恒星才会是正的转,这里不需要。
RotationPeriod 465 # 自转周期,单位是小时。
}
- 不止可以创建两颗恒星,可以无限创建。
- 恒星质心必须有!否则双星代码就会失效。
- OrbitBarycenter是可以填写恒星的。
更新恒星属性[]
- 下面的参数至少要填写一个
- 赤经
- 赤纬
- 距离
- 视星等
- 绝对星等(视星等和绝对星等只能二选一)
- 贴图
- 光谱类型
- 半径
- ……(要更改的属性)
39429 "Naos" # 只需要在前面加入想要更新的恒星之HIP编号就好,不想要HIP编号把前面的数字删掉。
{
RA 110.74302 # 需要赤经。
Dec -25.76755 # 需要赤纬。
Distance 13840.3989 # 需要距离。
AppMag 5.5 # 视星等。
Texture "M-early.jpg" # 贴图。
SpectralType "M4Ia0" # 光谱类型,不可以乱填写。
Radius 1449000000 # 半径,单位是千米。
}
ssc插件制作[]
ssc = Solar System Catalog,翻译“太阳系目录”
- 行星可能难度较大,请慢慢观看。
一般天体[]
"Planet" "The Test Star" # 行星的名字,环绕的恒星。
#"Moon" "The Test Star/Planet" #如果是卫星,就用卫星的名字,环绕的恒星/环绕的行星
{
Class "planet" # 天体的定义:planet行星,moon卫星,dwarfplanet矮行星,minormoon小卫星,asteroid小行星, comet彗星,spacecraft太空船,可以不填写,Celestia会自动判断这一项数据。(更多信息详见Class 参数词条内。)
Texture "planet.*" # 行星贴图,贴图依分辨率放进hires,medres,lores。关于贴图的制作请参考其它的页面。
NightTexture "planet-night.*" # 夜光贴图,比如城市的灯光、熔岩的光、极光、或其它。
BumpMap "planet-bump.*" # 凹凸贴图,凹凸效果不如Normal命令好,但易于制作。
BumpHeight 5.0 # 凹凸贴图深度,数值越大越深。
#NormalMap "planet-normal.*" # 法线贴图,让行星凹凸部分更加立体。(凹凸和法线贴图只能选一种使用)
SpecularTexture "planet-spec.*" # 反光贴图,有海洋或冰的行星需要
SpecularColor [ 0.35 0.5 0.55 ] # 反光颜色,红绿蓝,这里是浅蓝
SpecularPower 15.0 # 反光强度,反光强度越大越集中在同一个地方,反光强度越弱就越发散。
#Mesh "asteroid.cms" # 模型,后面不可缩写为.*
#OrbitColor [ 0 0 1 ] # 设置轨道颜色,这里不需要!
#Orientation [ -90 1 0 0 ] # 轴,X,Y,Z。有模型的时候才有必要添加此命令。
Radius 6500 # 行星半径,单位是千米。(Radius 和 SemiAxes 只能择一使用)
#SemiAxes [ 275 258 238 ] # 长高宽,单位千米,用于非球状的小天体或是被潮汐拉扯的卫星。
Oblateness 0.004 # 行星扁率,数值越大越扁(气态行星需要使用)
Color [ 0.7 0.7 1.0 ] # 行星颜色,红绿蓝,当距离行星很远到看起来像个星点时的颜色
#BlendTexture true # 让Color着色行星贴图(一般用不到)
#HazeColor [ 0.6 0.75 1 ] # 行星表面的雾,红绿蓝(只有在“OpenGL顶点格式/nVidia combiner”渲染通道里才会显示)
#HazeDensity 0.35 # 雾的浓度。
#Emissive true # 让天体全是亮的,没有阴影
#Clickable false # 让行星不可被点击选中
#Visible false # 让行星不可被看见
InfoURL "http://zh.celestia.wikia.com" # 链接,可以右键行星进入网页
EllipticalOrbit # 轨道数据。
{
#Epoch 2457000.5 # 历元,单位是儒略日,表示下列轨道参数的参考时刻(科幻插件一般用不到)
Period 0.655 # 轨道周期,单位是年。(如果是卫星,单位用天)
SemiMajorAxis 0.8 # 轨道半径,单位是天文单位。(1天文单位是地球到太阳的距离)(如果是卫星,单位用千米),和PericenterDistance二选一
#PericenterDistance 0.7 # 近日点距离,单位同SemiMajorAxis,二选一
Eccentricity 0.07 # 轨道偏心率(0为正圆,1为抛物线,1以上为双曲线,如奥陌陌,鲍里索夫彗星均为双曲线轨道,数值越大轨道越椭圆)
Inclination 6.2 # 轨道倾角
AscendingNode 180 # 升交点经度
ArgOfPericenter 100 # 近心点幅角
MeanAnomaly 265 # 平近点角
#MeanLongitude 265 # MeanAnomaly 和 MeanLongitude 只能择一使用
#LongOfPericenter 48 # ArgOfPericenter 和 LongOfPericenter 只能择一使用
}
Atmosphere # 大气层数据。
{
Height 300 # 大气层高度,单位是千米。
#Lower [ 0.7 0.6 0.3 ] # 低层大气颜色,红绿蓝(在OpenGL 2.0 渲染通道不显示,可以不使用)
#Upper [ 0.5 0.45 0.3 ] # 高层大气颜色,红绿蓝(在OpenGL 2.0 渲染通道不显示,可以不使用)
#Sky [ 0.3 0.2 0.2 ] # 天空颜色,红绿蓝(在OpenGL 2.0 渲染通道不显示,可以不使用)
#Sunset [ 1.0 0.6 0.2 ] # 落日天空颜色,红绿蓝(在OpenGL 2.0 渲染通道不显示,可以不使用)
CloudHeight 8 # 云层高度,单位是千米。
CloudSpeed 65 # 云层速度,单位是千米/小时。
CloudMap "planet-clouds.*" # 云层贴图。
CloudShadowDepth 1.0 # 云层阴影 (一般只有类地球行星需要用这个代码)
Mie 0.001 # 米氏散射。
MieAsymmetry -0.25 # 背光散射率,数值越低背光散射越亮。
Rayleigh [ 0.001 0.0025 0.006 ] # 瑞利大气散射,红绿蓝,这里是蓝色。
MieScaleHeight 15 # 米氏大气散射,程度。
#Absorption [ 0.0057 0.004 0.001 ] # 米氏大气层消光,红绿蓝,数值越高吸收的颜色越多,这里是吸收大量的红,绿,所以剩下蓝。(RGB怎么用详见“带有大气层的行星”)
}
Rings # 行星环数据。
{
Inner 8000 # 环内侧边缘的轨道半径
Outer 15000 # 环外侧边缘的轨道半径
Texture "planet-rings.*" # 环贴图
}
UniformRotation # 行星自转数据。(如果不写自转周期代码,将视为被潮汐锁定)
{
Period 22 # 自转周期,单位是小时。
Inclination 19 # 自转轴倾角.
}
PrecessingRotation # 进动自转,一般用不到
{
Period 22 # 进动周期
Inclination 19 # 倾角
}
Albedo 0.35 # 行星反照率,0为完全吸收,1为完全反射,会影响行星亮度和温度
}
- Celestia软件中,RGB不是PS里面的RGB,而是要经过一个换算,R、G、B分别除以255才能得到正确的数据。
- RGB的全称是“Red Green Blue”,翻译为“红绿蓝”。
问:为什么要除以255呢?
答:因为RGB(红绿蓝)的最高值在Celestia是1,而原来的RGB值的最高值是255,这就是除以255的原因。
- 没有必要的命令可以自己要求删除。
- 大气参数,轨道参数比较复杂,这里无法三言两语就说明清楚,还需要自己多多探索
- 轨道周期单位行星用年,卫星用天;轨道半径单位行星用天文单位,卫星用千米
彗星[]
"Hale-Bopp:C1995 O1 Hale-Bopp" "Sol"
{
Class "comet"
Mesh "asteroid.cms" # 模型
Texture "asteroid.jpg" # 纹理
Radius 13 # 半径
EllipticalOrbit
{
Period 2523.4 # 轨道周期,单位年
PericenterDistance 0.914142 # 近日点距离,单位AU,过远会导致彗尾无法显示
Eccentricity 0.995068 # 轨道离心率
Inclination 89.4300 # 轨道倾角
AscendingNode 282.4707
ArgOfPericenter 130.5887
MeanAnomaly -0.007
Epoch 2450520.5 # 历元,科幻插件一般不会用到
}
RotationPeriod 11.47 # 自转周期,单位小时
Albedo 0.1 # 几何反照率
}
位置[]
- 用来标记行星上的东西,比如城市、火山还有其它等等。
Location "Aban" "Sol/Mars" (位置名称)
{
LongLat [ 111 15.9 0 ] # 所在地点,经度,纬度,距离星球表面的距离。(按照维基百科上的经纬度填写就可以)
Size 4.20 # 大小,千米。
Importance 20.59 # 重要性。
Type "AA” # 地点类型。
}
地点类型[]
- 这里接着上面的位置代码,Type命令。
Type "AA” # 地点类型
"AA" = 陨石坑
"CH" = 混沌地形
"CM" = 裂缝
"CR" = 冕状物
"FO" = 凹槽
"LF" = 着陆点
"ME" = 海
"MO" = 山
"PL" = 盆地
"RE" = 区域
"RT" = 网状物
"RU" = 断崖
"TA" = 高地
"VA" = 峡谷
"XX" = 其它
- 可以不按照规定来填写,但是准确填写为了能准确被搜寻。
可切换纹理[]
- 此命令可以让行星、卫星、小行星、彗星可以拥有纹理切换。
- 写好之后,用鼠标右击行星,选择替代表面,就可以看到效果了。
AltSurface "limit of knowledge" "Sol/Mercury" # 名称,自己随便定制,绑定的天体。
{
Texture "mercurya.*" # 在您自己创建的textures文件夹里。
OverlayTexture "mercury-lok-mask.png" # 覆层遮罩。
}
更新行星属性[]
Modify "Io" "Sol/Jupiter" # 更新的物体,绑定的天体。(这个只能适用于行星)
{
SemiAxes [ 1830 1818.7 1815.3 ] # 物体的长、高、宽,单位千米。
CustomRotation "iau-io" # 自定义自转。
}
- 行星代码中,是stc、ssc、dsc等三个代码中最难的一个代码,如果制作失败了不要灰心!
dsc插件制作[]
dsc = Deep Space Catalog,翻译“深空天体目录”
星系[]
Galaxy "My Test Galaxy" # 名字自己定制
{
Type "Irr" # 星系类型,详见下方:
CustomTemplate "Milky Way.png" # 自定义星系模式,主目录在models里。(自己在Celestia的根目录下的“models”文件夹创建图片,或者在插件的目录下建立“models”文件夹)
RA 1.4 #(赤经,不需要×15)(详见恒星制作)
Dec 1.6 #(详见恒星制作)
Distance 56253 # 距离,单位是光年
Radius 5622 # 半径,单位是光年
AbsMag -17.2 # 绝对星等
#AppMag 6.2 # 视星等,一样是二选一,不能同时用。
Axis [ 0.4372 -0.7548 -0.4891 ] # 轴,X,Y,Z。(可以用编辑模式调整)
Angle 97.3 # 角度 (可以用编辑模式调整)
InfoURL "http://www.seds.org/messier/more/mw.html" # 资讯网址
}
- 注:不填写Type命令,会自动识别为Irr。
- 星系形状类型:
- Irr 不规则
- E0 ~ E6 (E0是圆形 E6是椭圆形)
- S0 透镜星系
- Sa Sb Sc 螺旋星系
- SBa SBb SBc 棒旋星系
- 注:不可自己乱填写星系类型
星云[]
Nebula "My Test Nebula" # 名字自己定制。
{
Mesh "my nebula.3ds" # 模型,在models文件夹中,可以放在 Celestia 根目录下的 models 文件夹,但是要打包成一个插件的话,就要在 dsc 插件所在的文件夹下新建一个 models 文件夹(新建好的可以略过这步),再把3ds放进去。
RA 3.5 # 赤经,(详见恒星制作)
Dec -6.3 # 赤纬,(详见恒星制作)
Distance 233 # 距离,单位光年。
Radius 145 # 半径,单位光年。
Axis [ 0.1 0.4 0.6 ] # 轴,X Y Z。(可以用编辑模式获取数据)
Angle 330 # 角度。(可以用编辑模式获取数据)
}
星团[]
有疏散星团,球状星团的分类。
疏散星团[]
OpenCluster "My Largest" # 名字自己定制。
{
RA 6.3 # 赤经,(详见恒星制作)
Dec -2 # 赤纬,(详见恒星制作)
Distance 37363 # 距离,单位是光年。
Radius 18.7 # 单位光年。
}
- 注:疏散星团创建成功没有效果。
球状星团[]
Globular "That Test" # 名字自己定制。
{
RA 6.3 # 赤经,(详见恒星制作)
Dec -2 # 赤纬,(详见恒星制作)
Distance 37363 # 距离,单位是光年。
Radius 184.4 # 半径,单位光年
CoreRadius 0.83 # 核半径,单位角分
KingConcentration 1.59 # 密集度
AbsMag -7.2 (同样可以使用恒星的绝对星等和视星等)
}
- dsc里的赤经就是等于stc的赤经除以15(若赤纬是正数则不用),赤纬则相同。
其它问题[]
A:扩展名改成了stc / ssc / dsc还是不能用怎么办?
- Q:这是扩展名没有显示,它本来就是记事本文档,例如“my beautiful star.stc.txt”
- 进入控制面板,再进入“文件夹选项”。
- 进入文件夹选项之后,再进入“查看”。
- 下面会有一个选项,“隐藏已知文件类型的扩展名”取消打钩,之后就可以看到扩展名了。(图下)
- 如有问题,请通知管理员修改。
A:自己制作的插件不运行怎么办?
- 检查一下代码是否填写错误。
- 是否误删了。
提示:文件名最后面的“.”的后面就是文件的扩展名。
小知识[]
在插件添加Clickable false命令就可以让天体不可点击。
贴图的文件扩展名可以缩写,例如.jpg变成.*,但模型扩展名则不可缩写。
如果在插件中填写"#"就可以让后面的内容失效,"#"命令用于注释。
有特殊光谱:D:白矮星 Q:中子星 X:黑洞
- 缺点:黑洞没有吸积盘,引力效果,并且默认纹理不是黑色,要自己手动调节。行星,恒星运动不考虑引力,中子星同样没有引力效果。(使用xyz或xyzv可以获得自定义轨道)
InfoURL对所有插件都能起效果。
在天体名字代码中间添加":"就可以让天体有多个名字可以被搜索。
有些命令删除是可以运行的。
UniformRotation删除了会判断为是潮汐锁定。
利用光传播距离功能可以推测此物体是多少光年距离。(原版测不出来)
剩下的技巧,心得还是得自己研究!欢迎吧友来提出建议哦!\(∩_∩)/
其它[]
想要学习更好的技术,请到Celestia吧,进入精品贴查看别人制作的插件,下载,可以修改数据来学习插件知识。
下方有Celestia吧的链接,点击即可进入Celestia吧。
您也可以自己修改词条,来修改错误的部分。(禁止破坏)
我未看懂[]
如果您没有看懂?或者失败了?联系管理员或者看其它教程。
其它教程在:相关教程词条内。
或者做个实践吧!以下实践可以更了解哦!
联系[]
如果有插件问题,请在下方留言。
或者以下求助:
- 在百度贴吧Celestia吧发帖求助。
- 下方留言(不推荐,可能会被忽视)