MOD解説 > ComputerCraft > チュートリアル





チュートリアル

このチュートリアルは ComputerCraft v1.75 for Minecraft 1.7.10 以降の仕様を元に書かれています。

このページではMOD導入直後から、コンピュータの設置、一連の操作方法、プログラムの作成と実行、タートルの利用までを順を追って解説していきます。


1.コンピュータの作成

何はともあれコンピュータが無くては始まりません、まずはコンピュータをクラフトしましょう。
作業台で石x7、ガラス板x1、レッドストーンx1を画像のように配置することでコンピュータを作成できます。


2.コンピュータの起動

作成したコンピュータを適当な場所に設置したら、コンピュータを右クリックしてみましょう。

画像のようなインターフェースが開いたかと思います。

ここから何をしていいのか分からないというのであれば、まずは help と入力して Enter キーを押してみましょう。

help


このように、各種ヘルプの参照方法が表示されます。
※<program>のようなプログラムを起動するときに必要なパラメータを示す<>表記はよく登場しますが、実際に入力する際には<>は必要無いので注意しましょう。

help index でヘルプを参照できる項目一覧が表示されます。

help index


(画面下部に Press any key to continue と表示されている場合は何かキーを押せば続きが表示されます。)

help 項目名 でその項目についてのヘルプが表示されます。
試しに help time と入力して、次の項目で使うtimeプログラムについての解説を表示してみましょう。

help time


timeプログラムの解説が表示されました。
helpコマンドを使うとプログラムやAPI、その他ComputerCraftの機能についての詳細を調べることができるので、覚えておくと良いでしょう。

また、programsと入力すると起動直後の画面から実行可能なプログラム一覧が表示されます。

programs


こちらの詳細は親ページの実行可能なコマンド一覧を参照して下さい。


3.プログラムの起動

試しに何かプログラムを使ってみましょう。
timeと入力してみます。

time


このようにtimeプログラムが起動し、マインクラフト世界内の時刻が表示されました。

次はredstoneプログラムを起動してレッドストーン動力を出力してみましょう。

まず、コンピュータの前面にレッドストーンを設置します。

次に、コンピュータのインターフェイスを開いて redstone set front true と入力してみましょう。

redstone set front true


このようにコンピュータの前面からレッドストーン動力が出力されました。

redstoneのようにプログラム名だけでなく、パラメータを入力しなければ実行できないプログラムもあります。
そのようなプログラムをパラメータを入力せずに起動すると、下のようにパラメータの入力方法について表示されます。



4.ファイルシステムの操作

あなたが実際に使用しているパソコンのように、このコンピュータにもディレクトリ(フォルダ)・ファイルが存在します。
作成したプログラムをフロッピーディスクに移動したり、名前の変更などがしたい場合は以下のコマンドを使用して下さい。
cd、copy、delete、list、mkdir、move、rename、typeがファイルシステム操作関連のコマンドです。(→実行可能なコマンド一覧)

現在表示されているディレクトリのことをカレントディレクトリ、
起動直後に表示されている最も上位にあるディレクトリをルートディレクトリと言います。

このように表示されている時、bがカレントディレクトリとなります。

隣に設置されたディスクドライブにフロッピーが入っていると、ルートディレクトリ内にdiskというディレクトリが表示されます。
ルートディレクトリ内のaというプログラム(又はディレクトリ)をフロッピーに移したい場合は、move a diskと入力して下さい。


5.プログラムの作成

一連の操作を覚えたら、プログラムの作成をしてみましょう。
使用するのは"Lua"というスクリプト言語です。
プログラミングの詳細については、Lua解説サイトなどを参照して下さい。

edit <作成したいプログラム名> と入力することでプログラムの作成を開始します。

例:
edit helloworld


作成を開始するとこのような画面が表示されます。

実行すると"Hello, World!"と表示されるプログラムを作ってみましょう。

print("Hello, World!")


このように、print("Hello, World!")と入力します。
プログラムが完成したら、そのデータを保存する必要があります。
Ctrl キーを押してみましょう。


画面下部の表示が変化し、[Save] Exit と表示されましたか?

[Save] Exit が表示された状態で S キーを押してみましょう。

Saved to <プログラム名> と表示され、これで保存が完了しました。

プログラムの作成を終了するには、[Save] Exit が表示された状態で E キーを押します。
すると、元のコマンド入力画面に戻ります。


6.プログラムの実行

プログラムの作成が完了したら、実際に起動してみましょう。
プログラムが保存されているディレクトリでプログラム名を入力すれば、作成したプログラムが起動します。

例:
helloworld


無事実行されれば、このように表示されます。


プログラムの実行途中でエラーが発生した場合、このような画面が表示されます。
:1: はエラーが何行目で発生したかを意味し、')' expected はエラーの原因を推測して表示してくれます。
今回は文字列を意味する""を抜いたのが原因なので間違っていますが、タイプミスなどが原因の場合は概ね正しいので活用しましょう。

プログラムの実行が終了し、結果が出力されると自動的にコマンド入力画面に戻ります。

