ゲームと自主性

サイクルの周期をmineCraft上の時間で3日に一回、60分に一回から、40分に一回に頻度を増やして見る。すると2時間で3回、水門が開くことになる。アイアンゴーレムの場合は、20分に一回で、村人に拠点を作ったためにコンスタントに20分に一回とは限らず、40分に一回のときもある。アイアンファームは複数作っておらず、一つだけだったために、村人の生活サイクルに合わせて20分のうち2回召喚の機会が訪れる。効率はあまりよくないが、地下に無作為に探索に出るよりは、鉄が貴重だったこともあって、古いバージョンから多くのアイアンファームの事例がある。一日は20分で、ティックという信号を伝達したりボタンを押すときの間隔では24000ティックが一日になる。そもそもゲームをすることが効率的な行いでなく、レベル上げや材料集めなどの地道な作業をいかに厭わずにこなせるかが攻略の鍵になっているというのは、倫理的に見てもそのように考えられる。もし、mineCraftを教育用に活用するとしたら、やはり採掘や採取などのフィールドワークをメインにすることが優先されそうだ。レッドストーン回路がプログラミングの学習になるというのは、宣伝にはそう書いてあるが、実際には種明かしを知った一部のユーザーに作業が集中することがあって、協力的になりづらいのかもしれない。

ともかく小麦では収穫の効率を追求して、成長に3日待っていたものを2日に短縮して、その都度堤防の水流を開けて収穫をすることを試みた。苗は苗付け用の畑から農民のAIが運んでくれる。40分で小麦が3つ収穫された。ここまででは小麦64個と種がその4倍の256個だった。予め種を農民に渡していても、農民の持ち物の上限がどれくらいか分からないため、村人の持ち物を操作することはできなかった。旧来のレールからでも収穫の余りを集めて、これも種が多めで小麦が少なめだったが収穫はあった。水流の流れのブロックを工夫して、養蜂箱に繋がったホッパーの位置を1マス下にずらしたり、通路に水流に対して平らになる扉を置いたりして、流れてくるアイテムが引っかからないようにした。シフトレジスタ回路は2つのランプを1つのONとOFFで2つ数えるようにすると、ONとOFFの状態を記憶するラッチ回路にも見える。用途に応じて使い分けていこうと思う。

続きを読む ゲームと自主性

サイクルとシフトレジスタ回路

