回路を流れる信号

「回路を流れる信号」の編集履歴(バックアップ)一覧に戻る

回路を流れる信号 - (2020/10/12 (月) 16:39:35) のソース

*回路を流れる信号

**LBP2の回路を流れる信号
回路には3種類の信号が流れています。
ここでは、それらの信号をデジタル信号、アナログ信号、プレイヤー信号と呼ぶことにします。
この項目では、それぞれの信号についての説明をします。
各ガジェットには、インプットの挙動という項目がありますが、
&bold(){インプットの挙動毎に、どの信号を受け取るかが決まっています。}
とりあえず、回路を使ってみたいという方は、デジタル信号についてのみ目を通すと良いでしょう。
各信号の入出力の法則について知りたい方は、[[ガジェット毎の解説]]をご覧ください。

**デジタル信号
デジタル信号には大別して ON, OFF の2通りの信号があり、多くのガジェットの ON, OFF の状態を設定できます。
たとえば、ガジェットのインプットの挙動が[オン/オフ]になっている場合は、デジタル信号の ON, OFFを受け取ります。
ホログラムにボタンスイッチを接続して確認してみましょう。

デジタル信号を更に細かく分類すると、OFF(normal), OFF(neutral), ON+, ON- という4つの値があります。
これらの区別を気にしなくても、感覚的に多くの回路を実現できるはずです。
以降、少し難しめな話です。

OFF(normal)という信号は多くのスイッチやセンサーが発する普通のOFFです。
それに対し、OFF(neutral)という信号は、3段スイッチや、コントロールギアの方向キー、左右スティックの
中心(neutralな)位置で発生する特殊なOFF信号です。
これは、OFF(normal)と基本的に変わらない信号ですが、OFF(normal)が[進む/戻る]設定のピストンやタイマーなどを戻すのに対し、OFF(neutral)はそれらを停止させます。
センサーやスイッチに方向の概念がある場合、(たとえば、3段スイッチや、コントロールギアの方向キー、左右スティック)には、方向に応じて ON+, ON- の信号が発生します。
デジタル信号の正負に対応しているインプットの挙動の代表例としては、ピストンやタイマーの[進む/戻る]、セレクターの[サイクル]などがあります。

デジタル信号は、回路を流れる3種類の信号のうち、唯一目で確認できる信号です。
つまり、ONであれば、ガジェットや配線は光り、OFFであれば、暗い色で表示されます。
ただし、正負の区別はつきません。
正負の区別をつけたい場合は、方向分割ツールで確認することができます。

**アナログ信号
アナログ信号には、-100% から +100% の連続的な信号があり、
多くのガジェットの連続的に変化する挙動を設定できます。
たとえば、インプットの挙動を[照明調節]に設定したホログラムにタイマーをつないでみましょう。
明るさが連続的に変化することが確認できるはずです。
他にも、ガジェットのインプットの挙動が[強度レベル]や[スピードレベル]になっている場合は、アナログ信号の値を受け取ります。

バッテリーで設定できる数値 -100から+100%までの整数値のみですが、
アナログ信号は内部的には100%を1とする浮動小数点数のようです。

計算で求められる最小値は100%*2^(-149)で、24bit幅の仮数部を持つ浮動小数がアナログ値の正体です。
更にスコアセンサーからの出力に限り、強度100を超える特殊なアナログ信号(英語圏ではSuper-Normal Signals)が存在します。
この信号は、センサーの性質上ステージのプレイ中しか現れないものであり、タイマーやピストンをスピードレベル設定にすることで確認できます。
この信号も考慮に入れた場合、アナログ信号は強度100%を1とした、整数20+小数149の指数部を持つ、仮数部24bitの浮動小数とみなすことができます。
// 編集者へ、
// 符号部 1bit、仮数部 23bit、指数部 8bit という規格だと思うのですが。
// ついでに相談、プレイヤー信号は英語wikiでは、signal ownership(信号の所有権)となっています。
// 所有権、所有信号などという訳語が考えられますがどうでしょうか?

//Super-Normal Signalsについてはご指摘の通りに直しました
//信号の仮数部についてですが、実測上24bit幅の情報量があるため、規格外の信号を使っているのではないでしょうか?
//プレイヤー信号についてですが、Vitaで仕様が拡張されるようなので、それを待って決めたいと思います。個人的には無理に英語に合わせず、日本人にわかりやすいようなネーミングの方がいいと思います。

//2進の浮動小数点数は最高桁を常に1で固定するので、仮数部23bitで24bit幅の情報量をもてるようです。
//IEEE754単精度でまず間違いないと思います。
//プレイヤー信号についてですが、Vita版では公式にプレイヤーIDという名称が付きましたね。
//細かい検証はしていませんが、LBP2のものと同じものだと思います。
//Vita版ではプレイヤーIDを受け取るものが増えたという解釈でいいと思います。


アナログ信号は、目で見ることのできない信号です。
たとえ、配線が暗く表示されていてもアナログ信号が流れていることがあります。
したがって、アナログ信号を検出する為には、少し工夫が必要です。
アナログ信号の絶対値は、インプットの挙動を[位置]に設定したシーケンサーに信号を送り、シークバーの位置を見ることで検出できます。
アナログ信号の正負は、たとえばインプットの挙動を[スピードレベル]に設定したロテータに信号を送り、回転方向を見ることで特定できます。
ジョイスティックロテータを用いると、アナログ信号の正負を込めた値を知ることのできる装置を作ることができます。

**プレイヤー信号
プレイヤー信号は、プレイヤーのポペットの色(プレイヤーカラー)に対応した色をホログラムなどに設定することができます。
他にも、スコアギフトの[自分だけ]やロビッツのコスチューム選択の[オーナーをコピー]もプレイヤー信号で設定されるものです。

プレイヤー信号の特筆すべき点は、LBP2のすべてのオブジェクトがプレイヤー信号を受け取り、そして保持するという点です。
ホログラムなどの[プレイヤーカラー]やスコアギフトの[自分だけ]という設定は、オブジェクトが保持しているプレイヤー信号を受け取ります。
ステージ開始時には、すべてのオブジェクトにはプレイヤー値が設定されていません。
プレイヤー信号を送る代表的な方法としては、グラブギアで掴む、クリエイトギアで発射する、というものがあります。
スイッチやセンサーでプレイヤー信号を出力するものもあります。

プレイヤー信号には、各リビッツの信号、ロビッツの信号、信号無しの3通りがあると考えられます。
ロビッツの信号は、ロビッツがグラブセンサーを反応させたときにのみ発生します。
リビッツの信号と同等に扱われ、リビッツのプレイヤー値を上書きしてしまうため、
ロビッツとグラブセンサーを併用する場合は注意が必要です。

オブジェクトに設定されたプレイヤー信号を確認するためには、色を[プレイヤーカラー]に設定したホログラムを接着すると良いでしょう。
回路上のプレイヤー信号を検出するためには、[自分だけ]に設定したスコアギフトに信号を送るか、センサーや回路素子の色を[プレイヤーカラー]に設定します。
デジタル信号がOFF、アナログが0%でない場合は、スコアギフトのインプットの挙動を[毎秒計測]にすると検出できます。