Mitaka カスタマイズの手引き（5）－15－Mitaka 改造の手引き（5）～シーケンス 2：月の満ち欠けと日食～
河村聡人（京都大学附属天文台／Mitaka ワーキンググループ）
かなりマニアックです。今回作成する動作と

1. はじめに
Mitaka（©2005-2023 加藤恒彦，国立天文しては、前回までの連載内容を駆使すれば実台 4 次元デジタル宇宙プロジェクト）のカス装できます（3.4 節の内容は除く）。しかし今タマイズ機能[1]の活用と普及のための当連回の内容により、コードの使い回しがより簡載も、全 6 回のうちの第 5 回となりました。

単にできるようになります。
今回は、これまで作成した日食のコマンドセットと宇宙から見た月の満ち欠けのシーケ

連載の予定表1. 保存と読み込み：日食（一地点）[2]ンス、さらに新規のシーケンスをつなげ、月

2. コマンドセット 1：日食（多地点）[3]の満ち欠けから日食までを見せるひとつなが

3. コマンドセット 2：星座[4]りのコードを作成します。流用する過去のフ4. シーケンス 1：月の満ち欠け（宇宙）[5]

ァイルは以下の 2 点です。

5. シーケンス 2：月の満ち欠けと日食

・20350902_SolarEclipse_Mitaka.mcd

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

・LunarPhase.mcd
完成すると、以下のストーリーができあが

当 連 載 は Mitaka ワ ー キ ン グ グ ル ー プ

ります。まず 1）宇宙での月の満ち欠けを見（WG）による講習（ワークショップ） [6]せます。次に 2）2023 年 9 月 2 日まで同じ視向け教材「Mitaka カスタマイズ攻略マニュ

点で飛び、地球の昼側の全景へと移動し、3）アル」を下書きとしています。この他にも多時間を進め、宇宙から見た日食の影の動きを数のワークショップ向け教材が、次の QR コ見せます。そして 4）三鷹での皆既日食を見ード先にあります。

せます。
2. 開発環境の確認
当掲載の Mitaka はバージョン 1.74a です。
環境構築については連載の第 1 回と第 2 回を図1

MitakaWG の Google ドライブ[7]QR コード先の教材や当連載は Mitaka 同梱ご参照ください。
3. シーケンスの高度化の公式マニュアル[8]を補完・要約しています。

シーケンスを続けて実行することで長大な当連載で扱う内容は Mitaka の利用上の注ストーリーも段階的に分割して作成すること意[9]に従い、Mitaka の Web サイト[10]にてができます。

自由な再配布が認められた範囲です。なお

今回は LunarPhase => EclipseTransit =>Mitaka のスクリーンショットの掲載には別

Eclipse20350902 と 3 つのシーケンスをつな途許可を取っています。

げます。

はじめに断っておきますが、今回の内容は天文教育 2024 年 1 月号（Vol.36 No.1）

－16－

3.1

■ 連載 ■

念のため、時間を進め、図 2 の下図のようシーケンス作成の復習手始めとしてストーリーの 3）宇宙からみた日食のシーケンスを作成します。に月の影が日本にかかることを確認しておきましょう。

起点となるシーンを Mitaka 上で設定し、保存したファイルを開き、コマンドセットそれを保存します。最初に Mitaka を起動しをシーケンス化していきます。第 4 回の連載て、三鷹での皆既日食の状態を呼び出します

記事を参照してください。

（「ファイル」＞「コマンド定義ファイルを開シーケンス名は「Eclipse20350902」としてく」）。次に「離陸・着陸」＞「離陸・着陸」

おきます。MENU_BAR への登録も忘れないでくを選択し、宇宙モードに入ります。そしてださい。KeyString の設定は任意です。

PageDown を押すなどして地球全球が画面保存されていた内容は初期状態の設定です

内に収まる距離まで遠ざかります。地球の南ので、これから時間を進めます。影が東のリ北が画面の上下方向と大体同じとなるようにムに十分近づく 11 時半まで時間を進めます。

調整してください。最後に月の影が地球に落一時停止 Pause をかけてから、状態の遷移時ちるように、「表示」＞「惑星」＞「月・衛星間設定 Transition と共に、SetDateTime もしの影」＞「表示」を選択し、チェックを入れくは AdvanceTime を使用します。

ます。これで図 2 の上図のようになるので、状態を保存します（「ファイル」＞「状態をフこれでストーリーの 3）に相当する、A.1のコードの 19 行目まで完成しました。

ァ イ ル に 保 存 」）。 フ ァ イ ル 名 は「LunarStory.mcd」としておきます。

3.2

コマンドセットの実行（復習）