実際に何かの装置に組み込んで使用する場合、自動的には終了しないプログラムを組むことがありますが、
これを終了させるには Ctrl+T キーを長押しすることで強制終了させることができます。


7.実際の利用

作成したプログラムをマインクラフト世界に反映させるにはレッドストーンを利用する必要があります。
また、RedPowerを導入していれば赤合金ワイヤーやケーブル束にも出力できます。
v1.53からはMineFactoryReloadedのレッドネットケーブルも利用可能です。
リピーターやトーチだけでは大きなスペースを使わなければ実現できないような複雑な機能も、
このコンピュータを使うことによりわずか1ブロックで作成することが可能です。

では、コンピュータにクロック回路の機能を持たせるプログラムを作ってみましょう。
プログラム作成画面を開き、以下のように入力して保存して下さい。

while true do
 redstone.setOutput("back", true)
 sleep(0.5)
 redstone.setOutput("back", false)
 sleep(0.5)
end

完成したらコンピュータの後ろ側にレッドストーンを設置し、プログラムを実行してみましょう。

0.5秒間隔でオンとオフが切り替わり続けているのが確認できると思います。
この他にもサンプルプログラムのページにいくつか例を載せているので試してみると良いでしょう。


8.タートルの利用

レッドストーンの入出力以外の事もプログラムでやってみたい、という方の願望を叶えるのがTurtleです。
Turtleはレッドストーンの入出力に加え、移動・ブロックの設置・ブロックの回収(Mining Turtle系のみ)などを実行することができます。

v1.4よりTurtleは移動時に燃料を必要とします。
Turtleを移動させるプログラムの場合、実行前にrefuelコマンドで十分な燃料を補給しておくか、燃料を補給する処理をプログラムに追加して燃料となるアイテムをインベントリに入れておく必要があります。

このように、インベントリに燃料となるアイテム(かまどと同じ)を入れて refuel <補給する数> を実行すると

タートルに燃料を補給することができます。
通常タートルを回収して再設置した場合は回収前に補給した燃料が消えてしまいますが、後述の方法でラベルを付けたタートルでは再設置しても回収前の燃料が保持されます。

採掘プログラムやトンネル掘削プログラムがデフォルトで搭載されているので、すぐにその機能を体験することができます。
地面にMining Turtleを設置して背後にチェストを設置し、タートルのインベントリに燃料アイテムを入れ、excavate 5と入力して実行してみましょう。

このように5x5の範囲を採掘します。

では、実際にTurtleで5x3の壁を作るプログラムを作ってみましょう。
基本的な操作はコンピュータと同じです。
プログラム作成画面を開き、以下のように入力して保存して下さい。

turtle.select(1)
turtle.up()
for i = 1, 5 do
 turtle.forward()
 turtle.placeUp()
 turtle.placeDown()
 turtle.back()
 turtle.place()
 if i == 5 then break end
 turtle.turnRight()
 turtle.forward()
 turtle.turnLeft()
end

完成したら、インベントリの左上にブロックを15個以上入れ、プログラムを実行してみましょう(燃料を15消費します)。

このようにインベントリのブロックを使用して壁を建造します。

BuildCraftのパイプを使っての搬入出も可能なので、上手く使えば様々な機構を自動化できるでしょう。


その他のテクニック


ラベルの利用

コンピュータやタートルは回収して再設置した場合、別のコンピュータやタートルとして認識され、
保存してあったプログラム等は全て消えてしまいます。(セーブデータ内には残っているので移動すれば再使用可能)
フロッピーが増えてくるとデータをどのフロッピーに保存したか分からなくなった、ということもあると思います。
そういった問題を解決してくれるのがラベルです。
labelコマンドを使用することでコンピュータやフロッピーにラベルを付加することができ、
回収されてもデータを維持したり、フロッピーの判別を容易にしてくれます。
label set <付加したいラベル名>と入力してみましょう。

このようにアイテム名の下にラベルが表示されます。
フロッピーにラベルを付加したい場合は、ディスクドライブの中にフロッピーを入れ、
label set <ドライブの設置方向> <付加したいラベル名>と入力することでラベルを付加できます。




編集用コメント

コメント欄の方針に関してはコメント欄方針を参照して下さい。
wikiの編集が苦手な方は、以下のコメントフォームへ書き込んで頂ければ有志でページに取り込みます。
MODの情報について間違った点や、動作確認済みのMODの不具合等があればご報告下さい。
※コメントを投稿する際は、以下の点を確認して下さい※
  • 編集に関わらない内容のコメント・質問・雑談は一律して削除されます。
    MOD配布サイト、ReadMeを熟読しても分からなかった質問は、配布サイトや非公式フォーラムなどにて質問して下さい。
  • 投稿の前に一度コメントログに目を通し、既に同じ内容が載っていないか確認して下さい。
  • 投稿の際は必ず前提MOD及びそのMODのバージョンを明記し、様々なケースを試した上で報告して下さい。
  • 投稿されているコメントへの返信の際は、返信したいコメント横の○にチェックを入れて返信して下さい。
    表示できる親コメントの数は限られます。新規投稿をむやみに行うことは、他のコメントが流れてしまう要因になります。
