2017年10月30日月曜日

ChatBot(チャットボット) を無料で作れるツール・サービスまとめ

個人で利用できて無料プランがあるチャットボット作成サービスのまとめ。

2018年8月更新時点での無料プランの場合の情報。
2017年11月時点での無料プランの場合の情報。
サービス名ボット数APIコール数インテント数
シナリオ数
エンティティー数
クエリー数
連携
Repl-AI11,000 コール/月制限なし制限なしLINE
Facebook
API
Watson Assistant (旧Conversation)510,000 コール/月10025API
hachidori210,000 コール/月20--LINE
Facebook
Dialogflow集中しなきゃOK無いっぽい無いっぽいGoogle Assistant
LINE
Facebook
Twitter
Slack
Dialogflow Web Demo
Kik
Skype
Spark
Telegram
Tropo
Twilio
Twilio Programmable Chat
Viber
Amazon Alexa(?)
Microsoft Cortana
API
一見すると Dialogflow 一択のようにも思えるが、実際使ってみると会話フロー構築で弱い面がある。
それぞれを使ってみたレビューは以下の通り。

Repl-AI

https://repl-ai.jp/
docomo が提供するサービス。
ドキュメントやエディターはもちろん日本語なので、とてもわかりやすい。
エディターはボックスを線で繋いで作るという仕組みなので、簡単に使いこなせるようになるが、その仕様上、複雑な会話フローや大量なパターンを作ろうとすると破綻しがち。(その状態で整列ボタンを押すと死ぬw)

また、会話フローの条件で or が使えないことも地味に痛い。
単語の抽出(System Entities っぽいもの)は、場所や時刻、金額などが取得でき、特に人名が取得できる点はなにかと便利。
反面、辞書機能は同義語を定義する程度のもので、Entity として取得したりはできない。

LINE と Facebook とは簡単に接続できるが、Web サイトにサクッと載せられるような機能は最上位(Enterprise)プランにしか無い。
(ちなみに最上位プランは桁違いに高いゾ☆)
無料でやるには API で頑張る必要がある。

他のサービスにはない特長として、予め用意されている「知識Q&Aボット」「トレンド記事ボット」「雑談対話ボット」と連携できる機能があり、一般的な会話はそれらを利用することで手間が省ける。
ただし、「雑談対話ボット」はかなりフランクっていうかチャラいw

Watson Assistant (旧Conversation)

https://www.ibm.com/watson/jp-ja/developercloud/conversation.html
IBM のクラウドサービス IBM Cloud (旧Bluemix) 内のサービス。(どんだけ名前変んねんw)
Conversation とプラットフォームを繋げるために別途アプリケーション・サーバーが必要。
LINE や Facebook などに簡単につなげる機能などは一切ないので、API を利用してなんやかんやできる知識が必要。
ただしその分、汎用性は高く、Conversation 開発ツールは非常に洗練されているため、複雑な会話フローにも柔軟に対応できる。
この開発ツールへは、WEBブラウザからアクセスでき、プログラミング知識がなくても扱えるようにできている。(ただし英語)

プロフェッショナルな要求にも対応できる非常に高度なサービスを利用できるという点で、他のサービスとは一線を画する。
あとは System Entities で人名も取得できるようになれば最高なのだが……

hachidori

会話フロー作成ツール上でテストすることはできないので、LINE や Facebook に実際に連携してからでないと動作は確認できない。(連携自体は簡単)
しかし、カルーセルやボタン、スタンプなどを簡単に設定できる機能があり、それらはかなり有用。
また、お店の予約システムに使えるカレンダー機能や、クエリー(Entityのようなもの)の定義も可能。(System Entities は無い)
API は無いがテンプレートという機能を使って外部のシステムと情報のやり取りは可能。

マニュアルはないが、各画面の下部に説明があるので、それほど困ることはない。
対してチュートリアルはあるが、実際の動作を見るには上記の通り LINE や Facebook に接続する必要がある。

特徴であるカレンダー機能や LINE のスタンプなどを利用したいのであれば候補にはなるが、無料版だと制限がきつく Repl-AI に見劣りしてしまうのが難。

Dialogflow

https://dialogflow.com/
旧 Api.ai 。
そもそも無料しかない。 ← Google Cloud にサポートのついた Dialogflow Enterprise Edition が登場しました。
Dialogflow のボット(エージェント)数は GOOGLE PROJECT 依存なんだと思う。
その他、数に制限があるのかわからない。(無いっぽい)

インターフェイスは英語だが、日本語の処理には対応済み。(ただし Intent や Entity の名称には日本語を使わないほうが良さそう)

音楽アーティストなども取得できる System Entities の豊富さと、連携できるサービスの数が他の追随を許さない。
一問一答できれば良いチャットボットならこれで充分だが、それ以上を望む場合にはちょっと力不足なのは否めない。

現状、今回取り上げたサービスで唯一、テキストではなく音声ファイルを送りつけても単独で処理できるサービスでもある。

2017年10月10日火曜日

Webデザイナー・クリエーター・プログラマーが Raspberry Pi を活用するために必要な知識

自分のための備忘録。
間違ってることも自信満々に書いてたりするぞ!
※このページは私が飽きるまで随時更新されます。

電圧と電流

