ゲームセカイ
ゲームセカイ

ゲーム攻略やプレイ日記、レビューがメインのブログです。

はじめてゲームプログラミング 「自動ドア」の作り方

『つくってわかる はじめてゲームプログラミング』で、「自動ドア」を作る方法についてのメモです。

「モノノードン」を特定の方向に移動・固定する「スライドれんけつ」や、「モノ」が触れているかをチェックできる「さわっているセンサー」は、ゲーム内のギミックを作成する際に、便利なノードンです。

今回は、キャラが近づくと横方向にスライドする、「自動ドア」を作ってみることにします。

はじめてゲームプログラミング 自動ドア

「スライド連結」の設定方法

まずは、「自動ドア」の右側のパーツから作成していきます。

「ヒトノードン」や「カメラノードン」の基本操作に関しては、省略します。
 

プログラム画面で、「直方体」を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」でセンサーの出力値を反転させれば、「ヒトが近づくと閉じるドア」になったりと、少し手を加えるだけで、違った用途にも利用できそうです。

スポンサーリンク