AstroPlotorium ユーザーマニュアル

スクリプトコンソールは、手で使うのと同じ操作を動かす小さな JavaScript プログラムを実行します。天体へ行く、視野を決める、時計を変える、レイヤーを切り替える、メインビューを切り替える。七つのオブジェクトに対する決まったコマンドを呼びます。camera、sky、time、observer、display、core、console です。
左下のスクリプトボタン、または F12、Ctrl+J か Command+J、テキスト欄に入力していないときのバッククォートで開きます。Esc はコンソールを閉じます。ビューを変えてもエディタは開いたままで、エディタが覆わないよう空の領域が短くなります。
タブ
- Script。 編集して実行するプログラムです。
- Console。 一行ずつです。Enter で実行します。Up と Down は、このセッションで打った行をさかのぼります。
1 + 1のような値は2を出します。付けた名前は、Script タブからスクリプトを実行するか、アシスタントがスクリプトを実行するまで、次の行でも使えます。 - Output。 エラー、読み込みと実行の状態、
core.output、そしてスクリプトから実行したときのcore.help、core.search、sky.listLayers、core.listOptionsの一覧です。 - System Log。 操作がいま行ったことを、コピーできるスクリプトの行として書いたものです。レイヤー、等級の限界、時計、メインビューを変えると、対応するコマンドがここに書かれます。コンソールを閉じているあいだも一覧は伸びます。このタブの行をコピーするのが、名前を覚えるいちばん簡単な方法です。
Clear はタブごとに仕事が違います。Script では空のキャプションを消し、プログラムはそのままです。Console では記録を消します。Output ではメッセージを消します。System Log では履歴を消します。
ファイル
ファイルメニューは Script タブにあります。現在の名前(保存するまでは untitled)のあと、New Script、Load、Save、Save As があります。
スクリプトは、ユーザーフォルダの scripts にあります。ホームメニューの Open user folder がそのディレクトリを見せます。Load と Save As はそこから始まり、そのフォルダの .js ファイルを受け付けます。
Save は現在のファイルを書き込みます。まだ保存したことがなければ、名前を尋ねます。ファイルメニューの横の Refresh は、そのファイルをディスクから読み直します。New Script はエディタを空にします。未保存の編集があれば、保存、破棄、キャンセルを尋ねます。
空のエディタでコンソールを初めて開くと、tour.js を読み込みます。そのファイルがなければ作られ、あとからの更新では触られません。tour_*.js という名前のサンプルツアーは、アプリの更新で置き換わるので、編集を残したいときは別名にコピーしてください。
実行と停止
Run は Script タブを再生します。スクリプトがすでに動いているあいだは使えません。実行のたびにきれいに始まります。前の実行の名前と、Console タブの名前は消えます。
Play の横のチェックボックスは、その実行を Presentation で始めます。ツールバーは隠れ、キャプションは残ります。このセッションだけに効き、初期値はオフです。スクリーンショットを参照してください。
Stop は実行を取り消します。クリックを待っている一時停止も含みます。Presentation がオンでスクリプトが動いているあいだ、右下のキャンセルボタンがスクリプトを止め、Presentation を抜けます。
core.exit() は、すでに出したコマンドのあとでスクリプトを終えます。そのあとの行は飛ばされます。Stop は実行をすぐに切ります。
コマンドの動き方
呼び出しを続けて書きます。旋回、ズーム、ドラッグ、アニメーションする時刻のステップは、次の行が走る前に終わります。観客に待ってほしいとき以外、camera.lookAt と camera.setFov のあいだに一時停止は入れません。
camera.lookAt("Sirius");
camera.setFov(20);
core.wait(1500);
camera.lookAt("Mars");
一時停止は core.wait と core.waitForUser です。await という語は拒否されます。core.wait は最大 2 分です。
observer.getLocation() と core.getState() は、同じスクリプトのあとの行が変える前の、いまの絵を読みます。戻したいときは、先に値を保存します。
const home = observer.getLocation();
observer.setLocation("Portland");
camera.lookAt("Saturn");
observer.setLocation(home);
camera.lookAt や time.addTime を呼ぶループは、各ステップを順に再生します。それ以上のステップを並べるのを止めるには、ループの中で core.exit() を呼びます。
名前
camera.lookAt と core.search は、通称(Sun、Mars、Moon、Sirius)、カタログ番号(MB-499、HYG-32349、CON-Ori、DSO-M-31)、馴染みのあるラベル(M31、HIP 32349)を受け付けます。同じ名前の天体がいくつかあると、コマンドは失敗し、それらを列挙します。core.search("Portland") は、候補を Output に出します。プロンプトで打ったときは Console の記録に出します。
角度
ただの数は度です。文字列も渡せます。
- 赤経のような時には
"5h 34m 32s"。 - 度分秒には
"5d 23m 28s"または"5 deg 23m"。 - 視野には
"2d 3m"または"0h 30m"。
camera.lookAtRaDec は、すでに画面にある座標系で向けます。黄道または銀河座標では、二つの数はその枠の経度と緯度です。lookAtEquatorial、lookAtEcliptic、lookAtGalactic、lookAtHorizontal は名前のついた枠で向け、画面上の座標系はそのままです。水平座標の方位角は、北から時計回りです。
Camera
| 呼び出し | すること |
|---|---|
camera.lookAt("Saturn") |
その天体を選び、そちらへ向ける。旋回が終わるまで待つ。 |
camera.lookAt(lng, lat) |
現在の枠の経度と緯度へ向ける。二つの数、または角度の文字列。 |
camera.lookAtRaDec(ra, dec) |
現在の枠の二つの座標による、同じ種類の照準。 |
camera.lookAtEquatorial(lng, lat) |
赤道座標の赤経と赤緯。 |
camera.lookAtEcliptic(lng, lat) |
黄道の経度と緯度。 |
camera.lookAtGalactic(lng, lat) |
銀河座標の経度と緯度。 |
camera.lookAtHorizontal(az, alt) |
現在の場所と時刻での方位角と高度。 |
camera.setFov(2) |
視野。camera.zoom は同じ呼び出しです。ズームを待つ。 |
camera.rotate(angH, angV) |
ドラッグ分だけ回す。単位は度。正の angH は右へのドラッグに対応します。正の angV は下へのドラッグに対応します。ピッチは ±90° の中に留まります。 |
camera.followTarget(true) |
天球とプラネタリウムの Track。オンにすると対象へ向き、待ちます。オフにするとビューはその場所に残ります。その二つのビューの外では、フラグは保存され、カメラは留まります。 |
camera.followViewFrom(true) |
3D Universe で地球または太陽への Camera follows。省略できる第二引数は "Earth"、"Sun"、399、10。省略すると現在の天体を保ちます。オンにすると待ちます。3D Universe の外では、フラグは保存され、カメラは留まります。未知の天体は失敗します。 |
camera.setOrbitAltitudeKm(400) |
3D Orbit で、球体の上の高さ。キロメートル。許される範囲は 50 から 500000。 |
camera.setOrbitIssTrack(true) |
3D Orbit の簡易的な円の地上軌道(51.6°、約 93 分)。教えるための経路であり、ライブのステーション要素ではありません。 |
camera.setOrbitFly(true) |
3D Orbit で WASD の飛行のロックを外し、ホバーとステーション軌道を離れる。 |
Sky
sky.setLayer("constellationLines", true) はレイヤーを出します。sky.showLayer(id) と sky.hideLayer(id) は、表示を埋めた同じものです。照合は大文字小文字、空白、ハイフン、アンダースコアを無視します。未知の id は失敗します。sky.listLayers() は名前を出します。
| Id | レイヤー |
|---|---|
stars |
恒星カタログ |
milkyWay、milkyWayDots |
写真の帯と、点描 |
starNames、bayer、hip、flamsteed |
恒星のラベル |
messier、caldwell、majorDso、minorDso、dsoImages |
深宇宙のラベルと画像 |
skyCulture |
星座とアステリズムの絵の親スイッチ |
constellationLines、constellationBoundaries、constellationNames、constellationImages |
星座の絵 |
asterismLines、asterismNames |
アステリズムの絵 |
equatorialGrid、eclipticGrid、galacticGrid、azimuthalGrid |
グリッド |
eclipticLine、gridRulers |
黄道の道筋と、縁の目盛り |
atmosphere、land、horizonBand |
空の輝き、床、地平線のシルエット |
landSeeThrough、landByTime |
地面の透明度 |
planetOrbits、dwarfPlanetOrbits、satelliteOrbits、asteroidOrbits、cometOrbits |
軌道の経路 |
cometFx、planetNames、orbitLines、planetGrid |
彗星の尾、名前、軌道線、惑星グリッド |
magneticField、vanAllenBelt、bowShock、magnetopause |
その天体にそれがあるときの場の図 |
compareStars、comparePlanets |
大きさの比較 |
allLabels |
ラベルの親スイッチ |
sky.setCoordinateSystem は equatorial、ecliptic、galactic、horizontal を取ります。
星座とアステリズムの目は、それらのレイヤーとは別です。sky.setConstellationVisible("Ori", false) はオリオンのフラグを隠します。IAU の id、CON-Ori、名前を渡せます。sky.showConstellation と sky.hideConstellation はフラグをオンまたはオフにします。呼び出しは星座を選択せず、カメラを向けず、線と名前のレイヤーも切り替えません。絵が出ていなければ、自分で skyCulture と constellationLines をオンにしてください。sky.setConstellationPreset は all、none、zodiac を取ります。sky.listConstellations() は id、名前、フラグを出します。
アステリズムは sky.setAsterismVisible、showAsterism、hideAsterism、sky.listAsterisms() を使います。id はカタログ id、AST- にその id を足したもの、または名前です。sky.setAsterismPreset は all または none を取ります。
Time
単位は大文字小文字を区別します。Y 年、M 月、D 日、h 時、m 分、s 秒。
| 呼び出し | すること |
|---|---|
time.setTime("2026-08-22T12:00:00Z") |
その UTC の瞬間へ飛ぶ。JavaScript の Date も受け付けます。飛びは瞬間です。 |
time.addTime("h", 1) |
現在のシミュレーション時刻から進める。値は整数で、負でも構いません。ステップはアニメーションし、スクリプトは待ちます。 |
time.addTime("D", 1, 0) |
第三引数はアニメーションの長さで、ミリ秒です。0 は飛びます。省略すると短い滑りです。最長の滑りは 30 秒です。日や年は、time.addTime("D", 1, 20000) のように長い滑りの方が読みやすくなります。 |
time.autoUpdateUnit("D") |
Play と +1 / +10 ボタンが使う単位。 |
time.play() |
現在のシミュレーションの瞬間から、その単位で早送り。time.play(false) と time.stop() は一時停止します。壁時計へは飛びません。 |
time.resume() |
いまに合わせ、単位を秒にし、実時間で流す。 |
time.reset() |
いまに合わせる。すでに再生中の時計は再生を続けます。 |
time.increment() |
現在の単位の +1 に合わせる。decrement、increment10、decrement10 もあります。 |
時刻を参照してください。
場所とメインビュー
observer.setLocation("Portland") は都市を探します。同じ名前の都市がいくつかあると、コマンドは失敗し、国と地域を列挙するので、選び直せます。緯度と経度を二つの数として、または一つの座標文字列として渡すこともできます。一つの数は都市 id として扱われます。
observer.getLocation() は、現在の場所の id を文字列で返します。座標だけで設定したセッションは "" を返します。場所を戻したいときは、変える前に変数へ読んでください。ユーザーが保存した場所は、u- で始まる id を使います。
observer.setLookFrom("Moon") は Look from target に対応します。省略できる緯度、経度、メートルの高度があります。省略すると、その天体上の現在の観測地を保ちます。それらを省略して地球に戻ると、最後の地球の場所が復元されます。明示した緯度と経度は常に優先します。
observer.setViewMode は Main View メニューに対応します。
3D Universe、3D Orbit、2D Celestial Sphere、2D Planetarium、2D Solar System、2D Planisphere、Simulation、Ephemeris。
suncentric と earthcentric は、そのモードで 2D の太陽系の図を開きます。Console はこのエディタを開き、絵はそのままです。場面の変更はカメラを待ちます。
observer.getLookFrom() は、天体、名前、緯度、経度、高度を返します。
空の上の文字
キャプションとタイトルは、Presentation を含むすべてのビューで空の上にあります。スクリプトのその行が走ると現れます。
| 呼び出し | すること |
|---|---|
display.caption("Now Mars") |
下のキャプションを置き換える。文字なしで呼ぶと、キャプションだけを消します。 |
display.print("line") |
キャプションの下に行を足す。 |
display.clear() |
キャプションを消す。タイトルは残ります。 |
display.title("Tour") |
右上のタイトルを置き換える。空、または引数なしは、隠します。 |
display.showNavigator(true) |
左のナビゲータ。Presentation がオンのあいだ、出しても何もしません。 |
display.showPropertyList(true) |
右のプロパティパネル。 |
display.showCharts(true) |
副画面、極座標チャート、星座早見をまとめて。 |
display.setView("presentation") |
現在の絵の枠。default、photoreal(V キー)、presentation(P キー)。メインビューの変更ではありません。太陽系の図と星座早見では、photoreal は Presentation です。 |
display.setSecondaryViewFov(20) |
副画面の視野。サイドチャートがオフならオンにします。 |
display.setSecondaryViewSync(true) |
メインビューをパンすると、副画面とチャートの中心もパンします。副画面の視野は独自のままです。 |
console.log("hello") は常に Console タブへ行きます。core.output("hello") は常に Output へ行きます。
オプション、スナップショット、画像
core.setOption("starMagnitude", 6) はスライダーかメニューの選択を設定します。レイヤーは切り替えません。core.listOptions() は id と許される値を出します。照合は大文字小文字、空白、ハイフン、アンダースコアを無視します。
| Id | 値 |
|---|---|
starMagnitude |
1–12 |
starLabelMagnitude |
1–7 |
planetScale、satelliteScale |
1、2、5、10、20、50、100、200、1000、2000、3000 |
bortleScale |
0–9。0 がいちばん暗い |
starBrightness |
およそ 0.6–1.8 |
skyToneDensity、skyToneBrightness |
およそ 0.25–3 |
cometBrightness |
およそ 0.5–32 |
gridLineBrightness、constellationLineBrightness |
0–2 |
constellationImageBrightness |
0–3 |
lineBrightness |
0–2。グリッドと星座線の明るさを両方設定する |
autoRotate、clickSelectObject |
true または false |
theme |
default、red、white、antiquewhite、blueprint、gold、blackwhite、navywhite、blackgreen、blackblue |
planetImageModulate、view3DModulate |
true または false |
locale |
system、en、ja |
frameFocalLength |
24、35、50、70、100、150、200、240、300、600、1000、1500、2000、2400、2800 |
floorChoice |
savanna、ocean、none |
horizonChoice |
mountains、none |
landscapePreset |
land、ocean、none |
core.getState() は現在のビューを返します。視野、照準、対象、時刻、レイヤー、星座とアステリズムのフラグ、オプション、メインビュー、場所、表示のスイッチです。Console のプロンプトでは、オブジェクトはテキストとして出ます。スクリプトからは、Output タブに欲しいとき core.output へ渡します。
core.output(JSON.stringify(core.getState()));
core.setState(obj) は、含めたキーを戻します。fov を 20 にしただけのスナップショットは視野を変え、ほかはそのままです。Back / Forward へ一歩は押しません。
core.screenshot() は、ユーザーフォルダの screenshots に PNG を保存します。結果は、このコンピュータ上のパスを伝えます。
| 種類 | 画像 |
|---|---|
default |
ラベルとグリッド。サイドチャートは含みません。省略したときの種類です。 |
photoview |
ラベルとグリッドを隠す。 |
presentation |
タイトル、時計、スクリプトのタイトル、キャプション。 |
presentation_chart |
それに、オンのときのサイドチャートを足す。 |
ファイル名を一つ受け付けます。core.screenshot("tour.png")。
core.help() はコマンド一覧を出します。core.search("Vega") は名前の一致を出します。
短いツアー
display.title("Saturn, two views");
observer.setViewMode("2D Planetarium");
camera.lookAt("Saturn");
camera.setFov(2);
display.caption("Saturn, two degrees across the field.");
core.waitForUser("Next");
observer.setViewMode("3D Universe");
camera.lookAt("Saturn");
display.caption("The same planet, in the scaled system.");
core.waitForUser("Next");
display.clear();
display.title();
ツールバーを隠したいときは、Presentation のチェックボックスを付けて実行します。Next は、クリックするまでビューの下にあります。ラベルを省略しても、ボタンは Next と出ます。
サンプルツアー
ファイルメニューからこれらを読み込みます。
| ファイル | ビュー | 見せるもの |
|---|---|---|
tour_inner_planets.js |
3D Universe | 太陽、水星、金星、地球、月、火星 |
tour_jupiter_moons.js |
3D Universe | 木星、ガリレオ衛星、それから 8 日の早回し |
tour_portland_sunset.js |
2D Planetarium | ポートランドの日没、それからベガ |
tour_polaris.js |
2D Planetarium | 北極星の周りを回る空 |
tour_celestial_coords.js |
2D Celestial Sphere | 赤道と天の北極、黄道、銀河中心 |
tour_orion.js |
2D Celestial Sphere | オリオン、ベテルギウス、リゲル、M42、シリウス、M45 |
tour_eclipse_2026.js |
3D Universe、それから 2D Planetarium | 2026 年 8 月 12 日の皆既日食、それからバレンシアからの皆既。Next を待ちます。 |
書けること
言語はふつうの JavaScript です。let と const、関数、ループ、Math、Date、JSON、テンプレート文字列。一つのファイルがスクリプト全体です。import はありません。
fetch も、ファイルシステムへのアクセスも、setTimeout もありません。一時停止には core.wait を使います。time.setTime は ISO の UTC 文字列か Date を求めます。計算するだけで、カメラや時計を待たないスクリプトは、約 30 秒で止まります。旋回や Next を待っている時間は、その中に数えません。
このコンピュータ上のアシスタントは、同じコマンドを呼べます。AIアシスタントを参照してください。
