chaba log2

2013/03/31

スマホ・タブレットにゲームコントローラ

カテゴリー: ゲーム, 開発 — タグ: , — chaba @ 06:14

先日の記事でついにiPhoneにも専用コントローラが公式サポートされるという噂が出ていたけど、これ本当に欲しい。待望。だいぶ前に入れていたInfinity Bladeとかジェットセットラジオとかやってみたけど、やっぱりタッチでアクションをやるのは違和感がある。まあ前者については方向キー移動とかじゃなくてひたすらバトルアクションをフリックとかタップとかでやる感じなのでそれはそれで独特なんですが。しかし過去作を移植したときにバーチャルスティックで操作するというのはどうも気色悪いなあ。…でもゲーム機に親しむ前にタッチパネルが普通になるような若い世代ではコレが当たり前になってきたりするんだろうか。
コントローラという面ではAndroid系のOUYAとかSHIELDとかも普及が気になるところです。あれらは、いちおう普通のAndroidアプリもタッチパネル操作で動くけど、コントローラで操作するには専用アプリということになるんでしょうかね。コントローラ持ち同士で互換があればいいけど、そうもいかないのかな。iOSが対応すればそれらにUnityなどの共通環境が対応することで統一規格みたいなのができれば凄くいいんですけどねえ。さらには同じコントローラを使用時にBTリンクすることでどこでも使えるとかそんな感じになると理想的。
ともかくOUYAやSHIELDを実際に触ってみたいなあ。上述のアクション系をiPad miniでやってみたら普通に重かったので(長時間プレイは無理)、SHIELDなどはその重さも気になる。コントローラにモニタをつけた形だからそれなりに重いんじゃなかろか。
アクションゲームやるにはタッチパネルでは無理という意識がずっとあったのだけど、コントローラが普及すればその認識も変わるのかもしれない。しかしそうなると3DSやVITAの立場がますます危ういことに…?

2013/03/26

貼ってみるテスト

カテゴリー: ゲーム, 開発 — タグ: — chaba @ 20:44

HTML5アプリをWordPressに貼り付ける方法がわからんよーと思ってたけど、そういえばiframeならいけるんだっけ、と思ってやってみたらいけた。
これならflashでもUnityでも貼れるはずですね。iframe最強。でも調子こいていっぱい貼ったらページが重くなるかな。

でもカーソル上下するとゲーム内と同時にウィンドウもスクロールされてしまうのでなんか笑える&わりと気色悪い事態に。iPadとかだとドラッグでのウィンドウ操作抑制はできてたんだけど、キー操作への抑制はどうなってるんだろう。いちおうマウスドラッグでも操作できます…

追記:preventDefault()追加したらスクロールも抑制されました。要するに「イベントのデフォルト動作を拒否する」のね。

2013/03/22

UnityがPSMにも

カテゴリー: ゲーム, 開発 — タグ: , — chaba @ 20:35

http://www.gamer.ne.jp/news/201303220012/
http://news.dengeki.com/elem/000/000/616/616387/

SCEとUnityが提携合意、PS4/3/VITAそしてPSMに対応したUnityを今秋以降に提供。しかも気になるのは「幅広い開発者に対し」提供していくという記述。これはあれですか、できるだけインディーズとかの広域配布を念頭に置いているということでよろしいでしょうか。まあPSM自体がiOSやAndroidの開発・配布環境を念頭に置いているのは自明ですし、その線で行くならPSM向けUnityも当然普通にインディーズというか一般開発者でも使えて当然なんではなかろうか。現状でもゲーム機向けのオプションはあるけど一般には使用法が公開されてませんものね。…って、PSM出力オプションがまた3万円とかなんでしょうか。アドバンスドでは14万とかまたそんな感じ? Unityが4になってからは触ってないのですけど、今その手のオプションがいくらぐらいなんでしょうかね。まーiOSとかも無料じゃなかった(期間限定無料だったときに慌ててとったけど使ってないなそういえば)し、有償化は当然ですかね。あとはまあ、わりとオープンに行きたいような意向を聞いた気がするPS4向けにも。

2013/03/14

Node.js使ってみた4

カテゴリー: ゲーム, 開発 — タグ: , — chaba @ 15:22

race01

第4弾はレースです。そう見えなくてもレースです。各画面中央にいるのが「自機」ですね。画面は回さずに視点が平行移動する、ラジコンみたいな操作系です。
ちょっと趣向を変えて、chrome/firefox/safariと並べてみました。今回はNode.jsよりもjavascriptの実装自体にいろいろ発見というか初めて知ったことがあり、いろいろ勉強になりました。