よく水に例えられるが私は「電圧は水の高さ」という例えより(高さって位置エネルギーだよね……それが電圧?)下記サイトの水鉄砲の例えのほうが理解が早かった。
オームの法則 電気の資格とお勉強

電流は決まった量が流れるのではなく、回路に要求される分流れる、というイメージ。
電源側で制御するものではない。

直列と並列(分圧・分流)

電池を直列と並列にした場合や、抵抗を直列と並列にした場合などについて。

電池

  • 直列にすると電圧は足し算。
  • 並列にすると電圧は1個分で、容量が増える。

抵抗を直列

  • 抵抗値(合成抵抗)は単純に足し算
  • 電圧がそれぞれの抵抗値に合わせて割り振られる(入力より減る)
  • 電流は同一量

抵抗を並列

ラズパイの GPIO

扱える最大(?)電圧と電流

以下のサイトによると
第22回 Raspberry PiのGPIO概要 ツール・ラボ
電圧は
  • 読み取り(入力)時は0V~3.3V
電流は
  • GPIOピン1本あたりの最大電流は(入出力ともに)16mA
  • 複数本のGPIOピンを使用する場合、同時に流せる電流の合計は50mAまで
  • 目安としては、制限の半分、つまり8mA
という制限を厳守しないと壊れるらしいです。

プルアップ抵抗・プルダウン抵抗

GPIOへの入力が、HIGH なのか LOW なのかをはっきり(安定)させるための工夫。
まずポイントは「入力は GND と繋いでおけば 0V(LOW)に安定する」という点と、抵抗は「安定させるため」ではなく「ショートさせないため」に付けると考えたほうが合点がいく点。(そのためだけではないみたいだけど…)


使用する抵抗は1kΩ〜10kΩ。
抵抗の値が小さすぎると電流が増えて無駄になる。
逆に抵抗の値が大きすぎると電流が少なくて周りからのノイズによって不安定になりやすくなる。

プルアップ・プルダウン Fグループ電子工作講座
プルアップ 通信用語の基礎知識

ソフト側で内部のプルアップ・プルダウンを利用する分には、上記の理屈は理解できてなくても問題ないので、多少の割り切りは必要だと思うよ、うんw

Raspberry PiのGPIOは起動直後から内部プルダウンされている hnwの日記
GPIO 2 と GPIO 3 のみ 1.8KΩで他は 50KΩ らしい。
なんやかんやで GPIO 2 と 3 をプルダウンされた入力として使うことはできないらしい…らしい…らしい…

電子回路シミュレータ

Tinkercadの回路
旧123D Electronics Lab。要無料ユーザー登録。
見た目がきれいなのは良いが、ショートさせたりしても特に警告がないのでコワイ。
あとキレイに配線しにくい。

最も手軽だが、まあまあバグる時がある。
個人的には視覚的に分かりやすくて助かる。

EasyEDA
設定で日本語化できる。要無料ユーザー登録。使い込むには要課金。

パーツについて

もし「電子回路をマスターしたい」のではなく「ラズパイへ入出力機器(センサー)を付けたい」だけなのであれば、個々のパーツの役割を詳細に把握し、回路を自作するよりモジュールを買ったほうが早い。(電子回路マスターへの道が険しすぎる;)
目的とする処理を電子回路とソフトウェア、どちらで処理させるのが現実的かの見極めが大事。
でも基本的なことは知っておいたほうが良い。

抵抗

電圧とか電流とか下げるときに使う。
いざ購入しようとした時に種類の多さにビビる。
まずは1/4wカーボン抵抗で、100Ω~1000Ω(1KΩ)を適当な区切りで用意しておけばいいかと。
1種類につき10個くらいしか使わないけど、1袋100個入りだったりする。
今の技術なら直接数値を記載することもできるであろうが、頑なに謎の色線で抵抗値を表す初心者キラー。

LED

なぜか初心者は最初にこれをチカチカさせることを推奨される。
これまた、購入しようとすると種類の多さにビビる。
そもそもオマエの使っているその赤いLEDは一体どれだと言いたくなるが、大抵はそんなことまで記載されていない入門書が大半。
実際には足が2本のならば、ほぼなんでもいい。

トランジスタ

このパーツについては以下のページがわかりやすいと思った。
足の並びは ECB (えくぼ)と覚えるのが良いらしい。
これが使えるようになると、電圧や電流の制限が厳しい Raspberry Pi でも、乾電池を使って色々できるようになるので楽しい。
ただしモーターのように大電流が必要になるものへは、パワートランジスタや MOSFET を利用する。

MOSFET(モス・エフイーティー/モスフェット)

トランジスタのように使うみたいだけど、コンデンサみたいな的な働きもしてしまうのでなんやかんやw
トランジスタは電流を流すと電流が流れる仕組みに対し、MOSFETは電圧をかけると抵抗値が下がる仕組み。
4V駆動や2.5V駆動のものを利用すること。
ArduinoでパワーMOSFETを使ってみる その1 日々 ほげほげ 研究所
一瞬ショートしたような状態になるらしいので、ゲートには抵抗を入れておくほうが良いみたい。

リレー

物理的に「カチッ」って音がするのでビビる。
コイルを使っているのでダイオードを逆並列に接続する必要がある。
(切った瞬間にすごい電圧が流れるのを逃がす)
動かすためには大きな電流が流れることになり、ラズパイではあまり使用されないかも。

