トップページ > .CELXスクリプトガイド > レンダリング

レンダリング


celestia:show


celestia:show(string:renderflag)
Celestiaでの様々なレンダリングをONにします。
renderflag: 表示をONにする対象
指定できる項目は以下の通りです。複数指定する事もできます。
orbits(軌道)
cloudmaps(雲)
constellations(星座線)
galaxies(銀河)
planets(惑星)
stars(恒星)
nightmaps(夜側の光)
eclipseshadows(食の影)
ringshadows(輪の影)
comettails(彗星の尾)
boundaries(星座境界線)
markers(マーカー)
automag(自動限界等級調整)
atmospheres(大気)
grid(天球座標)
smoothlines(線を滑らかに)
lightdelay(光速の遅れ)
partialtrajectories(部分的な軌道)
1.6.0 ecliptic(黄道)
1.6.0 equatorialgrid(赤道座標)
1.6.0 galacticgrid(銀河座標)
1.6.0 eclipticgrid(黄道座標)
1.6.0 horizontalgrid(地平座標)
例:
celestia:show("orbits", "boundaries", "grid", "cloudmaps")
-- 軌道、星座境界線、天球座標、雲を表示

celestia:hide


celestia:hide(string:renderflag)
Celestiaでの様々なレンダリングをOFFにします。
renderflag: 表示をOFFにする対象
指定できる項目はshowを参照してください。複数指定する事もできます。
例:
celestia:hide("orbits", "boundaries", "grid", "cloudmaps")
-- 軌道、星座境界線、天球座標、雲を隠す

celestia:getrenderflags


table celestia:getrenderflags()
Celestiaでのレンダリングの状態をテーブルとして取得します。
返されるキーはshowを参照してください。
例:
t = celestia:getrenderflags() -- 現在の状態を取得
celestia:show("orbits", "boundaries", "grid", "cloudmaps")
-- 軌道、星座境界線、天球座標、雲を表示
wait(3) -- 3秒待つ
celestia:hide("nightmaps", "comettails")
 -- 夜テクスチャ、彗星の尾を隠す
wait(3)
celestia:setrenderflags(t) -- 元の状態に戻す ※下記参照

celestia:setrenderflags


celestia:setrenderflags(table:renderflags)
テーブルよりCelestiaでのレンダリングの状態を設定します。
renderflags: 設定するテーブル
指定できるキーはshowを参照してください。
例:
t = {} -- テーブルの作成
t.nightmaps = false
t.comettails = true
celestia:setrenderflags(t)
例2:
celestia:setrenderflags{nightmaps = false, comettails = true}
-- 中括弧を使用してまとめて書けます

celestia:showlabel


celestia:showlabel(string:labelflag)
天体の名称をONにします。
labelflag: 表示をONにする対象
指定できる項目は以下の通りです。複数指定する事もできます。
planets(惑星)
moons(衛星)
spacecraft(人工天体)
asteroids(小惑星)
comets(彗星)
stars(恒星)
galaxies(銀河)
locations(地名)
constellations(星座)
1.5.0 i18nconstellations(星座ラテン名表示)
1.5.0 openclusters(散開星団)
1.5.0 nebulae(星雲)
1.6.0 dwarfplanets(順惑星)
1.6.0 minormoons(小衛星)
1.6.0 globulars(球状星団)
例:
celestia:showlabel("planets", "moons", "asteroids")
-- 惑星名、衛星名、小惑星名を表示

celestia:hidelabel


celestia:hidelabel(string:labelflag)
天体の名称をOFFにします。
labelflag: 表示をOFFにする対象
指定できる項目はshowlabelを参照してください。複数指定する事もできます。
例:
celestia:hidelabel("planets", "moons", "asteroids")
-- 惑星名、衛星名、小惑星名を隠す

celestia:getlabelflags


table celestia:getlabelflags()
天体名称表示の状態をテーブルとして取得します。
返されるキーはshowlabelを参照してください。
例:
t = celestia:getlabelflags() -- 現在の状態を取得
celestia:show("planets", "moons", "asteroids")
-- 惑星名、衛星名、小惑星名を表示
wait(3) -- 3秒待つ
celestia:hide("comets", "stars")
 -- 彗星名、恒星名を隠す