race02

端末だとこんな感じですが、左からiPhone3GS/touch5G/Nexus7です。iPad miniは撮影係。相変わらず3GSの画面が狭い。なのでいちおう画面下のボタン欄よりちょっと上を触っても反応するようにしています。ボタンは左から左・右・ブレーキ・アクセル。あとマルチタッチもいちおう実装。8台まで接続可能にしていますがそこまで端末が無いので未検証。ブラウザ8枚は並べてみたけど。
コレについてはもうちょっと練り込んだら公開してもいいかなーと思ったりもする。まあパズル同様にソロプレイ限定版になりそうですけど。対戦環境を公開しようと思ったらどこかNode.js対応サーバを借りるか、あるいはご自宅のLANで使ってね!と丸ごとオープンソースにするしかないですわね。なかなかそれも敷居が高い。

2013/03/10

Node.js使ってみた3

カテゴリー: ゲーム, 開発 — タグ: , — chaba @ 21:29

panel01

そんなわけで第3弾は私的には定番中の定番、パズルにしてみました。2台で対戦する形式で、下から上がってくるパネルを繋げて消していき、連鎖すると相手をせり上げる流れになります。画面内に折れ線グラフみたいに描かれているのは相手方のパネルの高さです。見比べてもらえればちゃんと反映しているのが解ると思います。「PANEL VL」では同様の対戦をP2Pで実装していますが、コレはNode.jsが動くサーバが必要ですけどHTML5さえ動けば端末を選ばないのが大きなメリット。それこそiOSとAndroidでの対戦も可能。
左側がiPhone3GS、右側がiPod touch 5Gなのだけど、画面の狭さにより3GS側では最下段の点数などが表示できていませんorz まあこのへんはブラウザで見るのでなくアプリ化してWebViewから呼び出せば対処のしようもあるところです。
最大で8×13のパネルを描くのだけど、とりあえずこの程度の物量であればそれなりに描画も付いて来れるようです。3GSでもさほど問題無し。これをイメージで描いたらまだ解らんけど。ネイティブアプリより動作速度が厳しいのは間違いないですが、このへんもさじ加減次第ですわね。

ここまでの写真には出ていませんけどNexus7でも動作を確認しました。しかし長いこと放置してたので最初は全く電源が入らずちと焦った。それで情報検索してみたら、とにかく長いこと電源ボタンを押せという話だったので純正アダプターでしばし充電してからひたすら長押ししてたら復活して一安心。

せっかくなのでオンライン要素を廃したソロプレイ専用モードを公開してみました。キーボードでもタッチでも操作できます。

2013/03/08

Node.js使ってみた2

カテゴリー: ゲーム, 開発 — タグ: , — chaba @ 21:03

bingo01

そもそもの出会いはKAGOHACKでしたが、Node.jsで何か作れそうとなって最初にイメージしたのはビンゴでした。ディーラーを1つ置いてあとを全部プレイヤーに、と思ってたらもう既に製品化されてた。そりゃそうよねー、私ごときが考えつくネタぐらいもう誰かがとっくにやってますよねーと思ったけど、まあせっかくだからどんなもんかやってみようということで今回のネタはビンゴです。
上図では出現番号を管理するディーラーの上にプレイヤー窓をかぶせています。プレイヤー側の上に小さく並んでいるのが出た数で、いちおう自分のカードに含まれている数字は色分け表示をして開封を促します。これ、自動でどんどん開けていくこともできるんだけど(ていうか現段階では面倒なのでそうしている)、やっぱり自分でぽつぽつ開けていくほうが楽しい…ですよね? まあそのへんはオプション設定とかでどうにでもなりますが。
いちおうビンゴが出たらディーラー側にも通知されます。それとコレ、やろうと思えばディーラー側で出目を決めることも普通にできますわね。もちろん今はランダム抽選ですけど。

bingo02

例によって別端末でもやってる様子はこんな感じに。ディーラーは別のMacで動いており、MacbookAirの上にiPod touch 5GとiPad mini(横置き)を並べています。前回の戦車ネタより縦方向をちょっと詰めたのだけど、これでもtouch5Gの縦長画面でギリギリですのね。もうちょっと表示を整頓する必要がありそうだ。とか言ってて、MBAの画面でビンゴ出てるのに反応してない(色が変わってない)のに気づいた。
あとコレ、LAN内しか想定していないので、外で使おうと思ったらそれなりのWiFi環境が必要ですよね。普通のモバイルルータとかだと接続台数が5台までとかだったりするので、大人数でやろうと思ったらそれなりの環境が必要。まあ上記の製品プロダクトみたいにグローバルに動かすのが一番手っ取り早いですが… ちなみに上図も下図もプレイヤーが3つしか出てませんが、別に台数制限はしてません。ていうか環境次第ってとこですね。

