プログラムの自動実行について
CCコンピュータおよびタートルは、再設置することで再起動(リブート)できます。あるいはターミナル画面を表示しているときに、「CTRL+R」キーを数秒間押しっぱなしにすることでも再起動できます。
お手製のプログラムを実行するにはプログラム名を打ち込んでエンターキーを押す必要がありますが、特定の設定をすることで、この再起動時にプログラムを自動実行させることができるのです。
今回はその設定方法について説明しましょう。
最初にまず結論から簡潔に。
- その1台のコンピュータ(タートル)だけでプログラムを自動実行させる
- → 「/」ルートディレクトリで、プログラムの名前を「startup」にすればよい。
- 全てのコンピュータ(タートル)で、プログラムを自動実行させる
- → 「/rom/autorun/」ディレクトリに、自動実行させたいプログラムをコピーすればよい。
- そのプログラム名はなんでもOK。このディレクトリ中のプログラムは全て自動実行される。
- 「/rom/」ディレクトリを編集するには、ゲーム外でWindows側から操作しなくてはならない。
以下、具体的なやり方を説明します。
「startup」ファイルで自動実行
やり方はとても簡単。
「/」(ルート)ディレクトリで、自動実行させたいファイル(プログラム)の名前を「startup」に変えてあげればOKです*1。
初心者のために順を追って説明しましょう。
まずは簡単なプログラムを書いて、それを自動実行させます。
プログラムを書く
プログラムの書き方はいくつかあります。たとえば前回説明したように、対応するファイルをゲーム外から直接エディタで編集する方法。
もう一つは、ターミナル画面上で、「edit」コマンドを使う方法です。
今回はとても短いプログラムなので、後者を使いましょう。
ターミナル画面で、次のコマンドを実行します(文字入力したらエンターキー押して実行)。
> edit mymsg
これで、「mymsg」というファイルを新規に作って、そのファイルを編集することができます。
次に、次のようなプログラムを書きましょう。
これは、画面に文字を表示してそのまま終了するプログラムです。
print("Welcome to The CC World!!")
以下は、このプログラムの入力を終えたところです。
編集画面の終了は、「CTRL」キーを1回押して出てくるメニューから「Save」を選択。そして再度「CTRL」を押して「Exit」です。
作ったファイルをコピーする
次にこのプログラムを別名でコピーしてください。
コマンドは以下のとおりです。
> cp mymsg startup
- 「cp」コマンド: 「cp <元のファイル名> <コピー先のファイル名>」
- コピー元のファイルを、コピー先ファイル名にしてコピーする。
念のため、コピーできたかどうか確認するために、以下の「list」コマンドでファイルを一覧表示してみましょう。
> list
自分で作った「mymsg」ファイルとコピーした「startup」ファイルがあることを確認できたらOKです。
再起動する
「CTRL+R」を押して再起動してみましょう。
次のように「Welcome to The CC World!!」とメッセージが表示されたら成功です。
なお、このプログラムは文字を表示したらそのまま終了するプログラムでしたが、無限ループするようなプログラムを自動実行させた場合は、止めるために「CTRL+T」を押す必要があります。
「startup」ファイルの問題点
「ルートディレクトリに、startup という名前でプログラムファイルを置く」ことによって、
プログラムを自動実行できるのですが、
この1台だけでなく、全てのコンピュータ・タートルで自動実行させるのは少々手間です。
そこで次の方法を使って、全てのコンピュータ・タートルでプログラムを自動実行しましょう。
「/rom/autorun/」ディレクトリにより全コンピュータで自動実行
(WARNING!!)
- この方法は、前回(Minecraft1.6.4とComputerCraftインストールの手順(2) - Minecraftとタートルと僕)の作業によって、「/rom/」ディレクトリを編集できるようになっていることが条件です。
- 「/rom/」フォルダにはComputerCraftにとって重要なファイルが数多く含まれています。初心者の方は、ここで指示するファイル・フォルダ以外は、極力触れないことをお勧めします。
- 以下の作業は、自己責任でお願いします。とはいえ、おかしくなってしまっても、最悪、ゲームを終了して、リソースパックフォルダへのフォルダ配置からやり直せば問題ありません。
(WARNING!!ここまで)
なお、ゲームを起動したまま以下の作業を行ってもかまいません。リアルタイムにゲーム内に反映されます。
そして、普段からエディタを使ってCCのプログラムを書いている方は、以下の方法ではなく、この「autorun」ディレクトリに直接ファイルを保存してもかまいません。
Windowsで該当するフォルダを開く
コピー元ファイルを探す
まずは、さきほど作った「mymsg」プログラムが、Windows上ではどこに保存されているか確認しましょう。前回学んだとおり、GameDirectoryの「saves」フォルダの中でしたね。
デスクトップに作った「GameDirectory」を開くショートカットを使えば簡単ですね。
- 図のパス「GameDirectory\saves\ワールド名\computer\コンピュータのID」
さて、これはこのまま置いておきましょう。
コピー先フォルダを開いてコピペ
次に、もう一度「GameDirectory」を開くショートカットを使って、リソースパックフォルダを開き、中をどんどん深く潜っていきましょう。
前回の設定ならば、
「resourcepacks」→「ComputerCraft」→「assets」→「computercraft」→「lua」→「rom」→
「autorun」フォルダまで開いてください。
そうしたら、さきほどのコピー元ファイル「mymsg」を、この「autorun」フォルダにコピー&ペーストしましょう。以下のようになるはずです。
- 図のパス「GameDirectory\resourcepacks\ComputerCraft\assets\computercraft\lua\rom\autorun」
作業完了
これで作業終了です。お疲れ様でした。
あとは、ゲーム内のCCコンピュータ(タートル)を再起動するだけで反映されます。
なぜ、このフォルダにファイルを置くだけでいいのか。
その理由は、過去の記事で簡単に触れています。興味のある方はどうぞ。
おわりに
「/rom/autorun/」の活用方法として、
【補足2】既存の関数を上書きして拡張しよう - Minecraftとタートルと僕
で作ったような、既存API拡張プログラムをここに設置するなどが考えられます。
これで、全てのタートルで、拡張した Turtle APIが使えますね。
それでは今日はこの辺で。
*1:このような再起動時に自動実行するファイルをスタートアップファイルとか、オートランファイルと呼ぶ。特にLuaプログラムはスクリプトファイルなので、スタートアップスクリプト、オートランスクリプトと呼ぶことも。