続いてストーリーの 4）を作成します。以
前作成した三鷹の皆既日食のコマンドセット
を コ ピ ー し 、 コ マ ン ド セ ッ ト 名 をEclipse_Mitaka と し ま す 。 シ ー ケ ン ス
Eclipse20350902 の定義と順番は問いませんが、今回は Eclipse20350902 の定義の後に貼り付けます。
コマンドセットの呼び出しでは内部の時計が更新されないので ExecCommandSet のすぐ後で SetDateTime にて今回保存したシーンと同じ日時を指定します。
最後に、設定の混乱を避けるために、初期化のデフォルトコマンドセット INIT を終了
時に呼びます。今回は定義していませんが、初期化のためのコマンドセットを別で定義している場合はそちらを呼び出してください。
図 2

日食の直前の地球昼側の全景（上）と日食時（下）（Mitaka: ©2005-2023 加藤恒彦，

AtExit:ExecCommandSet(INIT)

国立天文台 4 次元デジタル宇宙プロジェク

これでストーリーの 3～4）に相当する、A.1ト）のコードの 49 行目まで完成しました。
天文教育 2024 年 1 月号（Vol.36 No.1）

Mitaka カスタマイズの手引き（5）3.3

シーケンスからシーケンスの呼び出し
シ ー ケ ン ス の 呼 び 出 し に は－17－と同様（ZOOM_REAL_SCALE）に変更します。
遷移時間の設定は不要です。

StartSequence(シーケンス名) を使用します

4. スケールを Eclipse20350902 の初期のもが、この命令はシーケンス内では正常に動作のと同様に設定します。遷移時間も設定ししません。次のように一度呼び出し用のコマます。

ンドセットを定義しておき、そのコマンドセここまでで必要なシーケンスは揃いました

ットを実行する必要があります。

ので、あとはそれらを接続します。それぞれ

DefCommandSet[呼び出しコマンド名]のシーケンスを呼び出すためのコマンドセッ

StartSequence(シーケンス名)

トを定義します。そして、各シーケンスの本

またシーケンスの呼び出しはひとつなぎと体部分の定義の最後（AtExit:が定義されていなる必要があります。より具体的に言うと、

れば、その直前）にて、次のシーケンスを呼シーケンスの定義の最後に次のシーケンスのび出すためのコマンドセットを実行します。

呼び出しコマンドを実行する必要があります。

これで A.1 のコードの 108 行目まで、ストそれではストーリーの 1～2）にあたる部分ーリーとしては全て実装できました。最後により使いやすくする一工夫を行います。

を作成していきます。
第 4 回で作成した LunarPhase.mcd よりシー ケ ン ス LunarPhase を コ ピ ー し 、 現 状 のLunarStory.mcd の最後に貼り付けます。これがストーリーの 1）の部分です。

3.4

シーケンスの自動起動

これまではコマンド定義ファイルを読み込むと、メニューバーの「コマンド」以下からストーリーの 2）の部分は新規に作成しま実行していました。これをファイル読込み後す。シーケンス LunarPhase 終了時点と先ほどに自動的にシーケンスを起動させるようにし作成したシーケンス Eclipse20350902 の初期ます。

状態とを比べると時間、姿勢、スケール（天コマンド定義ファイルの読み込み時に自動体からの距離）が異なっています。また的にシーケンスを実行するには、ファイルのLunarPhase 終了時点でズームレベルも実際最後に以下のコマンドセットを定義します。のスケールに戻ってしまいます。この差異を吸収するためのシーケンス EclipseTransitを作成します。

DefCommandSet[STATE]
StartSequence(シーケンス名)
今回は LunarPhase => EclipseTransit =>シーケンス EclipseTransit の手順は次の通りです。各手順の間には Pause が必要です。

Eclipse20350902 と進むので、LunarPhase を自動実行のシーケンスに設定します。

作業としては LunarPhase と Eclipse20350902
それぞれから該当する設定命令をコピーしてきて並べると正確です。

4. さらなるカスタマイズ
Mitaka ではこれまでに紹介した以上のカ

1. LunarPhase のズームレベル（ZOOM2）を再設定し、Eclipse20350902 の初期時間としスタマイズの可能性があります。
例えば画像の表示があります。これはてます。ここには遷移時間の設定は不要です。 media ディレクトリ内の、もしくは media デ
2. SetOrientation で Eclipse20350902 の初期

ィレクトリからの相対パスによって指定され姿勢に変更します。遷移時間も設定します。

た mif ファイルを編集し、その mif ファイル

3. ズームレベルを Eclipse20350902 のものを OpenMedia 命令で指定することで可能にな

天文教育 2024 年 1 月号（Vol.36 No.1）