シフトレジスタ回路を組み込むことで、日照センサーが昼夜のサイクルを2日に伸ばすことでその間に作物を育てる。シフトレジスタ回路はレッドストーンリピータに横から動力を流すとロックが掛かって、動力が流れなくなる性質を使って、ボタンやレバーの動力をパルサー回路で2チックの間隔だけ流れるようにすると、ロックが一瞬解除されて、ロックが掛かっている隣のレッドストーンリピーターが点灯した状態を保持できるようになる。これによってボタンを押した回数を保存して、リピータの数の分だけの回数に一度動く回路を作ることができる。回路は3回繰り返すようにして、0→1→2→3の4段階のサイクルを繰り返す。昼夜のサイクルが2回あるので、2日分のサイクルになる。棚田の堤防が開くのは2日目の夜になる。昼夜のサイクルは10分ずつあり、1日は20分で繰り返される。堤防が開くのは40分に一度開くことになる。昆布の時計にしても良かったが、成長のスピードが不規則であったため、どれだけの間待てばいいかが分かりにくかった。その点シフトレジスタ回路では、一つのランプの位置がずれるごとに10分になることが分かるために、おおよその時間を測る目安になった。また、一度保持した点灯段階をリセットするには、動力をカットするのではなく、NOT回路と既存の回路の動力を同時に切り替える必要があり、Googleでシフトレジスタ回路の事例を検索してみるとTAIHARUのマイクラ攻略にリセット回路を組み込んだ事例があった(参考:https://taiharu.com/2018/05/24/2511/2/)。リセットするときはロックを外したタイミングですべてのリピーターにNOT回路を流すことで、ランプが消えてリセットされる。レバーだけでなく、ボタンに替えてもリセットは機能したけれど、ONにするとOFFの信号を流すNOT回路と、一時的にONとOFFを切り替えるパルサー回路をアレンジすることは難しかった。動画にも事例があったが、リセットボタンは組み込まれてはいなかったために、ボタンを押して所定の位置までランプが付く動作を繰り返す必要があった。

続きを読む サイクルとシフトレジスタ回路

棚田のアイデア

mineCraftの畑に水流を流して、作物を収穫するアイデアはかなり一般的でありふれているが、それが手段として実用化されにくい理由として、作物を植える動作が自動化されていないことにある。村人の農民のAIは、既に植えてある作物を収穫して自身のアイテムにいったん格納して、種があれば新しい苗を植えてくれる。しかしながら鍬で土のブロックを耕してはくれないようで、予め水たまりを作ってプレイヤーが耕す必要がある。耕す場合の水分を供給する水たまりがあると、水が上手く流れないようで、あぜ道を水が漏れないように作る必要があった。水が坂道の地形に応じて畑を流れていく様子は、東南アジアや日本の田舎の原風景にある棚田を連想させるが、その枠組みはまるでジオラマのセットのように作りこむ必要があった。レバーをONにすると、水源の堤が開いて、階段状に配置した畑を水が洗い流していく、このときに収穫されたものが下のホッパーとチェストボックスに溜まる。階段の段数は任意で増やすことができるが、まずは3段で行うことにした。一段あたりの畑は横3マス、縦5マスくらいの一部屋くらいの広さにした。はじめは、柵を使って棚田を囲っていたが、水流を流すと柵の隙間に作物や種が引っかかることがあり、土ブロックに置き換えた。水流はクロック回路を使って、種ブロックが64ブロックカウントされると、一度だけ堤防が開くようにしたが、そのカウント数でも作物が育つ前に流れてしまうために、日照センサーが昼や夜の変化を検知したタイミングにした。昼夜が切り替わる時に一度堤防が開く、また雨が降ると日照センサーが変化して堤防が開くようになっている。

トロッコは一度ONになると一瞬だけ作動するパルサー回路を通常のボタンを押した動作に増幅させる目的で使っている。トロッコの感圧センサーの信号が、プレイヤーがボタンを押したときにONになる長さと同じになるためだった。ボタンは1秒くらいONになっているのでその間に扉を開けて中に入ったりできる。感圧板でもボタンを大きくしたものでONになる信号の長さは変わらない。オブザーバーのセンサーが変化を感知したときに流れる信号は1秒に満たないわずかな間で、この信号を回路で動作させるには増幅させる必要があった。ホッパーやチェストボックスやオブザーバーは水流を被っても変化しないために、防水用の回路になっている。レッドストーンパウダーが水に流れてしまうために、水が入らないようにブロックの壁を作る必要がある。

続きを読む 棚田のアイデア

バージョン管理と定点観測

mineCraftのバージョンでは、1.15の環境でそれ以前のワールドマップを読もうとすると、警告は出るもののブロックの性質や回路には影響していなかった。レゴブロックのように基本的なオブジェクトの組み合わせは変わらないものと考えて差し支えなかった。Optifineというシェーダーパックのプラグインは、年末のtwitterでは1.15への対応が100%のうちの何割かが進捗しているとあり開発の最中だったようだ。1.15のバージョンではミツバチのMOBや、巣箱などのブロックが新たに追加されており、そのファイルを以前の1.14のバージョンで読み込もうとすると、事前に警告がでてそれでも構わずに読み込もうとすると、画面が暗くなってなにもアイテムボックスの他に映らなくなっていた。1.15でもシェーダーパックが実装されれば、風景の移り変わりなどを合わせて見てみたいと思うが、いまのところOptifineとどのシェーダーパックが有効な組み合わせかは未知数だった。少なくとも1.15になってフレームレートが安定して、動作が重くなったりCPUに負荷がかかって熱くなることは見られなかった。macBookだったころは広大なワールドマップを映そうして動作が重くなったので、画面をraspberryPi用の小型ディスプレイにして、なまし銅管を使って水冷ユニットを作ったりして負荷を軽減しようと試みるきっかけになった。

続きを読む バージョン管理と定点観測

仕組みを整えながら、考えを紡ぐ

身近なことにもヒントを見出して目的を持って、丁寧に物事に取り組む。そうしていればだんだんと自分の苦手なところが改善されてゆく。いつものmacBookがiMacになり、普段はこの環境で、パソコンを動かすことになった。年数は持っているものと同じ2013年だった。その頃にも暮らしの変化に対応することを余儀なくされていた。しかしながら、今度は少人数でなくある程度世間の広がりが感じられる。会話もまだ参加できないところもあるけれど朗らかな感じがしていた。順を追って落ち着いて考えれば、周りとの違和感が少なく新しい道を歩めそうだと感じる。パソコンがないときにも、考えを組み立てて、応用できるようにしてみたい。スーツが普段着になったものの、いずれも服がくたびれた印象になると、自分にツケが返ってくる。視野や空間が少し広がった分、その環境やスケジュールを有効に役立てていきたい。自分でパソコンを買うよりは、それに見合った職業や役割に合わせた方が元が取れるのかもしれない。純粋な好奇心が、モチベーションと組み合わさるように心がけていきたい。
初日からとあるキャンペーンの案件に参加することになった。そこでの案件のオブジェクトは多いものの、今まで見た広告に比べるとメッセージ性があるものがあって、やりがいを見出せそうだ。何よりをそれをみるユーザーにも明快な意図が伝わるような気がする。TreehouseでもCSSのウィンドウの相対寸法について、pxでない何かになっていた。マージンは段落の余白を示す数値だが、左右のleftやrightだけでなく上下のtopやbottomも横の幅になるようだ、ブラウザのウィンドウを縮めると横幅が変化する、すると縦に段落が間隔を調整している。説明を聞いていると今まで気がつかなったが、あとで確かめられれば新しい見方が得られた。固定化したものが柔らかくなることは、動きや関係性を柔軟にすることができる。他にはJavascriptがすぐには読み解けなかったことが少し心残りだ、仕組みを理解して、そこに慣れることで時間が短縮できて、効率化に繋げて行きたい、その一方で企画の意図を汲み取る精度を上げることで、クオリティの向上に役立てていければとも思う。
また、GitHubの使い方にも慣れていきたい。研修中にSourceTreeを使っていたけれど、早々に実務に使う機会が訪れた、ソースコードに時間や区切りをつけて、セーブすることができる。それでも理解が追いつかないところでは、落ち着いて状況を把握仕切れないかもしれない。関数は予想できるものの、その組み合わせによっては、読み方を工夫する必要があるかもしれない。それでも、解像度の高い環境で、目の負担が減り、手を動かすことにも事欠かない。できれば、朝がある程度時間に余裕があるので、もしかしたらこの文章も朝方に書いた方がいいのかもしれない。一日の見通しが見えるところまで進んでいければ一安心できる。それでも、プロジェクトの流れに沿っていない試行錯誤は多少ログにも目立ってしまうようだ。人と人が協力するための仕組みの奥深さと大切さが感じられた。
続きを読む 仕組みを整えながら、考えを紡ぐ