はじめてゲームプログラミング 「自動ドア」の作り方
『つくってわかる はじめてゲームプログラミング』で、「自動ドア」を作る方法についてのメモです。
「モノノードン」を特定の方向に移動・固定する「スライドれんけつ」や、「モノ」が触れているかをチェックできる「さわっているセンサー」は、ゲーム内のギミックを作成する際に、便利なノードンです。
今回は、キャラが近づくと横方向にスライドする、「自動ドア」を作ってみることにします。
「スライド連結」の設定方法
まずは、「自動ドア」の右側のパーツから作成していきます。
「ヒトノードン」や「カメラノードン」の基本操作に関しては、省略します。
プログラム画面で、「直方体」を2個と、「スライドれんけつ」の「Xスライド」を呼び出しましょう。
用意するノードン | 分類 |
---|---|
直方体 | モノ |
Xスライド | モノ |
「直方体」の一つは、固定された「壁」として使用します。
設定画面を開き、「ふるまい」の「見える・当たる」以外を、OFFに。
「Xスライド」の「下の連結ポート」と連結します。
もう一方の「直方体」は、横方向に動く「ドア」として使用します。
設定画面を開き、「ふるまい」の「見える・当たる・動く」だけを、ONに。
「れんけつ面」を「自分:X+ 連結先:X-」に変更します。
こちらは、「Xスライド」の「上の連結ポート」に連結します。
「ドア」の大きさは、今回の作例では、X(横幅):2m に設定しておきます。
Y(高さ)は、好きなサイズで構いませんが、「壁」と揃えます。
Z(厚さ)の値は、「ドア」を「壁」より小さく(薄く)した方が、それっぽい雰囲気に見えそうです。
これで、「ドア」を、スライド移動させる準備が整いました。
ゲーム画面では、「壁」の左側面と、「ドア」の右側面が、繋がった状態になっているはずです。
センサーで開く「自動ドア」の作成方法
次は、「センサー」を設置して、「ドア」がスライドするように修正を加えていきます。
プログラム画面に、「さわっているセンサー」を追加します。
追加するノードン | 分類 |
---|---|
さわっているセンサー | モノ |
「さわっているセンサー」の出力を、「Xスライド」の入力ポートに接続しましょう。
センサーの形は「直方体」、出力するタイミングは「さわっていたらずっと」の設定です。
「何をチェックする?」の項目は、「ヒト」のみを選択。
「ヒト」が「ドア」の前に立ったらセンサーに触れるように、X方向だけでなく、Z方向の位置・サイズの調整も重要です。
センサーの横幅(おおきさ・X)は、「ドア」2枚分の、4m に設定し、「ドアマット」を敷くイメージで、ドア付近に配置します。
これで、一応は、「自動ドア」が機能するようになりました。
ただし、ゲーム画面で「ヒト」を操作すると、「ドア」は中途半端にしか開かないはずです。
「さわっているセンサー」は、何もなければ「0」を、チェック対象の「モノ」が触れると、「1」を出力します。
現状では、「Xスライド」に送られる値が「1」になるため、「ドア」が、1mしかスライドしません。
そこで、プログラム画面に、「定数」と「けいさん (×)」を呼び出します。
追加するノードン | 分類 |
---|---|
定数 | 入力 |
けいさん (×) | 中間 |
「さわっているセンサー」と「X スライド」の接続を解除し、「けいさん(×)」の入力ポートに繋ぎ直します。
「定数」は、「ドア」の横幅と同じ「2」に変更し、「けいさん(×)」の、もう一方の入力ポートに接続。
そして、「けいさん(×)」の出力ポートを、「X スライド」の入力に繋げます。
センサー反応時、「X スライド」に「2」が送信されることで、「ドア」が完全に開くようになったはずです。
これで、「自動ドア」の右側が完成しました。
左側も、基本的には同じ作り方になるので、右側のパーツをコピーする方法が簡単です。
ただし、左右が逆になるため、いくつかの項目で、設定を変える必要があります。
まず、左側のドアの「れんけつ面」は、「自分:X- 連結先:X+」になります。
また、左ドア用の「定数」は、「-2」に設定します。
「さわっているセンサー」に関しては、左右で同じものを共用できます。
左右の壁・ドアの位置を調整すれば、「自動ドア」の完成です。
今回は、連結に「Xスライド」を用いましたが、「Yスライド」に変えれば、シャッターのような縦にスライドする動作になります。
センサーをドアの手前だけに設置すれば、奥側からは開かない動作になる他、「ロジック」の「NOT」でセンサーの出力値を反転させれば、「ヒトが近づくと閉じるドア」になったりと、少し手を加えるだけで、違った用途にも利用できそうです。
[ はじめてゲームプログラミング ]