wait(3)
celestia:setlabelflags(t) -- 元の状態に戻す ※下記参照

celestia:setlabelflags


celestia:setlabelflags(table:labelflags)
テーブルより天体名称表示の状態を設定します。
labelflags: 設定するテーブル
指定できるキーはshowを参照してください。
例:
t = {} -- テーブルの作成
t.nightmaps = false
t.comettails = true
celestia:setlabelflags(t)
例2:
celestia:setlabelflags{nightmaps = false, comettails = true}
-- 中括弧を使用してまとめて書けます

celestia:getorbitflags


table celestia:getorbitflags()
軌道表示の状態をテーブルとして取得します。返されるキーは
例:
t = celestia:getorbitflags() -- 現在の状態を取得
celestia:show("planets", "moons", "asteroids")
-- 惑星名、衛星名、小惑星名を表示
wait(3) -- 3秒待つ
celestia:hide("comets", "stars")
 -- 彗星名、恒星名を隠す
wait(3)
celestia:setorbitflags(t) -- 元の状態に戻す ※下記参照

celestia:setorbitflags


celestia:setorbitflags(table:orbitflags)
テーブルより軌道表示の状態を設定します。
orbitflags: 設定するテーブル
指定できる項目は以下の通りです。setrenderflagssetlabelflagsとは異なりますので注意してください。また、大文字小文字を間違えても動きません。
指定する文字列対応する表示
Planet惑星
Moon衛星
Asteroid小惑星
Comet彗星
Spacecraft人工天体
Invisible不可視天体
Unknown不明
例:
t = {} -- テーブルの作成
t.Planet = false
t.Moon = true
celestia:setorbitflags(t)
例2:
celestia:setorbitflags{Planet = false, Moon = true}
-- 中括弧を使用してまとめて書けます

celestia:getambient


number celestia:getambient()
現在の周辺光の値を0〜1の間で取得します。
例:
a = celestia:getambient() -- 現在の状態を取得
a = math.floor(a * 100)  -- 100倍して小数点以下切捨
celestia:flash("Current ambient light: " .. a .. "%")

celestia:setambient


celestia:setambient(number:ambient)
周辺光の明るさを設定します。
ambient: 周辺光の明るさ。0〜1の間で指定。
例:
obs = celestia:getobserver() -- observerオブジェクトを設定
earth = celestia:find("Sol/Earth") -- 地球のobjectオブジェクトを設定
celestia:select(earth) -- 地球を設定
obs:gotodistance(earth, 106378.1, 3) -- 地球へ移動
wait(3)
for i = 0, 1, 0.05 do 
	celestia:setambient(i) -- 0.1秒毎に0.05ずつ増加
	wait(0.1)
end
wait(1)
for i = 1, 0, -0.05 do 
	celestia:setambient(i) -- 0.1秒毎に0.05ずつ減少
	wait(0.1)
end

celestia:getfaintestvisible


number celestia:getfaintestvisible()
現在の限界等級を取得します。
自動限界等級調整がONになっている場合は、視野45°での限界等級を取得します。
例:
a = celestia:getfaintestvisible() -- 現在の状態を取得
a = math.floor(a * 100)  -- 100倍して小数点以下切捨
celestia:flash("Current faintestvisible light: " .. a .. "%")

celestia:setfaintestvisible


celestia:setfaintestvisible(number:faintest)
限界等級を設定します。
自動限界等級調整がONになっている場合は、視野45°での限界等級が設定されます。
faintest: 限界等級。
例:
obs = celestia:getobserver() -- observerオブジェクトを設定
obj= celestia:find("Rigel Kentaurus") -- アルファケンタウリのobjectオブジェクトを設定
obs:goto(obj, 3) -- アルファケンタウリへ移動
wait(3)
obj = celestia:find("Gam Vir") -- おとめ座γのobjectオブジェクトを設定
celestia:select(obj) -- おとめ座γを選択
obs:center(obj, 3) -- おとめ座γを画面の中心に
wait(3)
a = celestia:getfaintestvisible() -- オリジナルの状態を取得
for i = 6, 10, 0.1 do  -- 6から10まで0.1ずつ増加
	celestia:setfaintestvisible(i) 
	celestia:flash("Current magnitude limit: " .. i)
	wait(0.1)