2013/03/07

Node.js使ってみた

カテゴリー: ゲーム, 開発 — タグ: , — chaba @ 13:32

tank001

ここしばらくいじっていたNode.jsがようやくちょっと動かせました。サーバサイドをjavascriptで実装できるもので、手軽にリアルタイムなネットサービスが動かせます。Node.jsにSocket.ioを加えてWebSocketを使う流れです。クライアントにはHTML5が使えるのでいろいろなところで動かせます。
そもそもその存在を知ったのは以前参加したKAGOHACKのときで、対戦ゲーム作りたいけどどうするんですかねえとか疑問を口にしたらその名を教えてもらいました。そのときはいまひとつよく解らなかったけど、ちょっと前に日経ソフトウェアに載ったWebSocketの記事を見て、サンプルを打ち込んでみたら動いた。うっひょーい。これを使えばLAN内の通信プレイがやりたい放題だぜえ!と感動しました。
でサンプル的に作ってみたのが上図で、電源マークみたいなのを戦車に見立てています。iPhoneを想定した320×480の画面で、上の320×320をゲームフィールドとし、下の矩形群はいちおう方向・ABボタンとしてタッチ操作に対応しています。なのでWiFi内のスマホからも操作可能。まあせっかくのHTML5ですし。しかしiPhoneのSafariで読み込むと、上下ツールバーが思いっきり画面を塞いでいるので操作できないorz このへんはまあ調整の余地ということで… iPadでは普通に操作できました。すげえ。
いちおう4台までの対戦としていて、上図では狭いので2台ぶんだけのブラウザ出してますが、4台接続した状態です。公開するにはもうちょっといろいろ体裁を整えないといかんですが、しかしコレでAWSとかに置けばグローバルな対戦も可能なわけですよね。すげえぞNode.js。ありがとう日経ソフトウェア。

tank003

上の図だと同一PC内だけなので、せっかくだから別PCとか接続した図も上げてみる。ちょっと見づらいですが、左側がMacbookAir、右側がその上に載せたiPad mini(横向き)。こんな感じで弾も出ます。MBA側はキーボードで操作。実はまだ当たり判定とか付いてないのでゲームになってないのは内緒。

2013/02/24

PS4の開発環境

カテゴリー: ゲーム, 開発 — タグ: — chaba @ 05:40

http://av.watch.impress.co.jp/docs/series/avt/20130222_589044.html
http://av.watch.impress.co.jp/docs/series/avt/20130222_589023.html

PS4についてSCE側のインタビュー2本。とにかくPS3に関しては開発難度が高いという話はよく聞いていたけど、今回PS4ではそのへんをかなり改善しようという向きらしい。そしてインディーズ向けにも開かれた開発環境を用意したいという意向も示されていて、フリーミアムも有り?のような話に。このへんはAppStoreとかで0円からのアプリが市場にあふれているということも無視できないところなのでしょう。実際、ソフトの価格は$0.99〜$60程度だろうという記事もあるし。
インディーズ云々については既にVITAで展開しているPSMobileのようなことをやってくれるのかな。やってほしいなあ。年間$100ぐらいなら払います。そしてそうなったらVITAや他スマホとの連携もできるようにしてほしい。ていうかPSM(開発環境の場合はまだPSSuiteでいいんだっけ?)との連携を是非。PS3時代にもLINUXの開発環境を入れてインディーズ取り込みという構想があったけど、なんかいろいろ問題になりそうだったからあっさり全削除されたという経緯もありましたね。PSM自体は全く目立ってない昨今ですが、そっち方面でもPS4には期待したい。

追記:SCE吉田氏が、PS4での開発環境について「PS3とPSMobileの中間的なものになればいい」との発言。PSMobile(iOSやAndroidのように、とりあえずツールさえ落とせば開発できる。ストア公開には有償会員登録が必要)ほど開かれているものにはなかなかならないか。PS4だと従来のように高額な開発機の購入が必要で、それはインディーズには敷居が高い。「ゲームやろうぜ」的に簡易APIを提供という形でもできないかな。ハードの限界を引き出すような究極ビルドは一流メーカーに任せるとして、インディーズ的にはとりあえずフレームワークかぶった状態でもいいから最新現役機を触れる環境が欲しいところです。「少なくとも最初は」開発機が必要と言ってるので、環境が整えば何らかの方策が期待できるのかも。
ともかくPSMobileもまだ続ける意向のようだし、PS3のときよりだいぶインディーズ向けが現実的になっている印象です。AppStoreとかの普及も大きいんだろうな。とりあえずPSMobileに慣れておけば訓練になるのかな。

