シグナルを反転する
- By: Gabacho
- カテゴリー: Dreams Universe, 操作メモ, その他TIPS
- Tags: Dreams Universe, ドリームズユニバース

今回のテーマはシグナルを反転させることです。プラスならマイナスに、マイナスならプラスに変換します。
そんな処理を一体どういう時に使うのかというと、FPSゲームなんかの視点移動が代表格です。コントローラーのスティック操作の上下を反転させるとか、左右を反転させるなんていうオプションが、いろんなFPSゲームについています。
と、いうことで、シグナル反転の方法をご紹介します。
NOTゲートを使う
いきなり残念なご報告ですが、この方法はスティック操作の反転には使えません。なぜかというと、OFF(0)がON(1)になってしまうからです。
とりあえず、NOTゲートを使った場合のインプットとアウトプットの関係をまとめます。
インプット | アウトプット |
---|---|
0 | 1 |
1 | 0 |
0.1 | 0.9 |
-0.1 | -0.9 |
100 | 0 |
-100 | 1 |
このように、NOTゲートはON/OFFシグナルを前提にした動作をしていることが分かります。(関連記事、シグナルとパルス)。
OFFがONになる。これをコントローラー操作で考えてみると、スティックを触っていないのに、全力で倒している扱いになるということです。また0.1は-0.1になってほしいところですが、実際には0.9となります。そんなわけでスティックの入力反転には使えないというわけです。
とはいえ、ロジックを作ろうとすればON/OFFシグナルを反転させる場面はたくさん出てきます。NOTゲートは結局大活躍しますので、日頃から感謝の気持ちを忘れないようにしましょう。

NOTゲートは右下で圧倒的な存在感を放っています。
カルキュレーターで-1を掛ける
一番理解しやすいと思うのがこの方法です。0なら0、100なら-100、-100なら100にしたい……だったら-1を掛ければ良いじゃん、というだけの話です。
この方法を思い付いたのは良いものの、反転する/しないを切り替えようとした時、ワイヤー接続がぐちゃぐちゃになってしまったという人がいるかもしれません。ということで、つなぎ方の一例を紹介します。
たとえばこんな感じです。

ワイヤーをつなぐ時に「ノード」をはさんで、そのノードの電源制御をします。これで片方のワイヤーだけが生きるようになります。
※Rスティックの値が本当に反転してるか知りたい場合、スプリッターを通してX、Yの値をチェックしてください。
※ノードをこのように使う場合、ノードの手直しメニューで「ポートなし」を選択しておきましょう。そうすればマイクロチップに入り口、出口が作られなくなります。
シグナル操作マシンで反転する
筆者は前段の「-1を掛ける」で満足していたんですが、Mm公式「FPSの素(テンプレート)」にてシグナル反転ロジックを発見しましたのでご紹介します。
シグナル操作マシンの手直しメニューを開くと、「インプットを反転」というモードがあります。「これか!」と思うのは早計です。これでは結局、OFFシグナルはONシグナルに反転されてしまいます。
使うのはおとなり(一番右側)の「リマップをカスタム」というモードです。これは波形を自分で調整できるという優れものです。
これを調整することでシグナルを反転させることができます。さらに「キーフレーム」と組み合わせることで、反転する/しないを簡単に切り替えられるようになります。その手順は次の通りです。
- シグナル操作マシンを配置して、「リマップをカスタム」を選択
- 「キーフレーム」を配置
- キーフレームの記録モード中に、さきほどのシグナル操作マシンの手直しメニューを開く
- 波形の下端にある「0.00」の太いラインを「-1.00」まで下げる。太いラインは左右に分かれているので、両方「-1.00」まで下げる
- 波形の右側にカーソルを持っていくと表示される、「アウトプットを反転」をONにする
- キーフレームの記録モードを終了する

ななめの線は、「キーフレームの再生時にこうなりますよ」という意味です。
数値のプラスマイナスは反転しつつ、「0は0」のままにする、という設定のできあがりです。
この方法の優れているところは、反転する/しないの切り替えが簡単なところです。キーフレームに電源を入れるかどうか、それだけです。

ちなみにシグナル操作マシンの「アウトプットのスムージング」はお好みで調整してください。「FPSの素」では0.1秒が設定されています。
自由に作れるのがドリームズユニバースの楽しいところ……とはいうものの、今回ばかりは、シグナル操作マシンとキーフレームの組み合わせが、一番スマートかもしれません。