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

『**ナビつき! つくってわかる はじめてゲームプログラミング**』（英：*Game Builder Garage*）は、任天堂より2021年6月11日に発売されたNintendo Switch用コンピュータゲーム制作ソフト。公式の略称は『**はじプロ**』。

## 概要
ゲーム内容は、『Nintendo Labo Toy-Con 04: VR Kit』内のToy-ConガレージVRを切り出して発展させたものであり、Nintendo Laboには無かったインターネットによる通信機能などが追加された。

『任天堂の開発室から生まれたプログラミングソフト』と題されており、長いプログラムコードを書くコード形式ではなく、ビジュアルプログラミング言語形式を採用。コントローラーの各入力やそれによって行う動作などを司る「**ノードン**」を繋げ、プログラミングを行える。例として、「スティックノードン」と「ヒトノードン」の『左右』を繋ぐと、スティック操作でゲーム内のヒトを左右に動かせるようになる。

## ゲームモード
ゲームモードは大きく分けて2つに分かれており、タイトル画面からゲームモードを選択できる。
### ナビつきレッスン
ナビとノードンが説明や操作を会話形式で教えてくれ、ゲーム作りを体験することが可能となっている。
また、これには7つのレッスンが収録されてれており、さまざまなゲームのプログラミングができる。
; ノードンガイド
: ナビつきレッスンで登場したノードンの機能や使い方をいつでも確認できるガイド機能を搭載している。
; チェックポイント
: 各レッスンの終了後には、プログラミングを使って解くパズルが用意されている。レッスンで登場したゲームプログラミングの考えかたを使ってパズルをクリアすることで、次のレッスンへ進めるようになる。7つのレッスンを終えた後にはエクストラチェックポイントとして50問のパズルが出現する。その中にはレッスンでは登場しなかったノードンを駆使して解く問題もある。

### フリープログラミング
自由にゲームづくりを行えるモード。「ナビつきレッスン」の1つ目のレッスンをクリアするとプレイ可能となる。作ったゲームはインターネット（Nintendo Switch Onlineへの加入が必要）やローカル通信で公開することが可能。公開されているゲームはIDを入力して入手することができる。自分で描いたキャラクターを操作できるようにしたり、絵を描いて背景にしたり、BGMをつけたりすることができる。

## ノードン一覧
ノードンは84種類（フリープログラミングで使用できないものを含むと85種類）。ノードンの1はオン(true)を、0はオフ(false)を表す。

ノードンは1ゲームにつき512個まで使用でき、ノードンによっては個別に使用可能個数が定められている場合もある。

### 入力（にゅうりょく）
基本的にこのノードンに決まった操作をすると出力される。
; 定数ノードン
: 決めた数を出力し続ける。
; ボタンノードン
: 指定されたボタンを押すと1を出力する。
; スティックノードン
: スティックを倒すとスティックを倒す力によって値を出力する。
; タッチしたらノードン
: 　タッチすると1を出力する。
; タッチ位置ノードン
: タッチした座標を出力する。
; ふりノードン
: コントローラーを振ったときの加速度によって値を出力する。
; かたむきノードン
: コントローラーを傾けると傾けた量に応じて値を出力する。
; オモテ面が上を向いたらノードン
: 設定したオモテ面を上にして、どれだけ上を向いているかに応じて値を出力する。
; 回転速度ノードン
: コントローラーを回転させる速さに応じて値を出力する。
; モーションIRカメラノードン
: モーションIRカメラに映ったものの量に応じて値を出力する。
; モノがこわれたしゅんかんノードン
: 対象のものが壊れた時に1を出力する。
; スタートしたしゅんかんノードン
: スタートしたしゅんかんに1を一瞬だけ出力する。
### 中間（ちゅうかん）
基本的に、このノードンに入力されるとノードンが値を変えて出力する。
; けいさんノードン
: 入力された2つの値を四則演算して出力する。
; マッピングノードン
: 入力された値を設定した値に変える。
; デジタル化ノードン
: 入力された値のキリをよくして出力する。
; ルートノードン
: 入力された値の平方根を出力する。
; 絶対値ノードン
: 入力された値が-の場合+にする。
; +-反転ノードン
: 入力された値が+の場合-に、-の場合+にする。
;0から変わったしゅんかんノードン
:入力され値が0から変わった瞬間に1を出力する。
; 位置を角度にノードン
: 入力された2つの値を位置とし、基準の場所からの角度を出力する。
; 角度を位置にノードン
: 入力された値のサインやコサインを出力する。
; 角度の差ノードン
: 入力された2つの値を角度とし、その差を求める。
; くらべるノードン
: 入力された2つの値が=,>,<,≧,≦なのかを調べて正しければ1を出力する。
; ANDノードン
: 2つの値が入力されたら1を出力する。
; NOTノードン
: 0が入力されていたら1を、0以外が入力されていたら0を出力する。
; フラグノードン
: オンに入力されたら1を、オフに入力されたら0を出力し続ける。
; カウンターノードン
: 入力された数を増やしたり減らしたりした値を覚えて出力する。
; ランダムノードン
: 入力されるとランダムの数を出力する。
; タイマーノードン
: 入力されたら指定した時間待ち再度出力する。
; スポイトノードン
: マーカーノードンに重なると重なった量に応じて値を出力する。
; ワイヤーワープ入口ノードン
: 入力された値を同じIDの出口に伝える。
; ワイヤーワープ出口ノードン
: 同じIDの入口に入力されると、同じ値を出力する。
; 自分メモノードン
: 自分の好きなメモを打つことができる。コンピュータにおけるコメントに近い。