ダイオード

一方通行にするw
ちょこっと電圧を下げたりもしちゃう。

コンデンサ

電気を貯める効果があり、貯まってくると徐々に直流は通さなくなる。
その特性を利用して、電圧を安定させたい時に使ったりする。
なお、種類多すぎ意味不明(・口・)

セラミックコンデンサ

比較的容量の少ないコンデンサ。
極性(+と-)はない。

電解コンデンサ

LED みたいに極性があるので間違えたらイカン破裂する。

パスコン(バイパスコンデンサ)(デカップリングコンデンサ)という使い方

直流電圧を安定させるために配置するコンデンサのこと。
そういう種類のコンデンサがあるのではなく、コンデンサの役割名。
よく 0.1μF のセラミックコンデンサが利用される。
安定した電源を供給したいものの近くに置くほど効果的。←物理的に近く?回路的に近く?
コンデンサを試す パスコン 始める電子回路
パスコンって何? 電子のおたすけMEMO
ノイズはある種の交流とも言える、そしてコンデンサは交流のみ通す。
なのでコンデンサを GND に繋いでおけばノイズのみ逃がせる。
ということみたい。

三端子レギュレータ

らくらく必要な電圧に降圧してくれるパーツ。
3V 用とか 5V 用とか色々ある。
入力側と出力側に(パスコンとして)コンデンサーを付けて使うのが一般的。
どんなコンデンサーを使えば良いかはモノによりすぎて訳わからんので、先人の回路図を参考にすると良い(爆)

人感センサー・PIR(RIP?)・焦電型赤外線センサー

そもそも色々な呼び名があって混乱する。
初心者はセンサーそのものではなく、センサー付きモジュールを購入すべき。
私が秋月さんで購入した SB412A は配線などがラズパイに近いと、なんらかの影響を受けてしまうのか、1分間隔(または高負荷時)で反応してしまうという不具合が出る。(要調査)

モータードライバ

DC モーターをコントロールしたい時に使う。
トランジスタでリレー回路つくったり逆流防止用のダイオードを配置したりする必要がなくなるので楽。
なぜかサーボモータの時には使わなくてもいいみたい。

圧電スピーカー・圧電サウンダ・圧電ブザー

お手軽に音をならせるパーツ。
電池を繋いだだけで決まった音が出る自励振式(ブザー)と、別途発振回路を必要とする他励振式(スピーカー・サウンダ)がある。
他励振式の圧電サウンダを使ったほうが色々な音階が出せて楽しいw
このパーツ自体が発電機にもなるので、抵抗とダイオードでラズパイを保護する回路を付けたほうがいいって説明書には書いてある。

あと、ホントは交流で使うものらしいのに、なんやかんやで直流でも使える。
なお、自励振式には極性がある。あとかなりうるさい。

ADコンバータ(A/Dコンバータ)

アナログ信号をデジタル信号にしてくれる IC 。
多くの場合、SPI か I2C という通信規格を利用してラズパイとデータのやり取りをする。
分解能という能力値があり、例えば 10bit だとアナログ信号を 0~1023 段階のデジタル信号に変換できる。
デジタルしか入力できないラズパイではよく使うパーツ。

昇圧・降圧について

5V を 3V に下げたいとか上げたいとかのこと。

昇圧

DC/DCコンバータを使う。
リニアレギュレータとかスイッチングレギュレータなどとも言うが、これは変換するための方式の名称。

降圧

ラズパイだとこっちのほうがよく使うかも。
色々方法がある。

三端子レギュレータを使う

最も簡単で安定らしい。
必要な電圧を出力してくれる種類を選べばいいだけ。

ダイオードを使う

ダイオード1個で 0.6V とか 0.7V 下がるので、それをいくつか直列で繋げて理想の電圧へ下げる方法。

抵抗を使う

つまり分圧するということ。
この方法だと降圧した先に繋がるものの抵抗(負荷)も考慮して組む必要がある。
そのため汎用性はなく、電流が変化するような回路には使えない。

プログラミング

Python

ver2系と3系があるけど、3でいいと思うよ。
なんかみんなこれ使ってる。

Node-RED

私はこっち使ってます。
Raspbian に標準インストールされてるけど、肝心な node.js が古いため、ドキュメントの指示通りインストールし直したほうがフルに機能が使えるようになって捗る。
指示通りにターミナルにbashコマンドをコピペして実行すれば、後は勝手にやってくれます。
既存の設定やフローも維持してくれるので安心だぞ。

USB

電源として利用したい場合

そもそも USB からの電力供給は規格で 5V で 100mA~500mA と決まっている様子。(たぶん USB2.0までの話)
ただし、色々なページを見る限り USB ホストへ「これくらい電力使うよ」と申告したりする手続きをしないで、こそーり電源としてのみ拝借する場合は 100mA までに制限しておくのが無難な様子。

USB Raspberrypi.org
USBポートは電源ではありません Dai ISHIJIMA's Page
USB端子から5ボルトを取る方法 作る人(つくるんちゅ)日記

音楽・動画の再生

最初から入っている OmxPlayer を使えば GPU が利用できるのでスムーズな再生が期待できるらしいです。

