Mitaka カスタマイズの手引き（3）－23－Mitaka 改造の手引き（3）～コマンドセット 2：星座～
河村聡人（Mitaka ワーキンググループ）
Mitaka のスクリーンショットの掲載には別

1. はじめに
当連載は観測された宇宙を再現するフリー途許可を取っています。

ソフト Mitaka（©2005-2023 加藤恒彦，国

前回は Mitaka の機能の「状態の保存」に

立天文台 4 次元デジタル宇宙プロジェクト）て保存した状態のファイルを改造することでのカスタマイズ機能[1]の活用とその普及をコマンドセットを組んでいきました。コマン目的としています。全 6 回のうち、今回はそドセットとは日時や観測地点などを指定するの 3 回目となります。

一連の命令をまとめたものでした。
今回は下書きを用意せず、一からコマンドセットを組んでいきます。

連載の予定表1. 保存と読み込み：日食（一地点）[2]
2. コマンドセット 1：日食（多地点）[3]

2. 開発環境の確認
Mitaka プラグインの開発環境は、バージ

3. コマンドセット 2：星座4. シーケンス 1：月の満ち欠け（宇宙）ョン 1.74a の Mitaka を用いて、これまでの5. シーケンス 2：月の満ち欠けと日食

連載にて構築済みです。まだ構築していない

6. 字幕と地名：SPACE-CISTE 簡易版

方は第 1 回（Mitaka の実行環境の説明）及び第 2 回（エディタの説明）を参考にしてく

Mitaka ワーキンググループが行ってきたださい。

プログラマー養成イベント（ワークショップ）[4]にて培われた「Mitaka カスタマイズ攻略3. コマンドセットを組むマニュアル」（旧名：改造マニュアル。以下、基本的にはコマンドセットを一から組むこ教科書）を下書きとしています。ワークショとは推奨されていません。前回行ったようにップでは Mitaka 同梱の公式マニュアル[5]を「状態の保存」で保存された命令を下書きす補完または要約した教材を多数整備してきまることが望ましいです。しかし、Mitaka のした。それらは次の QR コード先にあります。

画面上での操作では達成できない表示を行う
場合は一から組むことになります。公式マニ
ュアル mitaka_manual_J.pdf や Mitaka のデフォルトプログラムを参考にしながら組んでいきましょう。
今回はその例として選択した星座のみを表

図1

MitakaWG の Google ドライブ[6]示するプログラムを書きます。表示の切り替
えそのものは Mitaka のメニューバーの「表当連載で扱う範囲は Mitaka の利用上の注示」＞「星座」より、「選択した星座のみ（プ意[7]に従い、Mitaka の Web サイト[8]にてラネタリウムモード／宇宙空間モード）」を選自由な再配布が認められたものです。なお択することで行えますが、どの星座を選択す

天文教育 2023 年 9 月号（Vol.35 No.5）

－24－

■ 連

るかは Mitaka のプログラム上からは行えま載 ■春の星座 とします。

せん。よってカスタマイズの必要があります。

ひとつのコマンドセットの定義は次のコマ

以下、3.1 節から 3.6 節では春の星座の表

ンドセットやシーケンスの定義の開始、また示／非表示を切り替えるカスタマイズを行いはファイルの末尾までです。

ます。3.7 節の演習ではそれを拡張し、四季ここまでのファイルを「コマンド定義ファの星座をそれぞれ表示するようにします。まイルを開く」で Mitaka に読み込ませると「コた 3.8 節と 3.9 節にて、今回のカスタマイズマンド」以下に「春の星座」が追加されていをより発展させる機能を紹介します。

ることがわかります（参考例：図 2）。現状でまずは春の星座の表示／非表示を切り替えはコマンドセットの内容が未定義なので、「春るカスタマイズから始めます。既存の mcd フの星座」をクリックしても何も起こりません。

ァイルをコピーするか新規のテキストファイルを作成し、spring_constellation.mcd と名前を変更し、エディターで開きます。既存のmcd ファイルをコピーした場合は、内容を全図 2て消してください。

「コマンド」以下に登録されたコマンドセット。3.6 節の演習のコマンド定義ファ3.1

