2025年 07月 24日
[マイクラ] センサーやAdd-Onの、演算距離外への出入りによる値の変化 [統合版1.21.94] (7/24)
日照センサーの変化をオブザーバーで検出して、回路を動かしている。
変化があれば、1つの作業(タスク)を動作させるという機能。
そして、日照センサーが次の変化をする前までにタスクは終了するものとする。
(つまり日照センサーの変化単位で1タスク終了させる)
その場合、①夕方になって眠ったり、②マイクラを終了・再開する際、③もしくは演算距離外に出たり入ったりすると、日照センサーが変化を検出しないよう、色々手を尽くしている。
① 日照センサーは、寝る直前は夕方なので値が3以下で、起きると朝なので値が6以上になるため、オブザーバーが検知してしまう。
純粋に日に何回とか決めてても、寝てしまうとそれだけで1カウントしてしまい、夜早く寝た時と遅く寝た時で総カウント数が異なってしまう。
なので、夕方近くになるとタスクを終了し、日照センサーからの変化を機能OFFにする。つまり、日照センサーの値が8以上の時のみ動作するようにする。それにはオブザーバーの後ろから8つレッドストーンを置いて7以下での変化は受け付けない(7以下は信号が届かない)ようにする。
② マイクラを終了・再開すると、日照センサーが起動させたタスクが動作中なのに、途中終了してしまうため、再開時に昼でも夜でも日照センサーが変化し、オブザーバーが検知して、総カウント数が異なってしまう。
タスクの途中で日照センサーの変化を検出すると、タスクの異常終了になるので、必ずマイクラを終了する時は、日照センサーを含む回路を機能OFFにする。
(後述するが、Add-Onの遠隔スイッチで機能OFFにする)
実は日照センサーの値をアナログ値としてトランジスタのスイッチ機能でON/OFFするのだが、ピストンでオブザーバーを回路から切り離すという物理的方式を取っている。この物理方式はChatGPTで問合せを数回試行した結果だ。
③ タスクの動作中・タスク停止中に関わらず、回路の演算距離外にプレイヤーが移動すると、日照センサーは値=0になり変化した事になってしまう。
同じく演算距離外から中に戻って来ると、日照センサーはその時の値になり、0→その時の値に変化してしまう。
なので、プレイヤーが演算距離外に移動する前に日照センサーを含む回路自体を機能OFFにする。(Add-On)
③の続きだが、Add-Onの遠隔スイッチの値も、日照センサーと同じで、演算距離外に出入りすると元の値(1や1以外の値)→0(初期値)、0→元の値に変化してしまう。
なので、Add-Onの遠隔スイッチも、プレイヤーが演算距離外に移動する時は、OFF(0)にする。
(機能OFFするAdd-On自体が演算距離に影響される)
①と②はわかっていたが、③の演算距離外で標準のセンサーである日照センサーやAdd-Onが値がデフォルト値に初期化されるのは気が付かなかった。
(特に日照センサー側が)
これにより、回路が誤動作しないように、対策を取る事が出来た。
(Add-Onの遠隔スイッチをOFF(0)にした時が、回路自体の機能OFFになるようにする。最初遠隔スイッチONで回路機能OFFしていた)
また使用しているAdd-Onは「レッドストーン Add-On」で、ストアにはRedstone Add-Onと登録されている。
無線スイッチはアンテナと無線送信機のペアであり、アンテナにバグがあるのか、次のようにしないと正常に動作しない。
(前) アンテナ (後) ⇒ (後) レッドストーンリピータ (前) ⇒ (後) レッドストーンオシレーター (前) ⇒ レッドストーン(の粉・ワイヤー)日照センサー回路のオブザーバーを回路から引きはがす粘着ピストンへ
※ オシレータをはさむのは、こうしないとピストンが出たり引っ込んだりを繰り返すため(たぶん短いサイクルでONOFFしてる)。
P.S.
演算距離:デフォルトで100より小さいが、はっきりとした値は検証していない。見える範囲。
チャンクとも関係する可能性アリ。
by k1segawa
| 2025-07-24 13:48
|
Comments(0)