RASPBERRY PIのオーディオ再生
RASPBERRY PIでビデオを再生する
OMXPLAYER:加速されたコマンドラインメディアプレーヤー

ただし、OpenGL を使用するため Linux 一般で使われている(当然ラズパイでも使われている)ALSA の設定は無視される。
たとえば GUI で音量を変えても OmxPlayer で再生しているメディアには影響がない。

ALSA

Linux でサウンド関係を一手に管理しているものらしい。
ALSA を使用して再生したり録音したり音量設定したりするには以下のようなコマンドを使う。

  • aplay
  • arecord
  • alsamixer
詳しくはググれ。

2017年9月20日水曜日

RPGツクールから自宅のWEBカメラを操作する

気は確かか?とか言われそうですが確かです。

昨今、あらゆる技術やサービスの敷居か下がってきていると感じたので、それらを組み合わせて何かできないかと考えた結果、このようなことになってしまいましたw

本件で使用した主なツールは以下のようなものです。
■ハードウェア
Raspberry Pi 3
■サーバーソフトウェア
Node-RED
■ゲーム作成ツール
RPGツクールMV

いずれも学習コストの低さが売りのツールなので、マニュアルとかを見ればすぐに扱えるようになると思います。
難易度的にも差はないと思うので、既にどれかひとつでも扱えるのなら、他のツールも余裕なはずです。
つまり、もしあなたがツクールでゲームを作れる根性があるのなら Raspberry Pi と Node-RED を駆使した IoT(モノのインターネット)くらい余裕な時代になったわけですよ!(暴論)

ラズパイとウェブカメラと百均のスピーカーとカービィとカービィ

出来上がったモノの紹介

ゲーム内で然るべき操作をすると、自宅のウェブカメラが撮影を行い、ゲーム上でその写真を確認することができます。


実動版を公開しても良かったのですが、Raspberry Pi で他のこともやりたいし、いつまで自宅で動かしてるかも分からないので、サーバー処理だけ除いたモノを公開しています。

とてもよくわかる構成と撮影の流れ

私が渾身の力を込めて描いた構成図をご覧ください。
わ け わ か ら ん w
一応説明いたしますと、インターネットより上が自宅です。
Raspberry Pi がサーバーで、その中で Node-RED が動いていて、ゲームやら画像やらをプレイヤーに配信する、という構成で、ゲームからは以下のような流れで撮影が行われます。
  1. プレイヤーがゲーム内で撮影ボタンを押す
  2. すると、ゲームから Node-RED に XMLHttpRequest で HTTPリクエストが発生
  3. リクエストを受け取った Node-RED が撮影と画像の更新の Linux コマンドを実行
  4. その後、プレイヤーが写真を見るイベントを実行したら、ゲームのエラー表示要素「ErrorPrinter」を利用して画像を表示する
あ、図中のRPGツクールMVとは、RPGツクールMVで作られたHTML5形式のゲームということですよ。念のため。

もうちょっと詳しく

ここからは「おいらもやってみたい!」とかいう奇特な方へ向けた情報をダラダラと提供します。

それぞれどうやって入手するの?

2017年9月現在の情報です。

Raspberry Pi

買いましょう。
ラズパイ正規総代理店のアールエスコンポーネンツと契約を結んだ個人向けの正規代理店の Raspberry Pi Shop by KSY(ややこしいw)での購入をおすすめします。(アフィとか無いから素直にクリックしとけ)
Amazon などと比較しても安いことが多いです。

私は Raspberry Pi 3(5,000円くらい)を使用しましたが、恐ろしく安い Raspberry Pi Zero(700円くらい)とかでも可能なはずです。
初心者はACアダプターなども含まれるセットを買うのが無難です。

流行っているのでネットや本で多くの情報を得ることができます。
でも古い情報には注意です。(OSガー、ニホンゴガー、とかいう問題はもはや過去のもの)
あと、やたらコマンドを打たせたがるページが多いですが、ほとんどの作業は GUI 上でも行なえるので、CLI 恐怖症の人も安心だぞ(ちょっとウソです)

ちなみに公式サイトはこちら(英語が読めない人は Chrome の翻訳機能で頑張れ)

Node-RED

ラズパイの標準 OS 「Raspbian」に、もとから含まれています。
詳しくはこちら→Node-RED日本ユーザ会 : ドキュメント
比較的情報が少ないのがネック。

RPGツクールMV

税別7,980円。買いましょう。
ただし、まれに Steam で 80%OFF とかしているため買い時が難しいですw
詳しくはこちら→RPGツクールMV

ゲーム(ツクール)からどうやって XMLHttpRequest を送っているの?

PNDK_HttpRequest プラグインを利用しています。
◆プラグインコマンド:PNDK_HR clear
◆プラグインコマンド:PNDK_HR send http://sample.com:1880/shoot/
という感じに、リクエストを投げっぱなしにしてるだけです。

どうやってゲーム内に画像を表示しているの?

ぶっちゃけゲーム内じゃないんですよね。
ツクールは元々、エラー表示のために「ErrorPrinter」という ID をもつ <p> 要素が HTML 内に用意されているので、そこに <img> 要素を突っ込んでるだけです。
イベントコマンドの「スクリプト」で直接以下のような javascript を書いています。
【注】このBlogの制約で<>は全角になっています!
var elem = document.getElementById("ErrorPrinter");
elem.innerHTML = "img src='http://sample.com:1880/rpg/www/photo.jpg'";
消すときは以下のようなスクリプトを実行させています。
var elem = document.getElementById("ErrorPrinter");
elem.innerHTML = "";