－18－■ 連載 ■

ります。mif ファイルでは実際に表示する画の手引き１～保存と読み込み：日食（一地像ファイルや動画ファイルを指定します。立点）～」天文教育, vol.35, no.3, pp64-69.

体視用に右目用／左目用の指定もできます。

[3] 河村聡人（2023）「Mitaka カスタマイズ

また別の例として、x キーを押すことで出の手引き 2～コマンドセット 1：日食（多てくるスクリーンメニューなども含めてカス地点）～」天文教育, vol.35, no.4, pp28-33.

タマイズする番組制作もできます。これは[4] 河村聡人（2023）「Mitaka カスタマイズ

programs ディレクトリ内の programs.datの手引き 3～コマンドセット 2：星座～」

ファイルにて一行一ファイル名で列挙された

天文教育, vol.35, no.5, pp23-28.

prg ファイルと、その prg ファイル内で指定[5] 河村聡人（2023）「Mitaka カスタマイズされた menu 用の txt ファイルや番組の起動の手引き 4～シーケンス 1：月の満ち欠け

時に読み込む mcd ファイルを編集すること（宇宙）～」天文教育, vol.35, no.6, pp 2-7．

で可能となります。もともと Mitaka が想定[6] 波田野聡美（2020）「Mitaka による天文している振る舞いと大きく変わりますが、一教育／普及ワーキンググループ活動報告」，

方で、特定の用途に沿った調整が可能になり

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

ます。もともと用意されているメニューファ[7] Mitaka WG の Google ドライブイル menu_def.txt の内容をサブメニューとhttps://drive.google.com/drive/folders/1vPjyW

して取り組むと、機能性を大きく損なわず、-j1rEZ0AtGC8I5IrreJSL0eVlX-?usp=sharing

効率よくスクリーンメニューを拡張すること[8] Mitaka 同梱マニュアル :ができます。詳しくは当連載の下書きとなっ・mitaka_manual_J.pdfているマニュアル（[7]のドライブ内）を参照

・features_v174.pdf（バージョンに従い名前の一部は変更される）してください。

[9] Mitaka の利用上の注意
5. おわりにhttps://4d2u.nao.ac.jp/policy/

今回の内容を理解し実装できた方は[10] Mitaka ダウンロードページ

Mitaka カスタマイズの最上級者であるとい

https://4d2u.nao.ac.jp/mitaka/download/っても過言ではないと思います。前回（第 4[11] 河 村 聡 人 （ 2023 ）「 探 索 型 ク イ ズ ゲ ー ム回）までの内容を習得するだけでも中級者以『SPACE-CISTE』～Mitaka を使ったゲームの上といえるでしょう。ぜひ、その技能を生か紹介と実践～」天文教育, Vol.35, No.3, pp70-73．

して新たなコンテンツ制作を行ってください。
次回の連載最終回では、[11]にて報告した
クイズゲーム SPATE-CISTE の根幹部の実装方法を解説します。
文献[1] 加藤恒彦（2019）「天文ソフト「Mitaka」の最新機能 ～ユーザーによるカスタマイズ機能と教材開発への応用～」第 33 回天
文教育研究会集録, pp157-160.
[2] 河村聡人（2023）「Mitaka カスタマイズ
天文教育 2024 年 1 月号（Vol.36 No.1）

河村 聡人

Mitaka カスタマイズの手引き（5）－19－A.1 ソースコード
LunarStory.mcd
1

DefSequence[Eclipse20350902, MENU_BAR]

2

SetMainMode(MODE_MAIN_SPACE)

3

SetScale(1.465e-09)

4

SetDateTime(2035/9/2 8:48:0.5 9.0)

5

SetOrientation(-2.021e-01, -2.304e-01, 5.693e-01, 7.629e-01)

6

SetHeadOrientation(1.000e+00, 0.000e+00, 0.000e+00, 0.000e+00)

7

SetModesToDefault()

8

SetTimeStep(1MIN)

9

SetViewUpDirection(VIEW_UP_DIRECTION_ZENITH)

10

SwitchSet(

11

SUN_DISP, SUN_NAME, SUN_GLARE, PLANET_DISP,

12PLANET_NAME, PLANET_ORBIT, PLANET_SELECT, PLANET_DISP_BILLBOARD,

13PLANET_CLOUD, SATELLITE_DISP, ECLIPSE_DISP, DATE_DISP,

14

INFO_WINDOW_DISP, 4D2U_LOGO_DISP, ON_SCREEN_CREDITS_DISP, ENABLE_SHADER15)

16

SetTarget(PLNT_EARTH)

17

Pause()

18

Transition(15)19AdvanceTime(2.5hour)