### 出力（しゅつりょく）
基本的に、ノードンに書かれていることがプログラミングされているゲーム内で起きる。
; 音を鳴らすノードン
: 入力されると、効果音を鳴らしたり、音量や音の高さを変えることが出来る。
; BGMノードン
: 入力されると、BGMを鳴らしたり、音量や速度を変えることが出来る。
; しんどうノードン
: 入力されると、Joy-Conが振動する。
; 重力を減らすノードン
: 入力された値に応じて重力を変える。
; 時間を止めるノードン
: 入力された値に応じてモノの動きを遅くする。
; リトライノードン
: 入力されると同じゲームをやり直す。
; ゲーム終わるノードン
: 入力されるとゲームを終わらせる。
; ゲーム切り替えノードン
: 入力されると、切り替え先のゲームに変わる。
; マーカー表示ノードン
: 入力に応じてマーカーを動かす。
; ２Ｄマーカー表示ノードン
: 入力に応じてマーカーを指示した方向に動かす。
; ずっとマーカー表示ノードン
: 常にマーカーを表示する。
; 赤外線ライトを光らせるノードン
: 入力されると、モーションIRカメラの赤外線ライトを光らせる。
; パズルクリアノードン
: チェックポイントにのみ現れ、入力されるとパズルクリアになる。
### モノ
基本的に、ノードンに書かれている「モノ」のプログラミングされているゲーム内での指示などをする。
; ヒトノードン
: ヒトを動かしたりジャンプさせる。
; クルマノードン
: 車を運転させる。
; UFOノードン
: UFOを動かす。
; モノノードン
: モノをゲーム画面に出現させる。
; おしゃれなモノノードン
: 色んな見た目のモノをゲーム画面に出現させる。
; うごかせるモノノードン
: 入力された値によってモノを動かす。
; まわせるモノノードン
: 入力された値によってモノを回す。
; のばせるモノノードン
: 入力された値によってモノを伸ばす。
; エフェクトノードン
: 入力されるとエフェクトを出す。
; ことばつきモノノードン
: 書いた文章をゲーム画面に出す。
; 数つきモノノードン
: 入力された値をゲーム画面に出す。
; テクスチャノードン
: 自分で描いた絵をゲーム画面に出す。
; さわっているセンサーノードン
: ノードンに触っているものの数を出力する。
; こわした瞬間センサーノードン
: 対象のモノが他のものを壊した数を出力する。
; こわれているセンサーノードン
: 対象のモノが壊れた時に常に1を出力する。
; つかまれているセンサーノードン
: 対象のモノがてノードンによって捕まれているときに1を出力する。
; 位置センサーノードン
: 対象のモノの位置を出力する。
; 速度センサーノードン
: 対象のモノの速さを出力する。
; 加速度センサーノードン
: 対象のモノの加速度を出力する。
; 角度センサーノードン
: 対象のモノの回転角度を出力する。
; 回転速度センサーノードン
: 対象のモノの回転速度を出力する。
; スライドれんけつノードン
: 対象のモノを平行移動させる。
; フリースライドれんけつノードン
: 対象のモノを入力された値だけ平行移動させる。
; ヒンジれんけつノードン
: 対象のモノを入力された値だけ回転させる。
; ヒモれんけつノードン
: 対象のモノを紐で繋ぐ。
; モノを発射ノードン
: モノを発射させる。
; モノをこわすノードン
: 対象のモノを壊す。
; モノワープ入口ノードン
:対象のモノを消す。
; モノワープ出口ノードン
: モノワープ入口ノードンで消えたモノを出す。
; 引力ノードン
:対象のモノを引き寄せる。
; ワールドノードン
: ゲーム画面の地面の見た目などを設定する。
; ゲーム画面ノードン
: ゲーム画面を決める。
; カメラノードン
: カメラノードンから見える場所をゲーム画面にする。
; カメラ位置ノードン
: この位置がカメラになる。
; カメラ注視点ノードン
: この位置が注視点になる。
; カメラ方向ノードン
: カメラを指示した方向に向ける。
; カメラ画角ノードン
: カメラの画角を決める。
; あたまノードン
: モノをカメラに固定させる。
;てノードン
:モノを掴む。

## ノードンふりかえりカード
パッケージ版とパッケージ付きダウンロード版のみ、ゲームに全84枚の『ナビつき! つくってわかる はじめてゲームプログラミング ノードンふりかえりカード』が同梱されている。このカードは、ノードンの説明・特徴・使い方等が書かれており、「ナビつきレッスン」で使用したノードンを振り返ることができる。また、このカードはマイニンテンドーストアでも販売されている。

## 開発
前述した通り、このゲームのディレクター兼プログラマーの益田直生によると、このゲームの開発のきっかけはNintendo Switchソフト『Nintendo Labo Toy-Con 04: VR Kit』内に含まれるToy-ConガレージVRを一つの商品にできないかと考えたことがきっかけであり、Toy-Conガレージの課題である「つくり方の説明」を解決することが目標だったという。
また、プログラミングに使うノードをゲーム中で「ノードン」とし、顔やキャラクター、性格をつけることとなったのは、ノードンを認識してもらい、覚えやすくするため。

## 脚注

### 注釈

### 補足

### 出典

## 関連項目
* ビジュアルプログラミング言語
* ファミリーベーシック
* ドリームスタジオ - 本作と同じようにノードをつなぐことで様々なゲームを作ることができた。

## 外部リンク
* ナビつき! つくってわかる はじめてゲームプログラミング 公式サイト
* 
*