コマンドセットの定義とメニューバーイルを読み込んだ状態。
（Mitaka: ©2005-2023
加藤恒彦，国立天文台 4 次元デジタル宇宙プ

への登録
最初にコマンドセットの定義の開始を書きロジェクト）ます。前回はファイルを読み込むとすぐに実行・再生されるため、DefCommandSet[STATE]3.2

星座を選択するとしていました。今回は複数のコマンドセッ

Mitaka の programs ディレクトリ内にあトを定義し、メニューバーから切り替えるよる default_presets.mcd の 48 行目から 51 行うにします。よってコマンドセットに固有の目を参考に、星座の選択を行います。

名前を付けます。

Mitaka では天体や星座などに固有のキー

DefCommandSet[コマンドセット名,場所]が振られていますが、それらをまとめて扱う
キーグループを設定することで星座の選択がKeyString(表示名)
コマンドセット名 にはコマンドセットの固有名（キー）を入れてください。ここでは春の星座の表示用として ShowCnstSpring と行えます。キーグループの設定は次の命令で行います。
SetKeyGroup(グループキー,キー1,キー2)
この命令はキーを任意のグループキーでまとします。
場所 にはメニューバーの登録先を入れまめるより一般的なものです。星座の選択ではす。メニューバーの「プリセット」以下に登グループキー を CNST_SELECT に設定し録するならば PRESET、「コマンド」以下に登なければなりません。

録するならば MENU_BAR を指定します。今回

星座のキーは CNST_略符 の形式で定義さは「コマンド」以下に登録するので、MENU_BARれています。今回は春の星座として、しし座とします。

CNST_Leo、おとめ座 CNST_Vir、うしかい座KeyString は Mitaka の画面上で表示される文字列を指定します。今回の 表示名 はCNST_Boo、おおいぬ座 CNST_UMa を設定します。

天文教育 2023 年 9 月号（Vol.35 No.5）

Mitaka カスタマイズの手引き（3）3.4

選択した星座を表示する。

－25－が切り替えられれば正常です。

選択した星座のみを表示するためのスイッチをオンにします。

3.6

必要なスイッチのキーを探すには、公式マ他のコマンドセットの呼び出し同様のコマンドセットを複数定義する場合、ニュアルの p110 にあるスイッチ一覧が便利共通部分を独立したコマンドセットにして、です。また起動した Mitaka にて求める表示

必要に応じて呼び出すことで使い回すことが設定にして、その状態を保存して確認する方できます。この方がコード全体としては短く法も簡単です。

なり、エラーの減少と保守性の向上にもつな

今回オンにするスイッチは、次の６つです。
• 星座の名前 CONSTELLATION_NAME

がります。
次の演習の準備として、3.4 節の部分を独• 星座線 CONSTELLATION_LINE

立したコマンドセットに変更します。3.4 節• 選択した星座のみ（プラネタリウムモーで書いた SwitchOn の前の行にコマンドセッド） CONSTELLATION_SELECT_PLNT

ト SetCnstVisible の定義の開始を挿入し• 選択した星座のみ（宇宙モード）

ます。ユーザーの操作から直接実行するもの

CONSTELLATION_SELECT_SPACE

ではないので、コマンドセット名のみを指定• 4D2U のロゴ 4D2U_LOGO_DISP

し、 場所の設定はしません。これで表示の操• クレジット ON_SCREEN_CREDITS_DISP

作が独立したコマンドセットになりました。

このコマンドセットでは特定のスイッチの春の星座を表示するコマンドセットから独みを操作したいので SwitchOn コマンドを立させた表示のコマンドを実行します。コマ使用します。間違えて SwitchSet コマンド

ンドセット内から他のコマンドセットを実行を使用してしまった場合は、指定しなかったするには次の命令を使います。

スイッチが全てオフになってしまいます。
これで春の星座を表示するコマンドセットはひとまず完成です。

ExecCommandSet(コマンドセット名)
結果的に呼び出し元のコマンドセット自身を呼び出した場合（いわゆる「循環参照」です）、コマンドセットの読み込み処理にループが発3.5

星座を表示しない生し、抜け出せなくなります。たとえば、コ

