【初心者向け】『ナビつき! つくってわかる はじめてゲームプログラミング』マッピングの役割を解説してみた

はじプロ解説

お疲れ様です。YUmarunosuke(ゆうまるのすけ)です。

今回は、「ナビつき!つくってわかる はじめてゲームプログラミング」 (はじプロ)の”マッピング”の解説をします。

「はじプロ」のことを知らない方は、是非過去の記事をご覧ください。

リンク:【親子向け】プログラミング教育の救世主?Nintendo Switch「ナビつき! つくってわかる はじめてゲームプログラミング」発売!

リンク:【レビュー】『ナビつき!つくってわかる はじめてゲームプログラミング』は”問題解決能力”を伸ばすことができる良ソフト!

レッスン3でマッピングノードンが登場しました。

『入力された数を違う数に変換するノードン』と説明されています。

しかし、“イマイチどこで使うか分からない”と思ったことありませんか?

この記事では、どの場面で使えるかを書いていきたいと思います。

ノードンガイドに説明があるかもしれませんが

  • 早くサッと確認したいあなた
  • 一から理解して学びたいあなた

是非ご覧になってください。

この記事はこんな人に読んでもらいたい

  • ナビつきレッスンを”何となく”進めてしまっていたあなた
  • “マッピングノードン”をどのように使えるかイメージできていないあなた

この記事を読めばこんなことがわかる

  • マッピングノードンを使用するべきシチュエーションは以下の2つ
    • 小さすぎるシグナルを大きくしたいとき
    • 大きすぎるシグナルを小さくしたいとき
  • 出力される値の範囲はノードンによって2つに分類される
    • 0~1の範囲しか出力できないノードン
    • 0~1より大きい(小さい)値を出力できるノードン 
  • マッピングノードンの前後のノードンが、どのような値の範囲を必要とするか把握しよう。

マッピングノードンを使用するシチュエーション2選

マッピングノードンを使用するべきシチュエーションは次の2つに分けられます。

  • 小さすぎるシグナルを大きくする
  • 大きすぎるシグナルを小さくする

では、自分がやりたいことがどちらのシチュエーションに値するか、理解する必要がありますね。

ノードン別のシグナルの大きさは次の2つに分けられます。

0~1の範囲しか出力できないノードン 例
  • A / B / X / Y / L / R / ZL / ZR ボタンノードン
  • L / Rスティックノードン
  • ふったら / かたむけたら / まわしたらノードン
0~1より大きい(小さい)値を出力できるノードン 例
  • タイマーノードン
  • カウンターノードン
  • 位置を角度に/角度を位置に/角度の差ノードン
  • ランダムノードン

では、マッピングノードンを使用するシチュエーションを具体的に示してみます。

マッピングノードンの使用例

①小さすぎるシグナルを大きくする

前提として、うごかせるモノノードン(直方体)をX軸方向に動かすシチュエーションで考えます。

あるべき姿:モノノードン を 0m位置 から 2m位置 へ Lスティックを操作して 移動させる

Lスティックを倒すと、Y+(モノノードン)が移動します。

スライドれんけつノードンをつかっていますが

今回はマッピングノードンの説明に注力します。

れんけつノードン・ヒンジノードンを使う基礎になります。

マッピングノードンを使わない場合のプログラミング画面は下記のとおりです。

マッピングノードンを使わない場合のプログラミング画面

ゲーム画面で操作すると下のとおりになります。

目一杯スティックを倒したのに、1m位置までしか動きませんでした。

1m位置までしかモノノードンが移動しませんでした。

これは、Lスティックノードンから出力されるシグナルの最大値が1であることが原因です。

Lスティックを目一杯と倒すと1が出力されます。

そして、モノノードンが1を受け取り、”1m”と認識して、1m位置まで移動します。

これらの情報から、“モノノードンを2m移動させる”ためには、

モノノードンが2を受け取る

つまり、Lスティックの出力を1→2にへんかんする

という作業が必要になります。

