【はじプロ】カウンターノードンと時間表示を攻略:つまづきやすいポイントを解説してみた

【はじプロ】カウンターノードンと時間表示を攻略:つまづきやすいポイントを解説してみた

【PR】この記事には広告を含みます。

レッスン2でカウンターノードンが登場しました。

『数えるのが得意なノードン』と説明されています。

カウンターノードン初登場の回
レッスン2「コロコロボール」より カウンターノードン初登場の回

今後フリープログラミングで自作ゲームを作るうえで、最も使用するノードンのうちの1つだと思います。

また、ゲーム内で時間を使ったギミックを作る際に、カウンターノードンを使った時間計算もよく使われます。

タイムを競うゲームは、

ほかの人には負けないぞ!

と競い合いたくなる意欲が湧きますし、制限時間が設定されるゲームは、

操作間違えた!これどうすればいいんだ!?

と、ハラハラ感が出て面白いゲームになりますよね。

今回は、「ナビつき!つくってわかる はじめてゲームプログラミング」(はじプロ)の”カウンターノードン”と時間表示の解説をします。

カウント機能や時間表示はゲームによくある基本的な機能ですので、ポイントを絞って解説します。是非ご覧になってください。

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

  • ナビつきレッスンを何となく進めてしまっていたあなた
  • カウンターノードンをどのように使えるかイメージできていないあなた
  • 自作ゲームに時間を使ったギミックを作りたいあなた

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

  • カウンターノードンは数を数えるノードン
  • 1/60秒ごとに情報は更新される=1秒間で60回の処理が行われる
  • マッピングノードンを組み合わせて1秒を作り上げよう

カウンターノードンとは?数を数えていく役割です

カウンターとは数を数える機能をもつものです。

そのままですが。

しかし、数を数える、といっても、いろいろな数があります。

ゲーム内で取り扱う数の一例

  • 壊したモノを数える
  • ボタンを押した回数を数える
  • 時間を数える
  • 経過した時間を数える
  • 残り時間を数える

などなど・・・

これらの数えかたをどのように再現するか、1つずつ解説をしてみました。

カウンターノードンを使う上で覚えておきたい前提

1/60秒ごとに情報は更新される

過去の解説記事【はじプロ】マッピングノードン攻略:つまづきやすいポイントを解説してみたでも記載していますが、ノードンガレージで設定している処理は、1/60秒ごとに行われています。

ゲーム業界(特に格闘ゲームなど)では、「1フレーム(=1/60秒)」と呼ばれたりします。

例えば、下の図のように、定数ノードンとカウンターノードンをつなげます。

定数ノードンとカウンターノードンの仕組み
定数ノードンとカウンターノードンの使い方

すると、1/60秒ごとに定数ノードンは出力1を投げます。

1/60秒後に定数ノードンがカウンターノードンへ1を渡します。
1/60秒後に定数ノードンがカウンターノードンへ1を渡します。

カウンターノードンはその出力1を受け取ります。

定数ノードンが渡した1をカウンターノードンが受け取ります。
定数ノードンが渡した1をカウンターノードンが受け取ります。

次の1/60秒(2/60秒目)には、さらに定数ノードンは出力1を投げます。

さらに1/60秒後に、また定数ノードンがカウンターノードンへ1を渡します。
さらに1/60秒後に、また定数ノードンがカウンターノードンへ1を渡します。

カウンターノードンはさらにその出力1を受け取り、合計である2を蓄えます。

定数ノードンが渡した1をカウンターノードンが受け取り、カウンターが2になります。
定数ノードンが渡した1をカウンターノードンが受け取り、カウンターが2になります。

これを1秒続けると、カウンターノードンは60の出力を受け取り、蓄えることになりますね。

1秒後には定数ノードンが渡した1が60個あつまり、カウンターが60になります。
1秒後には定数ノードンが渡した1が60個あつまり、カウンターが60になります。

