【はじプロ】UFOがついてくるプログラム

はじめに

めのねです。

前回のはじプロ記事ではスポイトノードンとマーカー表示ノードンを使ってBGMを切り替える方法をご紹介しました。

今回は「UFOがプレイヤーについてくるようにする方法」をご紹介します。

はじプロとは?

(Nintendo 公式チャンネルより)

『ナビつき! つくってわかる はじめてゲームプログラミング』

2021年6月11日に任天堂より発売されたNintendo Switch用ソフトです。
不思議な生き物「ノードン」同士をつなげてゲームがプログラミングできます。
また、「ナビつきレッスン」モードではとても分かりやすくプログラミングを解説してもらえるので、初心者の方でも楽しくプログラミングが学べます。

プレイヤーの移動プログラム

はじプロの基本中の基本となりますが、まずスティックノードンとヒトノードンをつなぎ、プレイヤーが操作できるようにします。

スティックノードンとヒトノードンがつながっている

ついでにダッシュもできるようにしておきます。

例えば、Bボタンが押されている場合にのみヒトノードンの移動(前後・左右)ポートに入力される数字が大きくなるようにすると、ダッシュができるようになります。

ヒトがダッシュするプログラミング
マッピングノードンの設定

マッピングノードンの出力はんいを1.00〜2.00にしておきます。

こうすると、Bボタンが押されていないときは1.00を、押されているときは2.00を出力するようになります。

マッピングノードンと各スティックノードンを、かけ算のけいさんノードンにつなぎます。

Bボタンが押されていない場合は
〈スティックノードンの出力値〉×〈1.00〉となり、値がそのまま出力されますが、
Bボタンが押されている場合は
〈スティックノードンの出力値〉×〈2.00〉となり、値が2倍になります。

つまり、ヒトノードンに入力される値が増える=ダッシュする!ということになります。

UFOの追尾プログラム

続いて、プレイヤーについてくるUFOのプログラムを作っていきます。

別にUFOではなくヒトでもいいんですけど、UFOがついてきたほうが可愛いのでUFOにしました。

青いUFO
///∀///

プレイヤーについてこさせるには、ヒトとUFOの距離をはかり、その差を埋めるように移動させます。

距離をはかるには、位置センサーノードンを使います。

位置センサーノードン

これをヒトノードン、UFOノードンにれんけつさせます。

位置センサーノードンをヒトノードンとUFOノードンに接続
位置センサーノードンの設定
↑ふるまいの「見える」をオフにしておきます(画面はオフの状態)

ややこしくなりますので、ワイヤーワープノードンを使って整理しておきます。

ヒトの位置のX、Y、Zの出力ポートをワイヤーワープ:入口のX、Y、Zに、

位置センサーノードン出力:ヒト

UFOの位置のX、Y、Zの出力ポートをワイヤーワープ:入口のU、V、Wにつないでおきます。

位置センサーノードン出力:UFO

それから、それぞれのX、Y、Zの差を引き算のけいさんノードンを使って求めます。

〈ヒトの値〉−〈UFOの値〉としたいので、
けいさんノードンの上のポートに〈ヒトの値〉のワイヤーワープ:出口
けいさんノードンの下のポートに〈UFOの値〉のワイヤーワープ:出口

をそれぞれつないでください。

位置センサーノードンとけいさんノードンをつないだ

これらの出力結果をUFOノードンにつなぎます。
わかりやすくするために、またワイヤーワープノードンを使います。

ID(アルファベット)はなんでもいいですが、既に使用しているIDと被らないものにしておきます。

位置センサーノードンとけいさんノードンをつなぎ、ワイヤーワープ:入口につないだ
↑Xの計算結果をAに、YをBに、ZをCにつないだ

それから、UFOノードンの
前後ポートにC
左右ポートにA
上下ポートにB

のワイヤーワープ:出口をつないでください。

(間違えないように!)

計算結果をUFOノードンにつないでいる
イメージ:illustAC_ID:25070861

図のように、
Xが左右
Yが上下
Zが前後