え?なんでツクール使ってんの?HTML と JS でいいじゃん。

使いたかったからDEATH!

どうやってラズパイからWebカメラに撮影させてるの?

ラズパイに fswebcam パッケージをインストールして Node-RED の exec ノードで fswebcam コマンドを利用して撮影と画像更新を行っています。
こんな感じ("写真を取って撮って保存"のところ)です↓
Node-RED で作ったフロー

ウェブサーバーは?

Node-RED の設定で httpStatic を指定しています。
指定したディレクトリに HTML とか JPEG とかを置いています。
詳しくこちら→ Node-RED日本ユーザ会 : 設定

ちなみに自鯖にはダイナミックDNSを利用

ダイナミックDNS(DDNS)のサービスは mydns.jp を利用しています。
先の Node-RED のフローの"1時間毎にDDNS更新"のところで IP を通知しています。

はんだ付けとかするの?

せーへんせーへん。
USB とか差し込むだけやで。

ポート開けるんだよね?

せやで。
Node-RED の初期設定での使用ポートは 1880 だに。
お使いのネットワーク機器の設定が必要たい。

最後に

べつに何千円もかけて部屋を覗かれるゲームを作りたかったわけではないですよ。ええ。

ラズパイに人感センサーとか赤外線リモコンモジュールとか追加してみたり、Node-RED で WebSocket サーバー動かしてツクールにオンライン要素追加してみたり色々やりたいことがあるので、またなんか作ったら公開したいと思います。


2017年8月25日金曜日

ゲームが作れる!簡単ビジュアルプログラミングツールのまとめ

学校とかでプログラミングを勉強して、ゲームを作りたくなっちゃうお友達がわんさか増えると見込んで、簡単にゲームが作れる初心者向けのソフト(ツール・ゲームエンジン)を紹介するよ!

とりあえずいきなり Unity に手を出して挫折した人にもオススメだぞw

Scratch(スクラッチ)

https://scratch.mit.edu/
[日本語][無料][パソコン(Flash)]

たぶん一番有名で、一番使われているであろうビジュアルプログラミングツール。
完全に日本語化されていて、チュートリアルなんかの使い方説明も充実しているので、初めての人でもかんたん安心!
ゲームの仕組みや作り方を学習するには、うってつけです。

でも、2020年に開発を終了することが決定した Adobe Flash を利用している点が将来的に不安。(このページは2017年に書かれたよ)
たぶん Adobe Air を利用したオフラインエディターが今後の主流になるのかも?
それとも HTML5 化されるのかな?

それと日本語化されているのはすごく嬉しいけど、あまりそのことに慣れてしまうと他のプログラミング言語は英語がベースなので、もう少し本格的なゲームを作りたくなった時に苦労するかも……

Code.org

https://code.org/
[一部日本語][無料][パソコン・スマホ]

マイクロソフトやフェイスブックなどが支援している団体のサイト。
チュートリアルでは(ほとんど)日本語でプログラミングの基本的な概念を教えてくれる。
何かを作る時は「プレイラボ」「アーティスト」「アプリラボ」「ゲームラボ」の中から作りたいもにあったモードを選んで作り始めよう。
ただしブロックが日本語なのは「プレイラボ」と「アーティスト」のみ(2018年4月の時点)なのでゲームを作るには「プレイラボ」を選ぼう。
出来上がったゲームはブラウザでプレイ可能なので、友達にシェアすれば遊んでもらえるぞ。
なお「ゲームラボ」より高機能なツールになるけど、英語な上に本格的なプログラミングが必要になるので注意だ!

プログラミン

http://www.mext.go.jp/programin/
[日本語][無料][パソコン(Flash)]

文部科学省が Scratch(スクラッチ)を参考にして作ったツールとのこと。
なんかやたらかわいくて、楽しくプログラミングの学習ができる。
反面、あまり本格的なゲーム制作には向かない。
あとなぜか Scratch とは逆にブロックを上に積み上げていく方式なのが、他の言語から見てもちょっと不自然……
Flash を利用しているという不安点は Scratch と同じ。

Viscuit(ビスケット)

http://www.viscuit.com/
[日本語][無料][パソコン(Flash)・スマホ(アプリ)]

かなり変わった方法で絵を動かしたりするので、ゲーム作りの勉強としては役に立たない。
そもそも他とはコンセプトが違うようだ
これも学習用ということで、ゲーム制作にはぜんぜん物足りないかな。
ちなみに食べるビスケット(Biscuit)とは文字が違うので注意。

プログル

http://proguru.jp/
[日本語][無料][パソコン・スマホ(ブラウザ)]

これゲームは作れない(/・ω・)/
勉強用だったわ。


「アクションエディター4」

http://omoshiro-game.com/
[日本語][無料][パソコン]

無料で 2D のアクションやシューティングゲームを制作できる Windows ソフト。
プログラムするというより、キャラクターの行動や強さを設定して作る、というイメージ。
画像の規格など、理解しないと使いこなせない部分も多いため、けっこう難しめだけどヘルプ(説明書)をザッと読んでみて理解できそうならチャレンジしてみよう!