つまり、カウンターノードンへの入力を適切に設定しないと、ビックリするくらい大きな値を短時間でカウントしてしまうことになりかねません。

次の章から順々に覚えていきましょう。

解説:カウンターノードンの使用例

使用例①:モノが壊れたかずを数える

レッスン2「コロコロボール」にて作る、リンゴを数える仕組みと同じものです。

リンゴが壊れると、
ものがこわれたしゅんかんノードンが1/60秒だけ1を出力します

それをカウンターノードンが受け取ります。

リンゴが壊れると、ものがこわれたしゅんかんノードンが1/60秒だけ1を出力します。それをカウンターノードンが受け取ります。
レッスン2「コロコロボール」より、モノがこわれたしゅんかんノードンとカウンターノードン

その後は、次のリンゴが壊れない限り、
ものがこわれたしゅんかんノードンは出力を一切投げません。

これを繰り返すことによって、リンゴが壊れた個数を数えることができます。

使用例①(応用編):ボタンを押した回数を数える

応用編として、カウンターノードンを使うことで、ボタンを押した回数を数えることができます。

このギミックは、レッスン5「謎解きの部屋」で使われています。(さわっているノードンを使っていますが。)

使用例②:時間の表示

②-1:経過時間の表示

「エキサイトレーシング」(レッスン6)にタイムを表示させたいなあ

例えばこんなアイデアを形にすることができます。

どのように実現させるかというと、次のとおりです。

ゲーム画面にタイムを表示させる方法

  • あるべき姿:1秒後に1を表示させる
  • 手段:
  1. 1秒後(60/60秒後)にたまった60を1として表示させる
  2. 1秒おきに1を出力して表示させる

圧倒的に①のほうが簡単なので、①の仕組みを図解付きで解説します。

時間を表示させるプログラミング
マッピングノードンの設定

以上のプログラミングによって、「マッピングノードンの出力」に経過時間が表示されるようになります。
(参考に、カウンターノードンからの出力も表示するようにしました。)

マッピングノードンの出力が経過秒数を表します。

②-2:残り時間の表示

○○秒以内に脱出せよ!みたいなゲームを作りたいときに使うことができます。

基本的な考え方は、こちらもレッスン2「コロコロボール」にて作る、リンゴを数える仕組みと同じものです。

表示したい時間は、

『制限時間』から『経過時間』を引く

ことで表すことができます。

さきほど説明した経過時間の表示のしくみに、『制限時間』と『けいさんノードン(引き算)』を加えればよいだけです。

制限時間と経過時間を引くことで、残り時間を求めることができます。

すると、残り時間の表示を行うことができます。

カウンターノードンと時間表示 解説まとめ

今回は、 「ナビつき!つくってわかる はじめてゲームプログラミング」(はじプロ)のカウンターノードンの解説 を行っていきました。

カウンターノードンと時間表示 解説まとめ

  • カウンターノードンは数を数えるノードン
  • 1/60秒ごとに情報は更新される=1秒間で60回の処理が行われる
  • マッピングノードンを組み合わせて1秒を作り上げよう

これを活用して、ゲームにハラハラ感を加えるもよし残り○○秒になったら演出を変えるもよし、たくさんの活用方法が考えられますので、是非色々と試してみてください。

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

\あわせて読んでね/

コメント一覧

名あり

3.2の手段②は[定数]-[タイマー]-増やす[カウンター]でできますよ。
全部初期設定で大丈夫です。

返信する
名あり

3.3でした。すみません。

返信する
yumarunosuke

>>名ありさん
ご指摘くださりありがとうございました。
確かに[定数]-[タイマー]-増やす[カウンター]でもできますね。
しかもこちらのほうがイメージもしやすく簡単です。
私の頭が硬かったですね・・・。
ただ、プログラミングにおいて正解は一つではない、といういい例になりました。

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

はじプロから次のステップへ
詳細はこちら!
はじプロから次のステップへ
詳細はこちら!