をつかさどっているためです。

完成形はこちらです。

UFOがついてくるプログラムの全容

無事についてきています!

+α

UFOがついてくるようにはなったのですが、ちょっと近づきすぎている感じなので……

一定の距離まで近づいたら移動を止めさせるように調整します。

けいさんノードンを使ったプログラミングもあるらしいですが、今回は「さわっているセンサーノードン」を使ってシンプルにやってみます。

さわっているセンサーノードン
↑私の推しです

こいつをヒトノードンとれんけつさせます。

ヒトノードンとさわっているセンサーノードンをれんけつした
↑可愛すぎん?
さわっているセンサーノードンの設定
↑かたち・おおきさ・何をチェックする?を上記のようにしてください

ヒトノードンとれんけつさせることにより、ヒトを囲うようにセンサー(白い線)がくっついてきます。

さわっているセンサーが見えている状態
↑ふるまいの「見える」をオフにすると白い線は表示されなくなります

さわっているセンサーにチェックするモノ(今回はUFO)が触れた場合、1.00を出力します。

続いて、さわっているセンサーノードンの出力を「NOTノードン」につなぎます。

さわっているセンサーノードンをNOTノードンにつないだ

NOTノードンは、
入力が0.00の場合は1.00を、
0.00以外の場合は0.00を出力します。

つまり、
UFOがセンサーに触れていない場合は1.00を、
センサーに触れていると0.00を出力する
ことになります。

NOTノードンの出力と、UFOの移動プログラミングで呼び出したけいさんノードンを、またかけ算のけいさんノードンにつなぎます。

ヒトとUFOの位置の差×NOTノードン
NOTノードンとワイヤーワープ:入口Nをつないだ
↑Nのワイヤーワープ:入口をNOTノードンの出力ポートとつないでいます

かけ算では0に何をかけても0になるため、
NOTノードンから0.00が出力されている=UFOがセンサーに触れている場合はかけ算の結果は0。

UFOの移動ポートには0.00が入力されるため、動かなくなります。

ちょっと挙動不審ですが、とりあえずプログラムは完成しました!

おわりに

今回はUFOがついてくるようにする方法をご紹介しました。いかがでしたでしょうか。

ここからは余談です↓

前回「(はじプロに)熱中した」とか書いておきながら、やるべきことが山積みで最近全くプレイできていないんですよね……。他のゲームも然り。

やりたいことも挑戦したいこともいっぱいあるのですが、やはりスケジュールの兼ね合いや体力の都合で、どうしても全部の事柄をこなすのは難しいです。

以前の私なら「思い通りにいかないからもう全部やめる!!」と投げやりになっていたと思います(そもそも無茶な計画を立てていたのが原因なのですが)。

しかし、manabyCREATORSに通所してからは、スタッフさんとの面談や会話を通じて
「焦らないでいい、ちょっとずつでいい」という風な考え方に変わってきました。

心なしか、そういう気持ちでいる時のほうがよっぽど作業や制作がはかどっている気がします。

要するに、
「焦らずに目の前のことに集中し、少しずつでもタスクをこなしていく」
っていうのを行動規範に頑張っていきたい!という話でした。

本題に戻りますが!

次回はカメラワークについての記事を書こうかな~と考えています。

(ただ、自分でも理解できているか怪しいくらい複雑な内容なので、時間がかかるか、最悪お蔵入りになるかも…..。)

最後までご覧いただきありがとうございました。

めのね

  • 10
  • 0
  • 14

めのね

2025年8月よりmanabyCREATORSに通所し始めました。 コンスタントにイラスト制作ができるよう頑張ります。 ’02

作者のページを見る

寄付について

「novalue」は、‟一人ひとりが自分らしく働ける社会”の実現を目指す、
就労継続支援B型事業所manabyCREATORSが運営するWebメディアです。

当メディアの運営は、活動に賛同してくださる寄付者様の協賛によって成り立っており、
広告記事の掲載先をお探しの企業様や寄付者様を随時、募集しております。

寄付についてのご案内