RPGツクールMV

https://tkool.jp/
[日本語][有料][パソコン・スマホ(ブラウザ)]

その名の通り RPG を作るのに特化したゲーム作成ツール。
HTML5でゲームを出力できるので、スマホのブラウザでも遊べるゲームが作れるのが特徴!
ニコ動のサービス「RPGアツマール」にも投稿できちゃいます。
一応、ビジュアルプログラミングと言えなくもないと私は思ってるw

しかし1万円くらいするソフトなので、お子様はお年玉のチカラを借りる必要がある。
ちなみに学生には敷居が高いけど STEAM ではたまに半額セールとか(時には80%オフとか)やっているので興味のある人は Twitter でツクール開発部さんをフォローしておくと安くゲットできるチャンスをお知らせしてもらえるぞ。


ティラノビルダー(TyranoBuilder)

http://b.tyrano.jp/
[日本語][無料][パソコン・スマホ]

アドベンチャー・ノベル系ゲームが作れる開発ツールです。
イラストと文章を書くのが好きな人にピッタリなツールだね。
HTML5でゲームを出力できるので、スマホのブラウザでも遊べるゲームが作れるのが特徴!
ゲームが完成したら「ノベルゲームコレクション」というサイトに投稿しませう。

SMILE GAME BUILDER(スマイルゲームビルダー)

http://smilegamebuilder.com/jp/
[日本語][有料][パソコン]

プログラミング不要で 3D RPGを制作できる RPG 制作ツール。
しかし約1万円かつ購入は STEAM からのみと、ちょっと敷居は高め。
興味がある人は、まずは無料体験版を試してみよう。

Stencyl

http://www.stencyl.com/
[英語][無料と有料][パソコン・スマホ]

2D ゲーム作成に特化したゲーム作成ソフトウェア。
パソコンで作って Flash やスマホアプリとして出力することができる、どちらかというとプロ向けのツール。
バージョン3.5.0からは HTML5 に出力することもできるようになるらしいぞ!
でも残念ながら英語だ!

PlayCanvas(プレイキャンバス)

https://playcanvas.com/
[そこそこ日本語w][無料と有料][パソコン・スマホ(ブラウザ)]

まず最初に言っておくがこいつは全然ビジュアルプログラミングじゃない(爆)
3D ゲームをブラウザ上で作って遊べるゲームエンジン。
作成画面は英語だけど、日本ではGMOクラウド社が販売をおこなっているので、マニュアルはひと通り日本語化されているし、作成画面も Google Chrome ブラウザの翻訳機能を利用すれば、そこそこ理解できる内容になるので、結構ハードルは低めなんじゃないかなと思う。
そんなことより 3D ゲームは 2D ゲーム以上に覚えることが多いので、そっちのほうが大変。

MIT App Inventor

http://appinventor.mit.edu/explore/
[英語][無料][スマホ(Android)]

ビジュアルプログラミングでスマホアプリが作れちゃうツールです。
スマホ特有の GPS や 加速度センサーなどを利用したアプリも作れます。
ただしゲーム専用ではなく、色々なアプリが作れるタイプのツールなので、アクションゲームなどを作るのには不向き。
そしてなにより英語だ!
ちなみに Scratch(スクラッチ)と同じくマサチューセッツ工科大学(MIT)が提供しているゾ★



おわりに

なんだかんだでビジュアルプログラミングからノンプログラミング、果ては全然プログラミングが必要なものまで色々と紹介してしまいましたw
Unity と Unreal Engine は本ページの目的とも違いますし、意図的に外しています。

確かにみんなが使っている Unity とかのほうが情報も多いし安心感は大きいと思うけど、どんなゲームでも Unity で作ればオールOKというわけでもなく、作る人の技量や作りたいゲームの内容にあったツールを使っていくほうが、きっと有意義であり効率も良いと私は思っています。

どのツールを使うかより、どんなゲームを作るかのほうが大事ですからね★

2016年12月28日水曜日

ELECOM VRグラス P-VRG03 シリーズのレビュー【スマホ用 VR ゴーグル】

メガネ着用可でピント調節、レンズ間隔調節も可能な一見するとまさに理想的な VR ゴーグルなのですが、使ってみて気がついたことがあるので、まとめてみました。

※公式には、眼鏡を装着した状態での使用はできない、となっているので眼鏡によっては合わないかもしれません。

ダンボール製 VR メガネとは一線を画する雰囲気w

お値段は約3,000円。
正直、2,000円以下で同程度のスペックをもつ VR ゴーグルやメガネもあるので多少お高いと言わざるを得ません。
しかし、店頭で使い比べてみると、目の幅や視力に合わせて調節できる機能、小ぶりな眼鏡なら着用可能なスペース、しっかりとホールドされるスマホ、そして広角で歪みの少ない大型のレンズ、とやはりハコスコや Cardboard のような安価なメガネタイプとは一線を画する使いやすさを感じたので購入してみました。

なかなか充実した機能!
[クリックで拡大]
箱の中身は全部でこんな感じ。

本体と取説(ペライチ)と黒いのは遮光シート
そして特筆すべきはこの底上げ力!( ゚∀゚)

