サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
radiumsoftware.tumblr.com
Mage Guantlet スーファミ時代のアクション RPG のテイストを忠実に再現した iPhone ゲーム。愛情がひしひしと伝わってくるというか……本当にあの時代のゲームが好きなんだろうなあと思います。 バーチャルパッドの操作性も良いです。どういった調整がなされているのか分からないですが、かなり操作しやすく出来ていると思います。
Vortex.K - App Store 流体力学を応用した、不思議なオーディオ&ビジュアル体験。 ストックホルムのエフェクト屋さんが作ったアプリ。いかにもな感じですな。 こういうのに $0.99 を払う人は多くはないと思うけども、こういうのが何気なく売られているっていう App Store の雰囲気は好きですよ。
ある程度の規模のスマートフォンゲームを作ると仮定しよう。そのゲームは相当量のメモリを動的に確保する。もしかすると実行中にメモリが足りなくなるかもしれない。その場合は、あの忌々しい警告ダイアログを表示しなければならないかもしれない。あれはゲームにとって本当に忌々しい存在だ。 そこでアプリの開発者は考えた ーー 起動時に大量のメモリを仮に確保し、そののちに開放するという手続きを経ることで、メモリが十分に足りることをあらかじめ確認できるのではないか、と。 Stack Overflow - Handling low-memory start-up situations on iPad devices これは面白いテクニックだ。でも真似してはいけない。 なぜか? スマートフォンのOSでは複数のアプリが限りある物理メモリを分け合って動作している(ページアウトできりゃいいんだけどね)。各アプリは適切な量
日経BP社主催のスマートフォン&タブレット2011冬というイベントに講師として参加してきました。以下はそこで使用したスライドです。 最近の勉強会などでは、既に Unity を使っている方々が受講者となる事が多いのですが、今回はビジネス寄りのイベントということで、Unity を知らない人の方が割合として多かったようです。 こちらもそのような状況を想定していたので、内容もかなり初歩的なイントロダクションとしてあります。
Unity iOS/Android でシステムフォントをテクスチャにレンダリングするプラグインを作成しました。以前作成した実験的なプラグインの改良版です。 GitHub - unity-systemfontrenderer 問題無く動作するよう調整したつもりですが、まだプロダクトでの仕様実績は無く、どの程度安定して使えるか分かりません。 フリーでまるっと公開するのは、ぜひ皆さんに使っていただき、その結果をフィードバックしていただきたいからです。「ここはこうした方がいい」という提案や、「こう使ったら問題が発生した」という報告など、ぜひ頂ければと考えています。
Unity User Meetup イベントで喋ってきました。そのスライドです。 ちなみに、これ↑、 Speaker Deckを使って貼付けています。昨日 GitHub に買収されたことが発表されていた Ordered List 社のサービスです。 同様のスライド共有サービスに SlideShare がありますが、向こうはなんかガチャガチャと騒々しくて……こちらはシンプルでいい感じです。Flash 無くてもいいし。
Major Mayhem (iTunes App Store link) サイドスクロールタイプのガンシューティングゲーム。非常に出来が良いです。 基本的なゲームプレイはオーソドックスながらも、驚くほどにバリエーションがありプレイヤーを飽きさせません。ビジュアルも個性的で美麗。密度の高い演出や、澱みの無いゲーム進行など、とにかく隅々まで手抜き無く丁寧に作り込まれています。 個人的には Unity 製であるというのも注目すべき点です。作り方や見せ方に関して参考になる点が多くあるように思えます。 制作を担当したのはニュージーランドの Rocket Jump というインディー系デベロッパー。同社のブログには Major Mayhem の開発裏話や Unity に対する感想などが記されています。
個人的には次のようなポイントを特に間違えやすいと感じた。 メソッドの引数の型は厳密に型さえ間違えなければいいんでしょ……と油断していると、思わぬ落とし穴にハマる。特に気をつける必要があるのは null 値の扱いだ。 例として Java 側に次のようなメソッドを用意したとする。 bool fooFunc(int x, String y) これは Unity 側から次のように呼ぶことができる。 var str : String = "Hello!!"; javaObject.Call.(123, str); ただし、次のような呼び出しはエラーになる。 var str : String = null; javaObject.Call.(123, str); 変数の型が何であれ null 値では String として扱ってくれないのだ。 UI を使う場合は UI スレッドでUnity のメイン処理
はじめにUnity for Android で自作のプラグインを使用すると、Android 2.3 以降の端末でのみ挙動が不安定になるということがある。それは NativeActivity が原因かもしれない。ここではそのワークアラウンドを紹介する。 本文Android プラットフォームには様々なハードウェアが存在している。アプリ開発者はこれらハードウェアの差異に日々苦しめられている。 ただ個人的な経験の範囲で言うと、ハードウェア的な差異が挙動の違いを生み出す事は多くあれど、それがクラッシュを引き起こす原因になることは比較的少ないと感じている。多くの場合アプリにトドメを刺すのは OS バージョンの違いが生み出す不具合だ。 Android の OS バージョンにおける違いは種々存在する。ただ Unity において最も影響が大きいのは Android 2.3 以降で登場した NDK ベースのア
以前から「Unity で音楽アプリは作れるだろうか?」という疑問を持っていた。音を出す仕組みについては用意されているものを使えばいいとして、問題となるのは BPM と同期する仕組みだ。 簡単に検証してみた。結論としては「何とかなりそう」。試しに簡単なドラムマシンを実装してみた。 Unityで作った簡易ドラムマシン - UniTR-606 この実装では精密な同期を行うためにいくつかのテクニックを使っている。そのテクニックを発見するまでの顛末を以下に記す。 ナイーブな実装普通に Update 内で Time を見てタイミングを検出する。コア部分はこんな感じになる。 function Update() { if (Time.time > nextBang) { Bang(); nextBang += 60.0 / kBpm / 4; } } これを使って簡単なリズムを鳴らすプロジェクトを組んでみ
「人生はとても単純だ。君は何かをする。多くは失敗する。いくつかは上手くいく。君は上手くいった事を繰り返す。もしそれがとても上手くいったなら、すぐに他人が真似しだす。そうしたら君は何か違う事をする。コツは違う事をするという所だ。」
Nest | The Learning Thermostat Nest は「学習する温度調節装置」だ。従来の明示的に温度の指定を行う装置とは違い、ユーザーの指示の内容を記録・学習して、自動的に温度の調節を行なってくれる。例えば朝起きるときは少し暖かめの温度が良いとか、午後は外出するので電源を切るとか、そういったユーザーの好み・行動を読み取り調節を行うよう設計されている。 アイデアの先進性もさることながら「これを使えば自分の生活が豊かになる」と思わせる製品づくりも素晴らしい。ちなみに Nest Labs の設立者である Tony Fadell や Matt Rogers は Apple で iPod や iPhone のスタッフとして関わっていた人物でもある。
GitHub - keijiro/unity-android-textex 諸事情あって Unity for Android 向けのプラグインを書いてみました。システムフォントを使って任意のテキストをレンダリングしてテクスチャ化するというものです。 これを使えば、ゲーム内のデータとしてフォントを搭載する必要もなく、好きなだけ(メモリが許す限り)テキストをテクスチャ化することができます。しかもそのテキストは日本語に限らず、システムフォントが対応している言語ならなんでも扱うことができます。 ちなみに docomo の機種では絵文字の表示にも対応できることを確認しました。 au と SoftBank については未検証です。 技術的に十分な検証を行なっていないため、これをそのまま製品に使うことはおすすめできません。ただ、アプローチとして間違ったものではないと思います。もう少し洗練していけば、恐らく
Android 用にビルドした Unity アプリでは、音が酷く遅延する。実際にどの程度遅延しているのか簡単に計測してみた。このテストアプリは、タッチを検出するのと同時に四角形を拡大しつつ音を鳴らすというもの。収録した映像を見てみると、四角形の大きさが変化してから約 6 フレーム後に音が聞こえている。秒に直すと約 200 msec だ。 複数の機種で試してみると、機種によって遅延量にバラつきが見受けられる。 Android における低レイテンシオーディオの実現方法については検索してみるといろいろ情報が見つかるものの実際のデバイスではどうなっているのか調べてみないと分からない領域があるなど、やたら手間がかかりそうなので手を出していない。 とりあえず言えることは、 Unity Android を使う限りにおいては、ベストの設定をしていても機種によっては酷く遅延が発生するということだ。 追記 こ
長時間露光と iPad を組み合わせた光のアート。イギリスのクリエイティブ・ファーム BERG と電通ロンドンによる作品。 “PENKI” という名前のアプリとして販売もされている。
“Suwappu” は AR 技術を使ったオモチャ。 AR 技術によって人形遊びを拡張するものになるらしい。この人形は上半身と下半身を切り離して交換可能で、上半身によって人格、下半身によって背景が決まるようになっているそうな。 これも BERG と電通ロンドンによる作品。
Kern Type, the kerning game カーニング(文字詰め)をテーマにしたゲーム。カーニングって日本語では地味な要素だけれど、英文では文章を美しく見せるために欠かせない要素だ。このゲームでは、そのカーニングの重要さを、インタラクティブかつゲーム的に学ぶことができる。面白い。
トイデジフィルタを作るために、久しぶりに Processing をアップデートしたところ、「Android モード」なる見慣れぬ機能が追加されていた。ナヌ、いつの間にか Android 対応していたのか! Android モードを使うには、API level 7 のプラットフォーム SDK と “Google APIs” をインストールする必要がある。詳しくはこちら。 実際試してみると、本当にそのままスケッチが Android 上で動いてしまうので驚く。ちょっと動作が重いような気がするけど、それでもなお魅力的だ。 この Android 対応に引き続き、バージョン2.0では Processing.js との統合も予定されているようだ。これは今後の動向も要チェックだ。
そんなわけで、唯一 Unity アプリがまともに動きそうだった中華 Pad こと Fpad を購入したわけですが、約1日間使ってみた感想などを。 まず外装ですが、おそろしくボンヤリとした情報しかありません。 タブレット……ピーシー? うーん、まあ。 中身は本体とケーブルとアダプタのみ。紙の類は一片もありません。 Apple もビビるであろう超シンプルパッケージング。 動作はそこそこ快適。 ARM Cortex-A9 デュアルコアで 1GHz 動作、と書かれているケースがありますが、体感的にそこまでスペック高くないような気がします。ここに書かれているように 533MHz 動作なのではないかと。グラフィクスは PowerVR SGX530 ベースで、そんなにスペック高くありません。ギリで OpenGL ES 2.0 世代な感じ。 メインメモリは 512MB で、そのうち 128MB が VRA
Unity におけるフレームと Update - Unity 入門 書籍「Unity 入門」 のページに追加記事という形で解説を載せました。 Unity における「フレーム」と Update 関数と Time.deltaTime の関係について解説したものです。 こんな感じで、書籍の中では触れることのできなかったトピックについて、ウェブ上で補っていければと考えています。
とは言っても秋葉原ですけど。 諸々の事情があって、 Unity 開発に使える安価な Android 機を特定する必要が生じました。いちばん確実なのは 1ShopMobile 等で販売されているアンロック済み Android 携帯だと思うのですが、これは人によっては敷居が高いです。 もうちょっと手軽な方法があるんじゃないか。例えば秋葉原で安売りされている、いわゆる中華Padってやつを買うとか。 というわけで、秋葉原のaPad専門ショップに行ってきました。 かなり謎な雰囲気のお店。商売っ気が無いというか、全体的にユルいというか……バリバリ買い物するぞ! みたいな気持ちで突入すると軽く面食らいます。フラっと立ち寄るぐらいの心構えがいいのかも。 このお店のありがたいところは、検証用のスペースが用意されているということです。 店内に陳列されている機体を借りて、このスペースで検証することができます。使
cortesi によるウェブセキュリティの大規模調査の途中経過報告のひとつ。ウェブサイトにおけるサードパーティー資源(JavaScript, HTML, Flash 等)の依存関係を視覚化したもの。例えば右下に見える緑色の円は google-analytics.com や facebook.com を表していて、これらの資源は多くのサイトから使用されているため、大きな円で表されている。 この依存関係には地域性がある。例えば中央上辺りの紫色の領域は日本のサイトが構成しているクラスタで、日本の多くのサイトが hatena.ne.jp や microad.jp の資源を使用していることが分かるという。
Soft maximum 関数というものがある。簡単に言えば「なだらかな max 関数」だ。下のグラフのような曲線を描く(角張っているのが普通の max 関数)。 式も簡単だ。次のようなシンプルな式で表される。 softmax(x, y) = log(exp(x) + exp(y)) これをちょっといじくって次のようにすれば “soft minimum” 関数も実現できる。 softmin(x, y) = -log(exp(-x) + exp(-y)) 更にこのふたつを組み合わせれば “soft clamp” 関数も可能だ。 softclamp(x, min, max) = log(exp(max) + exp(-log(exp(-min) + exp(-x)))) ゲームなどを作っていると、とにかく値の変化をなだらかにしたいという場面がよくある。イーズイン・アウトと比較すると使用の機会は
自分の理解できない言語でペラペラと喋っている人を見ると、なんだか妙に早口に感じる。これは日本人以外でも同じらしく、逆に向こうもそう思っているようだ。というかむしろ、英語圏の人が日本人の喋りを聞くと、ものすごいマシンガントークのように聴こえるらしい。 リヨン大学の研究者が面白い調査を行った。世界各地の言語において、音節あたりの情報の密度と、1秒間辺りの平均的な音節数を計測・比較した。 その結果によると、英語の「情報密度」は0.91で、「秒間音節数」は6.19となった。それに対して、日本語の「情報密度」は0.49で、「秒間音節数」は7.84となった。これは英語以外の他の言語と比較しても、低密度で多音節だ。 日本語よりも中国語の方が多音節な印象があったんだけど、どうやらそういうわけでもないみたい。
いくつかポイントがあるような気がしたのでメモ。 ローカルに Jekyll をインストールする最初は無くてもいいかもしれないけれど、使い方が分かってきたらローカルにも入れたほうがいい。 gem を使えばインストールは簡単。 sudo gem install jekyll インストールが完了したら、 jekyll --server --auto のようにしてサーバーモード&自動更新モードで立ち上げる。 localhost:4000 でリロードする度に更新されるので、トライ&エラーが簡単。 markdownレンダラーを入れ替えるJekyll がデフォルトの markdown レンダラーとして採用している maruku は、どうも Unicode の扱いが怪しいらしい。日本語を使っているとフォーマットが崩れることがある。オプションとして選択可能な kramdown に入れ替えることをおすすめする。
GitHubにはGitHub Pagesというホスティングサービスがある。先日公開した『Unity入門』のページも、このGitHub Pagesを使ってホスティングしている。 GitHub Pagesが面白いのは、ウェブページのコンテンツとGitリポジトリが一体化しているというところだ。GitHub上に一定のルールに従ってリポジトリを作成すると、そのリポジトリの内容がウェブページとして配信される。コンテンツを更新するには、そのリポジトリに更新内容をpushするだけでいい。 GitHub Pagesは、単にリポジトリの内容を配信するだけではない。Jekyllという静的サイトジェネレーターを搭載しており、コンテンツに対してスタイルを簡単に適用できるようになっている。例えば『Unity入門』のページはこのようなソースファイル群によって構成されている。これを更新してpushすると、内部でJekyl
書籍『Unity入門』紹介サイト 突然ですが、Unityの入門本を書きました! ようやくいろいろ確定してきたので告知します。10/1にソフトバンククリエイティブより発売予定です。 「Unityって興味はあるけど、まだ触ったことはない」とか「とりあえずインストールはしたんだけと、どこから手付けたらいいか分かんなくてー」とか、そんな感じの人に向けた内容になっています。いわゆるチュートリアル本ですね。 この本では、Unityの諸機能を体系的にまとめるということは敢えてしませんでした。その代わり、ゲームの作例解説をできる限り充実させています。Unityの使い方とは、個々の機能の中よりも、それをどう使うかというノウハウの中にあると考えたからです。それを学ぶには、実際に使う場面を体験していくしかないでしょう。 そんなわけで、とにかくUnityの世界を手っ取り早く体験してみたいと考えている方々におすすめ
Geomelixの制作に使用したツールを列挙してみます。 Unity Pro + iOS ProXcodeCheetah3DPixelmatorKeynoteAbleton Live基本的には、これだけです。 Cheetah3Dは、なんだかんだですごく使えるツールです。正直なところ、僕もここまで多用することになるとは思っていませんでした。 特筆すべきは、Unityとの相性の良さです。UnityはCheetah3Dの.jasファイルを直接インポートできるため、シームレスに作業が繋がります。MacでUnity開発を行う際には必携のツールと言ってよいでしょう。 ※ 直接インポート機能はCheetah3Dがインストールされている環境でしか使えません。他人とプロジェクトを共有する場合は要注意です。 Cheetah3DはMac App Storeで現在8,500円で販売されています。公式サイトからの直
Geomelixの開発期間は約80時間でした。これを早いとみるか、遅いとみるかは、ひとそれぞれかもしれません。ぜひダウンロードして、実際にプレイして判断してみてほしいです。 いずれにせよ、モバイル・プラットフォーム向けのゲーム制作において、定量的な分析の材料になるデータを得られたというのは、ちょっと面白いことだと思います。 フルタイム勤務なら2週間分に相当する、という分析は前のエントリにおいて行いました。これを次のように表すことにしましょう。 2週間でプロトタイプを作る、ということなら珍しくないように思えますが、2週間でユーザーに届けられるものを作れる、というのは、僕にとって新しい可能性のように感じられました。 これを例えば、典型的な「日曜プログラマ」の制作ペースに当てはめてみたら、どうなるでしょう?比較的やる気の高い日曜プログラマなら、土・日にそれぞれ4時間ぐらいずつ、つまり週に8時間ぐ
次のページ
このページを最初にブックマークしてみませんか?
『Keijiro's Dev Log』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く