end
wait(1)
for i = 10, 6, -0.1 do  -- 10から6まで0.1ずつ減少
	celestia:setfaintestvisible(i) 
	celestia:flash("Current magnitude limit: " .. i)
	wait(0.1)
end
celestia:setfaintestvisible(a) -- 元に戻す

celestia:getminorbitsize


number celestia:getminorbitsize()
現在の最小軌道表示を取得します。単位は[ピクセル]。
例:
a = celestia:getminorbitsize() -- 現在の状態を取得
celestia:flash("Current minimum orbit size: " .. a .. " pixel")

celestia:setminorbitsize


celestia:setminorbitsize(number:orbitsize)
最小軌道表示を設定します。単位は[ピクセル]。
faintest: 最小軌道表示。
例:
celestia:showlabel("planets", "moons") -- 惑星・衛星の名称表示 ON
celestia:setorbitflags{Planet = true, Moon = true} -- 惑星・衛星の軌道表示 ON
celestia:show("orbits") -- 軌道表示 ON

obs = celestia:getobserver() -- observerオブジェクトを設定
earth= celestia:find("Sol/Earth") -- 地球のobjectオブジェクトを設定
obs:gotolonglat(earth, math.rad(0), math.rad(90), 106783.1, 3) -- 地球の北極上空10万kmへ移動
wait(3) -- 3秒待つ
jupiter = celestia:find("Sol/Jupiter") -- 木星のobjectオブジェクトを設定
celestia:select(jupiter) -- 木星を選択
obs:center(jupiter, 3) -- 木星を画面の中心に
wait(3)
a = celestia:getminorbitsize() -- オリジナルの状態を取得
for i = 0, 100, 5 do  -- 0から100まで5ずつ増加
	celestia:setminorbitsize(i)
	celestia:flash("Current magnitude limit: " .. i)
	wait(0.1)
end
wait(1)
for i = 100, 0, -5 do  -- 100から0まで5ずつ減少
	celestia:setminorbitsize(i)
	celestia:flash("Current magnitude limit: " .. i)
	wait(0.1)
end
celestia:setminorbitsize(a) -- 元に戻す

celestia:getstardistancelimit


number celestia:getstardistancelimit()
表示される恒星の限界距離を取得します。
例:
a = celestia:getstardistancelimit() -- 現在の状態を取得
a = math.floor(a * 100)  -- 100倍して小数点以下切捨
celestia:flash("Current stardistancelimit light: " .. a .. "%")

celestia:setstardistancelimit


celestia:setstardistancelimit(number:distance)
表示される恒星の限界距離を設定します。
distance: 限界距離。
例:
obs = celestia:getobserver() -- observerオブジェクトを設定
obj= celestia:find("Rigel Kentaurus") -- アルファケンタウリのobjectオブジェクトを設定
obs:goto(obj, 3) -- アルファケンタウリへ移動
wait(3)
obj = celestia:find("Gam Vir") -- おとめ座γのobjectオブジェクトを設定
celestia:select(obj) -- おとめ座γを選択
obs:center(obj, 3) -- おとめ座γを画面の中心に
wait(3)
a = celestia:getstardistancelimit() -- オリジナルの状態を取得
for i = 1000, 0, -10 do  -- 1000から 0まで10ずつ増加
	celestia:setstardistancelimit(i) 
	celestia:flash("Current star distance limit: " .. i)
	wait(0.1)
end
wait(1)
for i = 0, 1000, 10 do  -- 0から1000まで10ずつ増加
	celestia:setstardistancelimit(i)
	celestia:flash("Current star distance limit: " .. i)
	wait(0.1)
end
celestia:setstardistancelimit(a) -- 元に戻す

celestia:getminfeaturesize


number celestia:getminfeaturesize()
地名表示の表示量を取得します。
例:
a = celestia:getminfeaturesize() -- 現在の状態を取得
a = math.floor(a * 100)  -- 100倍して小数点以下切捨
celestia:flash("Current minfeaturesize light: " .. a .. "%")

celestia:setminfeaturesize


celestia:setminfeaturesize(number:size)
地名表示の表示量を設定します。
distance: 限界距離。
例:
celestia:showlabel("locations") -- 地名の名称表示 ON