箱の約半分は底上げですw
なんでこんなことしたんでしょうか……
まだ下に何か入ってるのかと期待してしまいましたよ。

まぁ冗談はさておき、いざ実際に使い始めたところ、ある重要な欠点に気が付きました!
それは……





セットしたスマホが操作できねー(爆)





おーまいがぁー、店頭では取っ替え引っ替えしていたので気が付きませんでしたが、一度セットすると画面をタッチするすべがありません;
ハコスコのようにタッチ用の穴が開いてるわけでも、Cardboard のようにマグネット式のボタンがついてるわけでもありません。
そのため、例えば動画を見ようとした場合……
  1. ゴーグルにスマホを仮乗せ(まだ固定しない)
  2. 動画の再生ポチィー
  3. 急いでスマホを固定
  4. さらに急いでヘッドにマウント
という手順になりますナンダコレ。

これだと視点合わせで決定する機能を持つアプリしか快適に使用できません。
それ以外の点には満足しているだけに、この欠点は大きすぎます。

つまりエレコムさん的には、こいつも一緒に買っとけよ!っということなのでしょう。



オノレ ELECOM ハメヤガッタナ(泣)
まぁ買う前に気が付けって話ですね。

ちなみに上記商品、iPhone では動画の再生とか停止のコントロールくらいしかできないのでご注意ください。
android 使っててお金に余裕のある方は買ったらいいんじゃないっすかねハナホジ。

とりあえず、私は本体に穴開けてタッチできる仕組みを組み込めないか思案中ですw
もし成功したら追記します。期待しないでください。

[2017年8月8日いまさら追記]
穴あけではありませんが、android 端末であれば USB 変換アダプターを利用してマウスをつなげれば大方の問題は解決します。
USB 変換アダプターは百均でも売っているので、安価に解決したい方にはおすすめです。

↓こういうやつね。

[追記ここまで]

今回ご紹介した商品はこちら。この記事から買うやついないだろうけどな!



Cardboard やハコスコなどのビューア設定を初期状態に戻す方法

Cardboard はビューア(VR ゴーグル)の QRコードを読み込むだけで設定できるので便利なのですが、『やっぱり最初の状態に戻したい』なんてことも少なくありません。私はw

しかし困ったことにデフォルト(初期状態)に戻す方法が Cardboard には用意されていないようです。
まー、まだ Cardboard 程度なら一度消して再インストールすれば初期化できますが、YouTube アプリなどは面倒くさくてそうもいきません。

そこで初期化用のプロファイル QRコードを用意してみました。
iPhone 5系(s c SE)が対象ですが、iPhone 6 Pro でも最初に近い状態に戻りました。
android などでも利用できるかもしれません。

Unofficial Default for iPhone5

なお、目分量で初期状態を再現したものにすぎないため、完璧に初期化されるわけではないのでご注意ください。

2016年12月26日月曜日

iPhone で VR (YouTube・Cardboard )がずれる場合の対処法(android もOK)

最初 iPhone5s でこんな感じ↓に表示され、おいおいズレまくりやないかーい!と思い、色々と解決方法を探ってみました。

キツネさんがおらん……

ビューア(VR ゴーグル)で見ても映像が二重に見えてしまうという方は、以下の方法を試してみてください。

解決策その1:ビューアの QR コードを利用する

あまりにも基本的なことなので、スマホで VR やりたいとか思う人には説明不要かと思いますが、Google Cardboard の仕様に準拠しているビューアなら取説とか本体とかに設定用の QR コードがあるはずなので、そいつを YouTube やら Cardboard やらのアプリ内の設定(歯車マーク)の「ビューアを切り替える」から読み込ませることで、そのビューアに合わせた表示になってくれます。ふつうはw

こんな感じのやつネ

つーか「こんなことで解決するなら検索しねーよ」という方がほとんどでしょうからサッサと次の考えられる原因とその解決法に進みましょう。

なお、そもそも QR コードなんてない、もしくは無くした、という場合は、このページが便利です。

HYPERGRID BUSINESS の VR ヘッドセット QR コード一覧ページ

オフィシャルからアンオフィシャルな QR コードまで色々あるので、頑張っていい感じのを見つけ出せばいいと思います。
すげーたくさんあるけどがんばれ。

ちなみに、日本で最も広く利用されているであろうハコスコにはオフィシャルな QR コードはないので注意。
つーか、なんでないの?用意しとこうよ。

参考:
Cardboard やハコスコのビューア設定を初期状態に戻す方法

解決策その2:慣れるwww

いや真面目な話、これで解決する場合も多いです。
映像が二重に見えてしまうのは単に目が慣れていない(遠くを見ようとしていない)ことが原因であることも少なくありません。

とは言え、人によっては本当に合っていない場合もあるので、少し慣らしてみたけどやっぱ改善しないという方は、次の方法をお試しください。

補足:
実は冒頭のキツネさん画像も異常にズレているわけではないのです。
ビューアを通すことで↓下図のように見えるのです。


構造上、有効に利用できる画面の範囲は意外と狭く、特に iPhone5 などの画面が小さいスマホほど、この問題はより顕著になります。

解決策その3:自分に合った QRコード(プロファイル)を作成する