星座の表示を消すコマンドセットを定義しマンドセット A がコマンドセット B を呼び出ます。春の星座を表示するコマンドセットにし、コマンドセット B がコマンドセット A を続けて、新たにコマンドセットの定義呼び出すといった具合です。この場合、DefCommandSet[] を書き込んでいきます。

Mitaka は一定時間操作を受け付けない状態

先ほど書いたもののコピーを貼り付けて改造になった後、強制終了します。ご注意くださするとより楽です。

い。

コマンドセットのキーを ShowNoCnst、表示名を 星座を消す にします。コマンドセッ

本節の内容を反映したコマンド定義ファイ
ルは A.1.2 に掲載しています。

トの内容は SwitchOff で星座の表示に関するスイッチをオフにするだけです。

3.7

演習：四季の星座

ここまでの内容のコマンド定義ファイルは四季それぞれの星座を表示するコマンドセ

A.1.1 に掲載しています。Mitaka に読み込んットを作成します。これまで作業してきたで動作確認をしてください。春の星座の表示

spring_constellations.mcd の コ ピ ー を 作 成

天文教育 2023 年 9 月号（Vol.35 No.5）

－26－

■ 連

し、seasonal_constellations.mcd と名付けま載 ■4. おわりに次回は複数の状態を遷移させるシーケンスす。
春の星座を表示するコマンドセットと同様を紹介します。に、新たに作成するコマンドセットもメニューバーの「コマンド」に登録してください。
各季節の星座は以下とします。
• 夏の星座：さそり座、いて座、こと座、

文

献[1] 加藤恒彦（2019）「天文ソフト「Mitaka」の最新機能 ～ユーザーによるカスタマイズ機能と教材開発への応用～」第３３回天

はくちょう座、わし座• 秋の星座：ペガスス座、アンドロメダ座、カシオペア座、みなみのうお座

文教育研究会収録, pp157-160[2] 河村聡人（2023）「Mitaka カスタマイズ• 冬の星座：おうし座、ぎょしゃ座、ふたごの手引き（1）～保存と読み込み：日食（一座、オリオン座、おおいぬ座、こいぬ座地点）～」天文教育, vol.35, no.3, pp64-69

本節の演習の解答は A.1.3 に掲載しています。 [3] 河村聡人（2023）「Mitaka カスタマイズの手引き（2）～コマンドセット 1：日食（多発展：ファンクションキーへの登録地点）～」天文教育, vol.35, no.4, pp28-33

Mitaka ではキーボードのキーを押した時の[4] 波田野聡美（2020）「Mitaka による天文動作もカスタマイズできます。今回メニュー

教育／普及ワーキンググループ活動報告」，

バーの「コマンド」に登録した５つのコマン

第 34 回天文教育研究会収録, pp92-93．

3.8

ドセットをファンクションキーにも登録する[5] mitaka 同梱マニュアル :と便利です。F1 はデフォルトでヘルプが登録

・mitaka_manual_J.pdf済みなので F2 以降を使用します。たとえば・features_v174.pdf（バージョンに従い名F2 に春の星座を表示するコマンドセットを登録するには次のコマンドセットをコマンド定義ファイル追加します。

前の一部は変更される）[6] Mitaka WG の Google ドライブhttps://drive.google.com/drive/folders/1vPjyW-j1rEZ0A
tGC8I5IrreJSL0eVlX-?usp=sharing

DefCommandSet[OnKey_F2]
ExecCommandSet(SetCnstSpring)[7] Mitaka の利用上の注意
https://4d2u.nao.ac.jp/t/var/download/notice.html

3.7

発展：アステリズムの表示

星座と同様に選択したアステリズムのみを表示できます。default_commands.mcd の 61

[8] Mitaka ダウンロードページ
https://4d2u.nao.ac.jp/html/program/mitaka/#Do
wnload行目から 70 行目や公式マニュアルの p110 のスイッチ一覧を参考にしてください。現在、Mitaka に実装されているアステリズムは春の大三角、夏の大三角、秋の大四辺形、冬の大三角、冬のダイヤモンド、北斗七星の 6 つです。
3.8 節や 3.9 節の発展的な内容を反映した
コマンド定義ファイルは紙幅の都合で割愛いたします。
天文教育 2023 年 9 月号（Vol.35 No.5）

