The Forestを始めてみて

標準

数日ほど前、Steamから発売されているThe Forestを購入しました。お値段は1,480円です。現在はオープンベータ版としてリリースされている為、Steamでも「早期アクセス」扱いです。これからの発展が期待されます。

The Forest
The Forest
Price: 14,99 €

Steamのゲーム紹介には以下のように書いてあります。

As the lone survivor of a passenger jet crash, you find yourself in a mysterious forest battling to stay alive against a society of cannibalistic mutants. Build, explore, survive in this terrifying first person survival horror simulator.

意訳すると以下のようになります。

ジェット機墜落事故の唯一の生存者として、あなたは謎の森に棲む反社会的食人族と戦いながら、自分自身を見つけ出します。このサバイバルホラーFPSで建築し、探索し、生き延びてください。

なんか凄い設定ですね・・・取り敢えず、設定は把握したのでゲームスタートです!

ゲームシステム

このゲームでは、森に存在する殆どのオブジェクトを破壊することが出来ます。例えば、木は伐採できるし、散乱したスーツケースはこじ開けることができるし、生き物は狩ることが出来ます。もちろん、食人族も狩ることが出来ます。

そうして、森で採取した素材を組み合わせて色々な道具や建物を建設できます。感覚で言ったらMinecraftのような感じです。また、日数を経るごとに相手のバリエーションが豊富になるほか、生存する森のバックストーリーを楽しむことが出来ます。このストーリーについては、森の色々な場所に手がかりが存在しているので、是非探して見てください。

また、このゲーム特有のキャラクターパラメーターとして、体温・衛生などが存在します。それらを維持しながら生き延びていかなければなりません。

バグ

このゲームの楽しむ要素の一つと言ってもいいほどです。このゲームは冒頭で説明したように現在もベータ版です。なので、ゲームのいたるところに致命的なバグが存在します。例えば、死体をつつけば自分が空高く吹っ飛び、木をストックに置けばそれだけで吹っ飛ぶなどです。バグを探すのも楽しいので、そちらの方も視野に入れつつゲームを進めていけばより楽しいゲームライフを送ることが出来ると思います。

スクリーンショット

ここでは、軽くスクリーンショットを紹介していきます。もちろん、ネタバレはしない範囲でです。画像をクリックすることで、画像のタイトルと拡大しての閲覧が可能です。お楽しみください。

The forest 起動画面

絵面に問題

バグ

棒でつついて飛びました

文明の発達

 

レビュー

ゲームシステムもとても面白く、しかも現在も開発段階なので、これからも様々な機能が増えていくことが期待されます。また、グラフィックも十分綺麗で、バグが垣間見えるものの、木の倒壊やオブジェクトの破壊表現が細かで良いと思います。マルチプレー(というか、マルチープレー推奨です。)にも対応しているため、フレンドとも遊ぶことが出来ます。食人族が棲む洞窟なども点在し、攻略も楽しめます。さらに、このゲームの特有のシステムである、体温・満腹度・衛生なども気にしながら過ごさねばならないので、サバイバルという感じを醸してくれます。

是非この機会に手を伸ばしてみてはいかがでしょうか。

Arduinoで温度センサーを扱う

標準

今回はArduinoで温度センサーを扱うのに挑戦したいと思います。温度センサーとして使うのは「MCP9700E」です。このMCP9700Eは温度をアナログ出力してくれます。
しかし、今回は出力されたアナログ値の大小が分かればいいだけではなく、電圧をなるべく正確に求める必要があります。この点について、詳しく書いていきます。

ArduinoのA/D変換

Arduinoには、入力されたアナログ信号、つまりは電圧の変化をデジタル信号に変換するA/Dコンバーターが内蔵されています。この出力されるデジタル値は、0Vを最小、基準電圧を最大として10bit(210=1024段階)の数値として表現されます。

この基準電圧は、何も設定しなければ5.0Vになり、これが1024段階に分割されるので、分解能は5000÷1024=4.88mVということになります。しかし、これでは大雑把すぎて、もう少し正確な値を読み取りたいという時があります。そんな時には、この基準電圧を変更することで可能になります。以下はスケッチでanalogReference()に指定することが出来る内部基準電圧の一覧です。

analogReference() 概要 分解能
DEFAULT 電源電圧が基準になる。5.0V 4.88mV
INTERNAL 内部基準電圧が基準になる。1.1V 1.07mV
EXTERNAL AREFピンに供給される電圧。0V以上5V以下

AREFピンは、SDAピンとGNDピンの間にあるピンです。ここに電圧をかけることで、基準電圧を変更できます。

MCP9700Eの特性

今回使っていくMCP9700Eは色々な特性があるので、ある程度は把握しておく必要があります。

  • 誤差:±4.0 ℃ (0~70℃)
  • 出力電圧:500 mV (0℃)
  • 温度係数:10.0 mV/℃

以上の情報を利用して、電圧を求めていきます。ただし、このセンサーは電圧と温度が曲線的な関係なので、どうしても誤差が出てしまいます。この点を留意して次に進みましょう。

回路

今回は単純に、温度センサーに電圧を供給し、出力をA0で受け取るのみです。以下にその図を示します。

温度センサー回路図

ただ、プルダウン抵抗は無いと大分出力が不安定になってしまうので、これは必須アイテムです。

スケッチ

前項で紹介した特性を用いて、「電圧 = 温度 ÷ 10.0 + 500」という関係式を導きます。また、デジタル値から基準電圧の変換式を「デジタル値 × 1100 ÷ 1024」という関係式も導きます。この式を使って、簡単にスケッチを書いていきます。以下がそのスケッチです。

float volt;
float temp;

void setup() {
  Serial.begin(9600);
  analogReference(INTERNAL); //基準電圧を1.1Vに
}

void loop() {
  volt = (float)analogRead(A0) * 1100 / 1024; //デジタル値を電圧に変換
  temp = (volt - 500) / 10; //電圧を温度に変換
  Serial.println(temp);
  delay(100);
}

こんな感じです。基準電圧に関する記述はsetup()関数の中に記述します。

考察

上記スケッチで動かすと以下の様な結果を得ることが出来ます。温度センサー

指などで温めると、ちゃんと数値が上がることが分かります。(人によっては下がることも?)