正直最も確実でおすすめな方法は、これだと思います。
メーカーが用意した QR コードはあくまで、そのビューアと推奨するスマホでいい具合に見える平均的な設定を行なってくれるだけで、個人の視力や瞳の間隔やらは考慮してくれません。

全部中心で揃ってるのが理想
たとえビューアにレンズ間隔やピント調節機能が付いていても、画面表示もそれに合わせて変更されなければ最適な環境にはできないのです。


そこで、自分にあった設定を記録した QR コードを作成する必要があります。
といっても特に難しいことはありません。
PC ブラウザで下記URLにアクセスし、スマホの画面を見ながら設定するだけです。

ビューア プロフィール生成ツール(え い ご w)

このサイトでは、左右の映像の位置や画角の調整、レンズの歪みの修正などをおこなうことができ、その設定を QR コードとして出力することができます。
つまり自分用のプロファイルの QR コードが作成できます。

極端な変更例ですが、中心点や画角、歪みの修正をおこなうとこんな感じ
どちらも角に視点を合わせていますが、これだけの違いが出ます。
ただしこのプロファイルが有効なのは Google Cardboard SDK を利用して制作されたアプリのみなので注意です。(まぁたいていのアプリはこれ使ってます)

ビューア プロフィール生成ツールの使い方

一見難しそうですが、やってみると簡単です。英語わからなくたってOKです。

1.まずは PC ブラウザでページにアクセス!

スマホじゃだめだよ PC だよ。え?PC ない?m9(^Д^)プギャー

2.今度はスマホでそのページにある QR コード読んでページにアクセス!

なんとこれだけで PC 側で設定変更するとスマホ側で表示の変化を即確認できるようになります!
※スマホを横向きにすると、表示を確認できるようになります。
※早ければ1秒程度で反映されますが、遅い時は数十秒かかります。

なお、もしかしたらこの時にスマホの PPI を入れろとメッセージが出るかもしれません。
お手元のスマホの PPI をググって入力してください。(数値だけ入れればOK)

iPhone の PPI は以下のとおりです。
iPhone 5 326 ppi iPhone 6 326 ppi iPhone 7 326 ppi
iPhone 5c 326 ppi iPhone 6 Plus 401 ppi iPhone 7 Plus 401 ppi
iPhone 5s 326 ppi iPhone 6s 326 ppi
iPhone SE 326 ppi iPhone 6s Plus 401 ppi

3.PC ページの下の方に、色々な設定項目があるので、いい感じにいじるw

Your Company ホントはメーカー名を入れるとこだけど、作者名でも入れておけばいいと思うよ。
ちなみに未記入でも OK です。
Viewer Name ビューアの名前。っていうかプロファイルの名前。
これは分かりやすい名前を入力しておくことをおすすめします。
Primary button type ビューアにどんなタッチ操作機能がついているかを選択します。
None:タッチ操作できない
Touch:指で画面に触れられる
Indirect Touch:マウスとかコントローラでタッチ操作できる
Magnet:Cardboard のように磁石式のボタンがある
Screen to lens distance (mm) 画面とレンズの間の平均距離。
画角などにも影響するので、正確な距離を入力してもいいけど、好みで調整してもいいと思う。
Inter-lens distance (mm) レンズの間隔。ビューア側でも調節できるなら自分の瞳の間隔。
疲れやすさ酔いやすさにも影響するので超絶重要!
だいたい子供は55mmくらいからで大人は65mmという人もいる。
ビューアを覗いて調整する時は、必ず遠くを見る感覚で両目の赤い点が重なるよう調整すること。
寄り目の状態で調整しても意味ないので注意!
Screen vertical alignment ビューアにスマホが、垂直方向にどう装着されるかを選択。
Bottom:下にそろえて装着
Center:まんなかに合わせて装着
Top:上部に合わせて装着
Center を選択しがちだが、多くのビューアは Bottom で作られているぞ。
つまりこういうことだ↓


しかしできるだけ画面は大きく使いたいもの。
特に画面の小さいスマホでは、装着しにくさを犠牲にしてでも画面を最大限に利用できる Center を選択するのもあり!
Tray to lens-center distance (mm) Bottom か Top を選択すると出てくる項目。
ガイドからレンズの中心までの距離を入れるところだけど、これは実際にビューアを覗いて真正面に赤い点が来るように調整するのがベストでしょう。
Distortion coefficients レンズの歪みを調整できるよ。
これも実際にビューアを覗いて調整することをおすすめします。
できるだけ垂直線がまっすぐになるよう調整しましょう。
なお、k1、k2 ともに 0.00 には設定できないので注意!
Advanced viewer parameters クリックすると以下の詳細設定項目が開きます。
 Field-of-view angles 上下左右の視野角を調整できます。
通常 50°以上にするようですが、好みで設定していいと思います。
 Viewer contains some embedded magnets. 磁石式のボタンを搭載しているならチェックボックスを ON にします。
これはアプリに磁石の影響を受ける磁力計を使わないように指示するためです。

入力内容に問題がなければ「Generate profile」ボタンが押せるようになるので押しませう。
すると QR コードが作成されるので、ダウンロードして利用しましょう。
(一度きりではなくアプリごとに読む場合もあるので必ず保存しておきましょう)

慣れれば簡単なのですが、Google さんはもう少し手軽に個人向けな設定変更ができる仕組みを用意すべきだったのではないかと思いますね。