obs = celestia:getobserver() -- observerオブジェクトを設定
earth= celestia:find("Sol/Earth") -- 地球のobjectオブジェクトを設定
celestia:select(earth)
obs:gotodistance(earth, 56783.1, 3) -- 地球から10万kmの距離へ移動

wait(3) -- 3秒待つ
a = celestia:getminfeaturesize() -- オリジナルの状態を取得
for i = 100, 5, -5 do  -- 100から0まで5ずつ減少
	celestia:setminfeaturesize(i) 
	celestia:flash("Current magnitude limit: " .. i)
	wait(0.1)
end
wait(1)
for i = 0, 100, 5 do  -- 0から100まで5ずつ増加
	celestia:setminfeaturesize(i) 
	celestia:flash("Current magnitude limit: " .. i)
	wait(0.1)
end
wait(1)
celestia:setminfeaturesize(a) -- 元に戻す

celestia:getstarstyle


string celestia:getstarstyle()
恒星表示を取得します。返される文字列はsetstarstyleを参照してください。
例:
-- 恒星表示が「点」になっていなければ警告を表示します。
if string.find(celestia:getstarstyle(), "point") == nil then
	celestia:flash("Stars are not rendered as a point.\n It may drop FPS.")
end

celestia:setstarstyle


celestia:setstarstyle(number:starstyle)
地名表示の表示量を設定します。
starstyle: 恒星表示方法。
指定できる文字列は以下の通りです。
指定する文字列対応する表示
fuzzyぼやけた点
point
disc等級に応じた円
例:
-- 恒星表示を「点」にします。
celestia:setstarstyle("point")
celestia:flash("Stars are rendered as a point.")

celestia:getscreendimension


x, y celestia:getscreendimension()
Celestia画面の幅と高さを取得します。
※ これらの値を設定するコマンドはありません。
例:
-- 0.1秒毎にCelestia画面の幅と高さを表示します。ESCキーで終了させてください。
-- 画面の大きさを調節するのに便利です。
-- なおメニューバーや枠線は含まれません。
while 1 do
	width, height = celestia:getscreendimension() 
	-- 変数を2つ指定します。初めが幅、次が高さとなります。
	celestia:flash("Width:" .. width .. " Height: " .. height, 5)
	wait(0.1)
end

celestia:getaltazimuthmode


boolean celestia:getaltazimuthmode()
1.5.0
高度角・方位角モードのON/OFFを取得します。
例:
--

celestia:setaltazimuthmode


celestia:setaltazimuthmode(boolean:enabled)
1.5.0
高度角・方位角モードのON/OFFを設定します。
enabled: 高度角・方位角モードの設定。
例:
--

celestia:getoverlayelements


table celestia:getoverlayelements()
1.5.0
Celestia画面上のオーバーレイ表示の状態を取得します。
例:
--

celestia:setoverlayelements


celestia:setoverlayelements(table:overlayelements)
1.5.0
Celestia画面上のオーバーレイ表示の状態を設定します。
table:overlayelements: 表示するテーブルの要素。Time(時間:右上)、Velocity(速度:左下)、Selection(選択天体:左上)、 Frame(追尾:右下)のいずれかです。
例:
-- 選択天体、速度のみ表示
celestia:setoverlayelements({Selection=true, Velocity=true, Time=false, Frame=false})
例:
-- 1秒ごとに表示する要素を切替
while(1) do
	-- 左上のみ表示
	celestia:setoverlayelements({Selection=true, Velocity=false, Time=false, Frame=false})
	wait(1)
	-- 左下のみ表示
	celestia:setoverlayelements({Selection=false, Velocity=true, Time=false, Frame=false})
	wait(1)
	-- 右上のみ表示
	celestia:setoverlayelements({Selection=false, Velocity=false, Time=true, Frame=false})
	wait(1)
	-- 右下のみ表示
	celestia:setoverlayelements({Selection=false, Velocity=false, Time=false, Frame=true})
	wait(1)
	-- すべて消去
	celestia:setoverlayelements({Selection=false, Velocity=false, Time=false, Frame=false})
	wait(1)
	-- すべて表示
	celestia:setoverlayelements({Selection=true, Velocity=true, Time=true, Frame=true})
	wait(1)
end

celestia:getgalaxylightgain