2013/01/25

人工無能

カテゴリー: 開発 — タグ: — chaba @ 04:57

いわゆる人工無能、使用者に応じた自動会話を行うプログラムを試している。そもそもは人工知能というかゲーム内NPCの制御とかをいろいろ検討してたのだけど、とりあえず試しに人工無能ってどんなもんなんでしょうねと。
どこを調べても出てくるのが形態素解析とマルコフ連鎖で、これらを実装すればそれなりに文章っぽいものができる。形態素解析については要するに単語ごとに分解するもので、これ面倒だなあと思ってたらMeCabとか有名なオープンソースライブラリがあるらしい。さらにYAHOO!デベロッパーネットワークにWebAPIが用意されていて、いろいろ制限はあるけど普通に使えそうだからこれを使ってみることに。マルコフ連鎖は単語の前後のつながりを辞書として記録していってその連鎖により文章を構築していくもので、辞書が増えるほどそれらしい文章が作れるようになります。
そんなこんなでいちおうローカル(MAMP上)では動くようになりました。自分のこのブログを辞書として登録していったらなんか自分の言い回しをそれっぽく意味不明な文章にしてくれてなかなか気味悪いですw しかしマルコフ連鎖を1語だけでやってたら意味不明の気色悪さが半端ないので2語でやるようにしたらちょっとマシになった。でも同じ文章から作る辞書でも2語のほうが容量も処理時間もだいぶ増えます。私のやった範囲では容量で1語の3倍ぐらいに。今1語辞書が1300語、2語が4000語弱ぐらいの辞書量になってるけど、こうなっているだけで辞書追加に結構な時間がかかってしまう。こうなってくると会話自体もリアルタイムに学習していくってのはなかなか厳しいかなあ。ある程度貯めこんでおいて一気に学習するってのがいいのだろうか。そのへんがある程度目処をつけられたらオンラインで公開するかもしれません。もうちょっと辞書も強化したいし。1語で1万ぐらいいったらそれなりに会話できるんだろうか。
しかし他の人工無能とかいくつか見ましたが、「うずら」とか凄いみたいですね。

2012/11/03

XPERIA SX 生産終了

カテゴリー: 買い物, 開発 — タグ: , — chaba @ 05:42

いいかげんドコモ回線をAndroidにしようかとは常々思っていたのだけど、なんとなく見て回ってたらXPERIA SXいいかもなーと思ったりしていたら、突然ドコモのラインナップから消えた。どういうことかと思ったら10月末で生産終了なんだとか。8月登場夏モデルだったみたいだから3ヶ月で終了か。まあ機種の入れ替わりってこんなもんなんでしょうけど、ちょっと寂しい気もする。あとは店頭在庫だけってとこですか。まだモックアップも触ってないのでどうなんだろうなあ。小さいのは魅力だど。以降はAXが引き継ぐみたいだけど、小さかったSXよりちょっと大きくなるらしい。防水防塵は加わるみたいけど、実際どの程度大きくなるんでしょうかね。このへんは実際に手に持ってみないと何ともですな。
XPERIAにする理由は明確で、PS Mobileの実機に使えるのと、nasneの転送に使えるのと。まあソニーファミリーというかPSファミリーの機能充足に加わって貰いたい感じですね。XPERIAに限らないところではテザリングでXiも使ってみたい。外でAirとか使うのはたまにしかないけど、たまに使うときに重いままだとどうもねえと。あと最近やっぱりIDEOS使い続けるのはどうなんだろうとも思えてきたりしたので。ついでにまともなAndroid端末もいいかげん確保したいってのもあります。Android端末ではNexus7も激しく検討中なんだけど、iPad miniとモロかぶりなので躊躇気味。動作確認端末としてはもちろんそれぞれ用途が確立してるんだけど、それ以外の通常用途としては世間的にライバルと目されるぐらいでかぶりまくりですし。タブレットが複数あれば、資料とかいろいろ開いて置けるマルチディスプレイも可能かもよ!?とか言い訳を考えたりもしていますが。

« 新しい投稿古い投稿 »

Powered by WordPress