次に、マッピングノードンを使った場合のプログラミング画面は下記のとおりになります。

マッピングノードンを使う場合のプログラミング画面

ゲーム画面で操作すると下のとおりになります。

目一杯スティックを倒したら、2m位置まで動きました。

ちゃんと2m位置までモノノードンが移動しました。

シグナルの流れをプログラミング画面で確認すると、

シグナルの流れ
  1. Lスティックを目一杯と倒すと1が出力されます。
  2. 出力された1がマッピングノードンに入力されます。
  3. マッピングノードンが1を2にへんかんします。
  4. へんかんした2を出力して、モノノードンへと入力されます。
マッピングノードンを通すとスティックからの入力1が2になります。

ちなみに、定数ノードンとけいさんノードン(かけざん)を使用することで同じことができます。

けいさん(かけざん)ノードンを使用する場合

ただし、使うノードンとワイヤーが1つ増えることが欠点です。

複雑なゲームを作る際はノードン・ワイヤーをたくさん使いますので、
1つでも節約できれば、作りたいゲームを完成しやすくなります。

ただし、間違いということではなく、再現すべき “あるべき姿” が達成されていれば正解なのです。

お子さんがどのようにプログラミングをされていても、
“あるべき姿”を達成できているなら、是非褒めてあげましょう。

②大きすぎるシグナルを小さくする

レッスン3を改めて復習しましょう。

あるべき姿:時間が経つにつれてゲーム画面がゆっくり右に移動する

画面スクロールの仕組みは次のとおりです。

画面スクロールの仕組み
  1. タイマーノードンが出力し続ける
  2. タイマーノードンから受け取った値をマッピングノードンが変換する
  3. 変換した値を出力し、ゲーム画面ノードンに入力する。
  4. 受け取った数値分ゲーム画面を移動させる

レッスン3の途中にも失敗例として体験しますが、マッピングノードンを使わない場合は、
上記の仕組み2 “タイマーノードンから受け取った値をマッピングノードンが変換する” がありません。

すると、スクロールがとても早く、ビューーーーーーンと画面が移動してしまいます。

あっという間にUFOは置いてきぼりになってしまいます。

これは、タイマーノードンが1/60秒ごとに1ずつ出力を増加させるため、
出力を受け取るゲーム画面ノードンは 1/60秒後に1m動きます。

1秒後には60m動きます。とても操作できないですね。

そこで、マッピングノードンに数値を変換してもらいます。

マッピングノードンの設定画面。マッピングノードンに入力された60を1にへんかんして出力する。

つまり、マッピングノードンがタイマーノードンから 60 を受け取ると、
1 に変換してゲーム画面ノードンに出力
します。

すると、
マッピングノードンがない場合は、ゲーム画面が1秒間に60m移動していましたが、
マッピングノードンを入れると、ゲーム画面が1秒間に1m移動する
設定になります。

入力値を送る側のノードンと、
入力値を受ける側のノードンが、
それぞれどのような値を必要とするのか、

ちゃんと把握していきながらノードンをつないでいってください。

まとめ

今回は、「ナビつき!つくってわかる はじめてゲームプログラミング」 (はじプロ)の”マッピング”の解説をしました。

  • マッピングノードンを使用するべきシチュエーションは以下の2つ
    • 小さすぎるシグナルを大きくしたいとき
    • 大きすぎるシグナルを小さくしたいとき
  • 出力される値の範囲はノードンによって2つに分類される
    • 0~1の範囲しか出力できないノードン
    • 0~1より大きい(小さい)値を出力できるノードン 
  • マッピングノードンの前後のノードンが、どのような値の範囲を必要とするか把握しよう。

マッピングノードンの考え方が使えるようになると、様々なノードンをつなげられるようになります。

制作できるゲームの幅が広がりますので、是非何度も読んで身に着けてください。

他の解説記事も合わせて読んでいただけると嬉しいです。

では、次の記事までごきげんよう。

コメント

タイトルとURLをコピーしました