number celestia:getgalaxylightgain()
1.5.0
銀河の光度利得を取得します。
例:
--

celestia:setgalaxylightgain


celestia:setgalaxylightgain(number:lightgain)
1.5.0
銀河の光度利得を設定します。
lightgain: 銀河の光度利得。値は0から1の間となります。
例:
-- 銀河系をフェードイン・フェードアウト
celestia:show("galaxies") -- 銀河系を選択
-- 銀河系へ移動
obs = celestia:getobserver() -- 視点のobserverオブジェクトを取得
milkyway = celestia:find("Milky Way") -- 銀河系のobjectオブジェクトを取得
celestia:select(milkyway) -- 選択
obs:goto(milkyway, 3) -- 移動

-- ここより永久ループ
while 1 do
	-- 少しずつ明るくする
	for i = 0, 100 do
		celestia:setgalaxylightgain(i / 100)
		wait(0.01)
	end
	--少しずつ暗くする
	for i = 100, 0, -1 do
		celestia:setgalaxylightgain(i / 100)
		wait(0.01)
	end
end

celestia:gettextwidth


number celestia:gettextwidth(string:text)
1.5.0
文字列の幅のピクセル数を取得します。
celestia.cfgで定義されたTitleFontでの幅となります。
text: 幅を調べる文字列
例:
-- "Celestia"の文字列幅
w = celestia:gettextwidth("Celestia")
celestia:flash("The width of Celesia: " .. w)

celestia:setlabelcolor


celestia:setlabelcolor(string:label, number:red, number:green, number:blue)
1.5.0
天体名や座標軸の数値の色を設定します。
label: 設定する天体名や座標軸
設定できるパラメータは以下の通りです。
stars(恒星)
planets(惑星)
1.6.0 dwarfplanets(準惑星)
moons(衛星)
1.6.0 minormoons(小衛星)
asteroids(小惑星)
comets(彗星)
spacecraft(人工天体)
locations(地名)
galaxies(銀河)
nebulae(星雲)
openclusters(散開星団)
constellations(星座)
equatorialgrid(赤道座標)
1.6.0 planetographicgrid(?)
1.6.0 galacticgrid(銀河座標)
1.6.0 eclipticgrid(黄道座標)
1.6.0 horizontalgrid(地平座標)
red、green、blue: 設定するRGBカラーです。0から1の間で設定します。

例:
-- 恒星名を点滅させる
-- 注意: 目に良くありません
while 1 do
	celestia:setlabelcolor("stars", 1,0,0) -- 赤
	wait(0.01)
	celestia:setlabelcolor("stars", 1,1,0) -- 黄
	wait(0.01)
	celestia:setlabelcolor("stars", 0,1,0) -- 緑
	wait(0.01)
	celestia:setlabelcolor("stars", 0,1,1) -- シアン
	wait(0.01)
	celestia:setlabelcolor("stars", 0,0,1) -- 青
	wait(0.01)
	celestia:setlabelcolor("stars", 1,0,1) -- マゼンタ
	wait(0.01)
end

celestia:setlinecolor


celestia:setlinecolor(string:line, number:red, number:green, number:blue)
1.5.0
軌道や座標軸の線の色を設定します。
line: 設定する線
設定できるパラメータは以下の通りです。
starorbits(恒星軌道)
planetorbits(惑星軌道)
1.6.0 dwarfplanetorbits(準惑星軌道)
moonorbits(衛星軌道)
1.6.0 minormoonorbits(小衛星軌道)
asteroidorbits(小惑星軌道)
cometorbits(彗星軌道)
spacecraftorbits(人工天体軌道)
constellations(星座線)
boundaries(星座境界線)
equatorialgrid(赤道座標)
1.6.0 planetographicgrid(?)
1.6.0 planetequator(天の赤道)
1.6.0 galacticgrid(銀河座標)
1.6.0 eclipticgrid(黄道座標)
1.6.0 horizontalgrid(地平座標)
1.6.0 ecliptic(黄道)
red、green、blue: 設定するRGBカラーです。0から1の間で設定します。