20

Pause()

21

ExecCommandSet(Eclipse_Mitaka)

22

SetDateTime(2035/9/2 8:48:0.5 9.0)

23

Pause()

24

Transition(15)25AdvanceTime(2.5hour)

26
27
28

AtExit:ExecCommandSet(INIT)

29
30

DefCommandSet[Eclipse_Mitaka]

31

SetMainMode(MODE_MAIN_PLANETARIUM)

32

SetPlanetariumAngle(2.815e+00)

33

SetDateTime(2035/9/2 8:42:0.5 9.0)

34

SetPlanetariumAzimuth(112.864)

35

SetPlanetariumLatitude(40.617)

36

SetHeadOrientation(1.000e+00, 0.000e+00, 0.000e+00, 0.000e+00)

37

SetModesToDefault()
天文教育 2024 年 1 月号（Vol.36 No.1）

－20－■ 連載 ■

38

SetTimeStep(1MIN)

39

SetViewTargetMode(VIEW_TARGET_MODE_SELECTED_OBJECT)

40

SetViewUpDirection(VIEW_UP_DIRECTION_ZENITH)

41

SwitchSet(

42

SUN_DISP, SUN_NAME, SUN_GLARE, PLANET_DISP,43

PLANET_NAME, PLANET_ORBIT, PLANET_SELECT, PLANET_DISP_BILLBOARD,

44

PLANET_CLOUD, SATELLITE_DISP, DATE_DISP, INFO_WINDOW_DISP,

45

4D2U_LOGO_DISP, ON_SCREEN_CREDITS_DISP, ENABLE_SHADER46)

47

SetTarget(PLNT_EARTH)

48

SetViewTarget(SUN)49

SetLandingSite(Mitaka)

50
51

DefSequence[LunarPhase, MENU_BAR]

52

SetMainMode(MODE_MAIN_SPACE)

53

SetScale(1.277e-07)

54

SetDateTime(2023/11/13 10:29:60.0 9.0)

55

SetOrientation(-3.849e-01, 1.774e-02, 2.662e-02, 9.224e-01)

56

SetHeadOrientation(1.000e+00, 0.000e+00, 0.000e+00, 0.000e+00)

57

SetViewUpDirection(VIEW_UP_DIRECTION_ZENITH)

58

SwitchOn(

59

SUN_DISP, SUN_NAME, SUN_GLARE, PLANET_DISP,PLANET_NAME, PLANET_ORBIT,

60

PLANET_SELECT, PLANET_DISP_BILLBOARD, PLANET_CLOUD, SATELLITE_DISP,61

SATELLITE_NAME, SATELLITE_ORBIT, SATELLITE_SELECT, 4D2U_LOGO_DISP,

62

ON_SCREEN_CREDITS_DISP, ENABLE_SHADER, ENABLE_BLACKOUT_SHORTCUT

63)

64

SetZoomMode(ZOOM_REAL_SCALE)

65

SetTarget(PLNT_EARTH)

66

Pause()

67

SetTransitionParams(DT1:0)

68

SetTransitionParams(DT2:0)

69

SetZoomMode(ZOOM_2)

70

Pause()

71

Transition(10)72AdvanceTime(7d)73Pause()

74

Transition(10)75AdvanceTime(7d)76Pause()
天文教育 2024 年 1 月号（Vol.36 No.1）

Mitaka カスタマイズの手引き（5）77Transition(10)78AdvanceTime(7d)79Pause()

80

Transition(10)81AdvanceTime(7d)82

Pause()

83

ExecCommandSet(StartEclipseSpace)

84
85

AtExit:86

SetZoomMode(ZOOM_REAL_SCALE)

87

SetTransitionParams(DT1:1.0)

88

SetTransitionParams(DT2:1.0)

89
90

DefSequence[EclipseTransit]

91

SetZoomMode(ZOOM2)

92

SetDateTime(2035/9/2 8:48:0.5 9.0)

93

Pause()

94

Transition(15)95

SetOrientation(-2.021e-01, -2.304e-01, 5.693e-01, 7.629e-01)

96

Pause()

97

SetZoomMode(ZOOM_REAL_SCALE)

98

Pause()

99

Transition(15)100

SetScale(1.465e-09)

101

Pause()

102

ExecCommandSet(StartEclipseSpace)

103
104

DefCommandSet[StartEclipseTransit]

105

StartSequence(EclipseTransit)

106
107

DefCommandSet[StartEclipseSpace]

108

StartSequence(Eclipse20350902)

109
110
111

DefCommandSet[STATE]
StartSequence(LunarPhase)

天文教育 2024 年 1 月号（Vol.36 No.1）－21－