河村 聡人

Mitaka カスタマイズの手引き（3）A.1 ソースコード：コマンド定義ファイル
A.1.1）spring_constellations.mcd：3.1 節から 3.5 節までの内容
1

DefCommandSet[ShowCnstSpring, MENU_BAR]

2

KeyString(春の星座)

3

SetKeyGroup(CNST_SELECT, CNST_Leo, CNST_Vir, CNST_Boo, CNST_UMa)4

SwitchOn(5CONSTELLATION_NAME, CONSTELLATION_LINE,

6

CONSTELLATION_SELECT_PLNT, CONSTELLATION_SELECT_SPACE,

7

4D2U_LOGO_DISP, ON_SCREEN_CREDITS_DISP8)

910

DefCommandSet[ShowNoCnst, MENU_BAR]

11KeyString(星座を消す)

12

SwitchOff(13CONSTELLATION_NAME, CONSTELLATION_LINE,

14CONSTELLATION_SELECT_PLNT, CONSTELLATION_SELECT_SPACE15)

A.1.2）spring_constellations.mcd：3.6 節の内容を反映
1

DefCommandSet[ShowCnstSpring, MENU_BAR]

2

KeyString(春の星座)

3

SetKeyGroup(CNST_SELECT, CNST_Leo, CNST_Vir, CNST_Boo, CNST_UMa)

4

ExecCommandSet(SetCnstVisible)

56
7

DefCommandSet[SetCnstVisible]
SwitchOn(8CONSTELLATION_NAME, CONSTELLATION_LINE,

9CONSTELLATION_SELECT_PLNT, CONSTELLATION_SELECT_SPACE,

10

4D2U_LOGO_DISP, ON_SCREEN_CREDITS_DISP

11)

12
13

DefCommandSet[ShowNoCnst, MENU_BAR]

14

KeyString(星座を消す)

15

SwitchOff(16CONSTELLATION_NAME, CONSTELLATION_LINE,

17

CONSTELLATION_SELECT_PLNT, CONSTELLATION_SELECT_SPACE

18)

天文教育 2023 年 9 月号（Vol.35 No.5）

－27－

－28－

■ 連載 ■

A.1.3）seasonal_constellations.mcd：3.7 節の演習の解答
1

DefCommandSet[ShowCnstSpring, MENU_BAR]

2

KeyString(春の星座)

3

SetKeyGroup(CNST_SELECT, CNST_Leo, CNST_Vir, CNST_Boo, CNST_UMa)

4

ExecCommandSet(SetCnstVisible)

56

DefCommandSet[ShowCnstSummer, MENU_BAR]

7

KeyString(夏の星座)

8

SetKeyGroup(CNST_SELECT, CNST_Sco, CNST_Sgr, CNST_Lyr, CNST_Cyg, CNST_Aql)

9

ExecCommandSet(SetCnstVisible)

10
11

DefCommandSet[ShowCnstFall, MENU_BAR]

12

KeyString(秋の星座)

13

SetKeyGroup(CNST_SELECT, CNST_Peg, CNST_And, CNST_Cas, CNST_PsA)

14

ExecCommandSet(SetCnstVisible)

15
16

DefCommandSet[ShowCnstWinter, MENU_BAR]

17

KeyString(冬の星座)

18

SetKeyGroup(CNST_SELECT,1920

CNST_Ori, CNST_CMa, CNST_CMi, CNST_Gem, CNST_Aur, CNST_Tau)
ExecCommandSet(SetCnstVisible)

21
22
23

DefCommandSet[SetCnstVisible]
SwitchOn(24CONSTELLATION_NAME, CONSTELLATION_LINE,

25

CONSTELLATION_SELECT_PLNT, CONSTELLATION_SELECT_SPACE,26

4D2U_LOGO_DISP, ON_SCREEN_CREDITS_DISP

27)

28
29

DefCommandSet[ShowNoCnst, MENU_BAR]

30

KeyString(星座を消す)

31

SwitchOff(32CONSTELLATION_NAME, CONSTELLATION_LINE,

33

CONSTELLATION_SELECT_PLNT, CONSTELLATION_SELECT_SPACE

34)

天文教育 2023 年 9 月号（Vol.35 No.5）