例:
-- 星座線を点滅させる
-- 注意: 目に良くありません
while 1 do
	celestia:setlinecolor("contellations", 1,0,0) -- 赤
	wait(0.01)
	celestia:setlinecolor("contellations", 1,1,0) -- 黄
	wait(0.01)
	celestia:setlinecolor("contellations", 0,1,0) -- 緑
	wait(0.01)
	celestia:setlinecolor("contellations", 0,1,1) -- シアン
	wait(0.01)
	celestia:setlinecolor("contellations", 0,0,1) -- 青
	wait(0.01)
	celestia:setlinecolor("contellations", 1,0,1) -- マゼンタ
	wait(0.01)
end

celestia:getlabelcolor


number celestia:getlabelcolor(string:label)
1.6.0
天体名や座標軸の数値の色を取得します。
label: 色を取得する天体名または座標軸
パラメータはsetlabelcolorを参照してください。

例:
-- 恒星名を点滅させる

-- スクリプト終了時に色が元に戻るようにする
function celestia_cleanup_callback()
	celestia:setlabelcolor("stars", r, g, b)
end
r, g, b = celestia:getlabelcolor("stars") -- 色を取得
-- ここより点滅させる
while 1 do
	celestia:setlabelcolor("stars", r, g, b) -- 取得した色
	wait(0.1)
	celestia:setlabelcolor("stars", 0, 0, 0) -- 黒
	wait(0.1)
end

celestia:getlinecolor


number celestia:getlinecolor(string:label)
1.6.0
軌道や座標軸の線の色を取得します。
line: 色を取得する軌道または座標軸
パラメータはsetlinecolorを参照してください。

例:
-- 星座線を点滅させる

-- スクリプト終了時に色が元に戻るようにする
function celestia_cleanup_callback()
	celestia:setlinecolor("constellations", r, g, b)
end
r, g, b = celestia:getlinecolor("constellations") -- 色を取得
-- ここより点滅させる
while 1 do
	celestia:setlinecolor("constellations", r, g, b) -- 取得した色
	wait(0.1)
	celestia:setlinecolor("constellations", 0, 0, 0) -- 黒
	wait(0.1)
end

celestia:showconstellations


celestia:showconstellations(table:constellation_names)
1.6.0
星座線・星座名の表示を星座ごとに設定します。
なお、「/」キーや「=」キーで制御されるON/OFFとは別となっています。
constellation_names: 設定する星座名
例:
-- わし座、こと座、はくちょう座のみ表示
celestia:showconstellations({"Aquila", "Lyra", "Cygnus"})

celestia:hideconstellations


celestia:hideconstellations(table:constellation_names)
1.6.0
星座名の非表示を星座ごとに設定します。
なお、「/」キーや「=」キーで制御されるON/OFFとは別となっています。
constellation_names: 設定する星座名
例:
-- わし座、こと座、はくちょう座のみ非表示
celestia:hideconstellations({"Aquila", "Lyra", "Cygnus"})

celestia:setconstellationcolor


celestia:setconstellationcolor(number:red, number:green, number:blue, table:constellation_names)
1.6.0
星座線の色を星座ごとに設定します。
red、green、blue: 設定するRGBカラーです。0から1の間で設定します。
constellation_names: 設定する星座です。

例:
-- わし座、こと座、はくちょう座のみ白色
celestia:setconstellationcolor(1, 1, 1, {"Aquila", "Lyra", "Cygnus"})

celestia:gettexturesolution


number celestia:gettexturesolution()
1.6.0
テクスチャの解像度を取得します。
低解像度(lore)で0、中解像度(medres)で1、高解像度(hires)で2が返されます。
例:
-- 

celestia:settexturesolution


celestia:settexturesolution(number:resolution)
1.6.0
テクスチャの解像度を取得します。
resolution: 設定する解像度です。低解像度(lore)で0、中解像度(medres)で1、高解像度(hires)で2となります。
例:
-- 

celestia:windowbordervisible


boolean celestia:windowbordervisible()
1.6.0
画面を分割した時の境界線の表示・非表示の状態を取得します。
表示時でtrue、非表示時でfalseです。
例:
-- 

celestia:setwindowbordervisible


celestia:setwindowbordervisible(boolean:visible)
1.6.0
画面を分割した時の境界線の表示・非表示の状態を設定します。
visible: 境界線の表示・非表示。表示時でtrue、非表示時でfalseです。
例:
-- 

トップページ > .CELXスクリプトガイド > レンダリング