Interstellar Consoleは、みさと天文台での定期上映のために職員が自ら制作した、オープンソースのデジタルプラネタリウム投影ソフトウェアシステムです。
特徴は以下のとおりです:
みさと天文台では2025年2月22日以降、ライブ解説によるプラネタリウム定期上映で本システムを使用しています。Stellariumの各種パラメータや天の川のテクスチャーを丁寧に調整し、星空のリアルさは商用システムと変わないレベルを実現しました。解説員は5名いますが、全員が本システムに大きな不満は無く、みさと天文台としては、今後商用システムでプラネタリウム上映を行う事は考えられなくなりました。
ライブ解説においては、操作エラーを招かないGUIが求められるため、ボタン類には大きめの面積が必要です。しかし、プラネタリウム上映のためのコンソールにおいては、ON/OFFする要素が膨大であり、これを平面的なGUIとするのは不可能ですので、タブで切り替えて使えるデザインとしています。
特徴は以下のとおりです:
メインGUIの全パターンについて、右図下部のリンク(1から7)で確認できます。どのような機能があるかをご確認ください。
Copyright (C) 2025 Misato Observatory
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
cmd
」と入力し、コマンドプロンプトを起動し、右上の×印で閉じる。
C:\Program Files\Stellarium\scripts\interstellar-console\
にあるすべてのファイルについて、バックアップをとってください。
上記 5. をスキップしてください。Tcl/Tk-9系の場合はそのまま動作しますが、Tck/Tk-8系の場合は、上記 9. まで完了した後、C:\Program Files\Stellarium\scripts\interstellar-console\tcl_sjis\
にあるtclファイル(Shift-JIS版のGUIソースファイル)を
C:\Program Files\Stellarium\scripts\interstellar-console\
にコピー(上書き)してください。
用途に応じて、いずれかの動作モードを選択してください。
以下で説明される設定ファイルは、
C:\Program Files\Stellarium\scripts\interstellar-console
にあります。
設定ファイルはすべてテキストファイルです。Windows標準のメモ帳など、お好みのエディタで編集してください。
domeモードでは全天周スクリーンに投影される事を前提としているため、 Stellariumはフルスクリーンで起動されますが、 意図したデスクトップに現れない場合は、以下の手順で設定します。
以上で設定完了です。domeモードで起動し、確認してください。
localInitLocation.ssc
メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。
lon
に、緯度を lat
に、標高を altitude
に設定// longitude. E is +ve. values out of the range -180..180 const lon_h = +135; const lon_m = 24; const lon_s = 22.1; // latitude. N is +ve. values out of the range -90..90 const lat_d = +34; const lat_m = 8; const lat_s = 40.3; // altitude in meters. const altitude = 400.0; const lon = lon_h + (lon_m/60.0) + (lon_s/3600.0); const lat = lat_d + (lat_m/60.0) + (lat_s/3600.0);
localConfig.ssc
メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。
以下のように、動作モードごとに設定できるようになっています。設定項目は順に、フォントサイズ、線幅(ピクセル)、星表現[絶対・相対]、天の川[明るさ・色の濃さ]、地上風景の透過率、天体情報の表示形式、最小描画数 です。
if ( getFlagDomeMode() != true ) { // Navigation Mode const font_size_medium = 15; const font_size_large = 18; const line_thickness = 1; const absolute_star_scale = 2.0; const relative_star_scale = 0.8; const milkyway_intensity = 1.0; const milkyway_saturation = 1.0; const landscape_transparency = 0.0; // Select from "AllInfo", "DefaultInfo", or "ShortInfo" const selected_object_info = "AllInfo"; // Saving power when lower time-rate (default is 18) const min_fps = 4.0; } else { // Dome Mode const font_size_medium = 30; const font_size_large = 35; const line_thickness = 2; const absolute_star_scale = 3.0; const relative_star_scale = 0.7; const milkyway_intensity = 1.0; const milkyway_saturation = 1.0; const landscape_transparency = 0.3; const selected_object_info = "None"; const min_fps = 12.0; }
フォントサイズ、線幅、天体情報の表示形式 以外は、メインGUIより操作可能です。
最小描画数(min_fps
)はスクリーン上での時刻を進めない場合に1秒あたり描画される枚数です。これを下げるとラベル表示などがスムーズではなくなりますが、PCの消費電力を小さくすることができます。
設定ファイルを保存したら、メインGUIの Generalフレーム内「初期設定」の「全」ボタンを押し、設定内容を確認します。
localInitView.ssc
「ビュー」とは、投影法や投影座標に関する事を指します。全天周投影の場合、プロジェクターの仕様に深く関わってきます。 メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。
動作モードごとに設定可能です。設定すべきところは、以下のコメントで示してありますので、必要に応じて変更してください。
// Navigation Mode
// Dome Mode
メインGUIの「設定」タブより、Configurationフレーム内で、上記の投影モードなどを含めビューに関する操作が可能です。GUIで各設定についての最適値を見つけておき、設定ファイルに書き込んでください。
投影モードは設定ファイルにあるとおり core.setProjectionMode();
で設定します。設定可能な投影モードは以下のとおりです:
設定ファイルを保存したら、メインGUIの Generalフレーム内「初期設定」の「VIEW」ボタンを押し、設定内容を確認します。
全天周スクリーン上の0.5度は実際の空のそれよりも小さいため、プラネタリウムでは一般に太陽や月を数倍のサイズで表示しています。 これらに関する設定ファイルについても、 メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。
localInitSunScale.ssc
SolarSystem.setSunScale();
localInitMoonScale.ssc
SolarSystem.setMoonScale();
設定ファイルを保存したら、メインGUIの Solar Systemフレーム内「天体 表示サイズ」以下のボタンを押し、設定内容を確認します。
localInitSettings.ssc
文字や線の色、星のまたたき、散在流星などの設定ができます。
メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。
詳しくは、Stellarium Scriptに関する公式ドキュメント(英語) をご覧ください。
全天周スクリーンに投影する場合、Stellarium付属のテクスチャーではリアルさが不足するため、C:\Program Files\Stellarium\scripts\interstellar-console\milkyway
にある milkyway.png
を
C:\Program Files\Stellarium\textures
にコピー(上書き)してお使いください。夏の天の川では淡い部分が表現され、冬の天の川では落ち着いた光量になって実際の見え方に近づきます。
上記のようにしてもリアルさが不足する場合は、C:\Program Files\Stellarium\scripts\interstellar-console\milkyway
にある README.sjis.txt
を熟読し、付属のツールでテクスチャーを調整してください。付属のツールが難しいと感じる場合は、GIMPなどのレタッチツールで調整しても良いでしょう。
updateLightMoonPollution.ssc
コード先頭付近に以下の定数があります:
// Base parameters for pollutions const light_pollution_base = 0.0010; const moon_pollution_base = 0.0010;
それぞれが、光害・月の影響を決めるパラメータです。必要に応じて変更してください。
exec_date-monitor.bat
Stellariumには、魚眼投影時に時刻を適切に表示する機能が見当たりません。 全天周スクリーン上に時刻を表示するには、Interstellar Console付属のアプリ「オンスクリーン時計」を使用し、Stellariumのフルスクリーンウィンドウの上にそのアプリによる時刻表示(右図上スクリーンショット)を被せます。
オンスクリーン時計についての設定は、メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。
オンスクリーン時計は、メインGUIの Generalフレーム内「時計 on Screen」の ONボタンで起動できます。起動時の表示場所は、GUIと同じデスクトップですので、以下のパラメータを調整して、全天周スクリーンの方位表示(東・西・南・北のいずれか)の左右に水平に表示されるようにします:
set POS_X_FOR_SCREEN=+200 set POS_Y_FOR_SCREEN=+100
上記は、初期表示位置(コンソール用デスクトップの左上)からの移動量です。全天周スクリーン用デスクトップの位置によって、符号や数値が変わります。
set ORIENTATION=0 set FONT_SIZE=24 set RADIUS_FOR_PLACING_CHARS=1630 set ANGLE_BETWEEN_TWO_CHARS=1.2
ORIENTATION
パラメータで全体を回転させることができます。0:回転なし、1:左90度回転、2:180度回転、3:右90度回転 です。デスクトップで南が下側の場合、それぞれ次のように適合します: 0=南、1=西、2=北、3=東。
RADIUS_FOR_PLACING_CHARS
は文字を配置するために使用される半径です。魚眼プロジェクターの解像度の約半分を指定します。コンソール用デスクトップが150%表示の場合は、1.5倍した値を指定します。
ANGLE_BETWEEN_TWO_CHARS
パラメータでは、文字の間隔を角度で指定します。やや広めにとってください。
現場での調整では、地平グリッドを表示し、「時計 on Screen」の「調整用」ボタンで中央位置を表示させておくと便利です。
2台以上のプロジェクターによるエリア分割式の投影を必要とする大型の全天周スクリーンでは、射影変換システムが必要で、さらにプロジェクターもケースバイケースであるため、ここでは一発式の場合を扱います。
一発式のプロジェクターでは、大きく分けて3通りが考えられます。
1.の方法は高価すぎるためここでは議論しません。 2. の方法が簡単に思いますが、周辺収差が激しくあまり画質は良くありません。3. の方法では画質は狙えますし、リレーレンズと魚眼レンズとの両方にフランジバックが大きい一眼レフカメラ用レンズを使えば2インチ天頂ミラーで光路を曲げることもでき、縦向きにできないプロジェクターでも全天周投影が可能になるなど、応用が効きます。
プロジェクターの解像度は縦2160または縦2400ピクセルのものが良く使われているようですが、みさと天文台の経験では縦2400ピクセルのプロジェクターはNVIDIA Mosaicが可能なグラフィックスアダプタ+2系統のHDMIを必要とする上に、何らかの原因でMosaic設定が壊れるなどトラブルの原因となるため、あまりお勧めできません。また、NVIDIA Mosaicを設定するとQt6版のStellariumでは表示が崩れてしまうため、将来Qt5版が廃止された場合にStellariumをアップデートできなくなる事も考えられます。どのPCでもHDMIケーブル1本で出力できる縦2160ピクセルのネイティブ4kプロジェクターをお勧めします。
EDIDエミュレータは、PCからはディスプレイとして認識され、OS(Windowsなど)側のディスプレイ設定を自動変更させない事を目的としたデバイスです。PC─EDIDエミュレータ─ディスプレイ(またはプロジェクター)という接続で使い、ディスプレイの電源がOFFになっても、PCはディスプレイがあるものとして動作し続けます。
プラネタリウムなどの業務用投影システムや、多数のディプレイやプロジェクターを使用するトレード、プロジェクションマッピングでは、ディスプレイやプロジェクターの状態によってOS側の画面配置が自動変更されてしまうのでは困ります。この問題を解決するのがEDIDエミュレータで、それによって「PCでのディスプレイ設定を“固定化”する」事ができるというわけです。1920×1080や3840×2160のようによく使われる解像度のものは、安価なものが多数販売されています。 ディスプレイアダプタによっては、EDIDエミュレータに相当する機能を持つものもあります。
特殊な解像度もしくは多数のディスプレイを「業務で」使う場合は、プログラマブルなものを選ぶ必要があります。みさと天文台ではプロジェクションマッピングや Mitaka による3Dシアターも行っており、それらでは HD FURY社の「Dr.HDMI」(販売:MTG) を使っています。やや高価ですが、あらゆる解像度に対応できるだけでなく、ディスプレイ名称を1台ごとに設定できるので、特にプロジェクションマッピングにとっては必須アイテムと言えます。
Dr.HDMIに関するソフトウェアは、HD FURY社の Dr.HDMI、Dr.HDMI 4k ページよりダウンロードできます。EDIDデータの編集には、Deltacast社のEEDID_Editor が便利です。
本システムを制作するような場合、一般的にはコアとなるソフトウェアを改変するものです。しかし、Stellariumにはそれを制御するための強力な「Stellarium Script」が使えるため、外部にソフトウェアを追加するたけで様々なシステムを構築することができます。本システムにおいても、Stellarium実行ファイルには一切変更を加えていません。
このスクリプトはJavascriptベースなので習得も簡単で、APIも充実しています。さらに、8090番ポート経由でStellariumへこのスクリプトを送信したり、あらかじめ用意されたステータス(日付や天体データ)が取得できます(参照:ドキュメント)。しかし、LabelMgrで返されるラベルIDなどスクリプトを実行した時の出力データや返り値は、ファイルへの出力は可能でも8090番ポートから取得できないため、Stellariumとは別にファイル読み取り用プロセス「ISC Info Server」を起動し、スクリプトの結果を8091番ポート経由で取得しています。
このように実装はやや複雑化しているものの、StellariumとGUIとは 8090番・8091番ポートで通信しているため、GUIのコードを少し改修することでタブレットから制御することも可能です。
本プロジェクトのために以下のフリーソフトウェアを使用しました:
開発者ならびにそれらに関わったすべての皆様に感謝いたします。
Misato Astronomical Observatory
info (at) obs.jp
Last Modified: May. 1, 2025