コメントログ:MOD解説/ComputerCraft/チュートリアル
+上記の内容を守れる方のみご利用ください。
上記の内容を守れる方のみご利用ください。
  • ドライブへの書き出しの方法がわかりません><チュートリアルに載せていただくとありがたいです。 - 名無しさん 2012-02-26 17:02:17
    • 4.ファイルシステムの操作の項目の最後の2行がドライブへの書き出し方法ですよ。 - 名無しさん 2012-02-26 22:05:10
      • ありがとうございます! - 名無しさん 2012-02-26 22:17:22
      • あなたが神か - 名無しさん 2012-02-27 07:09:57
  • アイテム欄1以外のアイテムをdropさせる方法が分からない…getItemCountで0以外の欄をselect後にdropさせても何も捨ててくれない。。 - ちぃ 2012-04-29 03:21:14
    • あれ?自己解決。if not turtle.getItemCount == 0 の not が良くなかったのかな? <> もNGだしどうかけばいいんでしょうか? - ちぃ 2012-04-29 03:35:11
      • とりあえずTrueで何もさせず、elseでポイ捨て処理をしたんだけどイマイチ。。 - ちぃ 2012-04-29 03:36:18
      • turtle.getItemCountは、turtle.getItemCount(アイテム欄番号)と使います(欄番号を指定するのでselectしてない欄も調べられます)。Lua言語のノットイコールは~=です - 名無しさん 2012-05-02 12:24:46
        • ありがとうございます。助かりました。 - ちぃ 2012-05-04 00:17:14
  • ¥の打ち方を教えていただけるとありがたいです - 名無しさん 2013-05-18 16:47:25
    • サンプルプログラムに使われていますが「write()内の\nは改行を意味します。」と書かれています。¥はつかいません。 - 名無しさん 2013-10-28 19:39:50
  • 文字すら打てない・・・ - 名無しさん 2013-07-25 06:32:41
  • MC1.5.2/CC1.53ですがサンプルの壁貼プログラムがちゃんと動かない・・、このサンプルを残したままバージョン別のサンプルを誰かください・・ - 名無しさん 2013-08-22 17:49:50
    • MC1.6.2/CC1.56では動きました。ただし、タートルの選択スロットが1番(左上)でないと設置に失敗するため、実行開始時に1番スロットを選択するようにサンプルコードを差し替えておきました。ちなみに、燃料は実行前に補給しておく必要があります - 名無しさん 2013-08-28 18:51:52
  • 上の実際の利用の所のプログラムを作ったのですが、attempt to call nil と表示されて実行できないのですが・・・どうすればいいのでしょうか? - 名無しさん 2013-11-14 16:26:36
    • 付け足し・・・MC1.5.2/CC1.5.3です。初心者質問すいません - 名無しさん 2013-11-14 16:33:47
    • 燃料を補給すればできると思います。 - 名無しさん 2014-03-18 15:57:29
      • 燃料を補給してもダメなようです バージョンが上がって関数の振る舞いが変化したのかも? - 名無しさん 2017-06-14 23:29:35
        • 解決しました タートルの燃料の多寡ではなく、文法の是非が問題です for文のループにbreakを設置するならブロックの最後でなくては(後続の処理があっては)ならないので、最低限しか変えない形で書き換えます。L9を - MC1.7.10/CC1.75 2017-06-17 21:06:59
        • if i == 5 then do break end end - 名無しさん 2017-06-17 21:08:40
          • ifの前にスペースを挟んだはずが消えました、「(スペース)if...」としてください。 - MC1.7.10/CC1.75 2017-06-17 21:10:26
        • として、分岐させて、ブロックの最後に置かれる形にしました。 - MC1.7.10/CC1.75 2017-06-17 21:13:41
  • せめて、luaにおけるhelpの書き方ぐらいは書いていただけないでしょうか?luaの解説ページを読んだところで、レッドストーン信号の制御などといったことをするプログラムが記載されていないので、かなり困ります。 - ko2222 2016-03-05 11:41:10
  • ()と"がキーボードに無いのですが。([]と{}はある) 動作環境 MC1.7.10 MineCraftCoderPack9.05 ML7.10.99.99 Forge10.13.4.1448 AE2 rv3-alpha-13 MapleTree1.1.33g BC7.1.20 CC1.74 CCEdu1.74 IC2 2.2.826-experimental LP0.9.3.132 - 名無しさん 2017-07-11 20:45:00
    • 長くてすみません - 名無しさん 2017-07-11 20:46:11
名前:

|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|
Wikiのガイドライン
必ずお読みください!

基本事項



プラットフォーム


アイテムデータ



エンティティ



ゲームデータ



ワールド



Tips



ADVANCE



マルチプレイ



リンク




Wiki運営



その他



カウンタ


合計
-

トップページ
今日 : -
昨日 : -

更新履歴


取得中です。
※「ログ」「アーカイブ」「コメント」のページはここの履歴に表示されませんので、「更新履歴」および「コメント」から参照してください

人気ページ