「技術系」カテゴリーアーカイブ

2.0TBのNASを買う

LAN DISK Home HDL-S2.0を買いました。

今まで使ってたNASの容量が500GBだったんだけど、空きが足りなくなってきたので4倍の2TBにしました。500GBで4年くらいもったんで、これでしばらくは大丈夫かな?

増設ではなく置き換えにするので、全データをコピー。8時間くらいかかりました。IPアドレス固定にしてLANに接続。ブラウザ上から色々と設定して準備完了。

このNAS静かで良いね。今までのは常時ファンの音がしてるし、アクセスがあったら「ギュイーン!ガラガラガラガラ…」って感じの音がして五月蝿かったんで、この静音性は感動ものです。あと以前のに比べ、小型化してシンプルな形状になったのも良い感じ。

最初アクセスが遅いかなと思ったけど、キャッシュが効いたのかすぐ問題ない速さになりました。

あとは安定した動作で長持ちすれば言うことなしです。

ゲームエンジン・アーキテクチャ読了

gameenginearchitectureゲームエンジン・アーキテクチャ読み終わりました。アンチャーテッドの開発者が書いた本で、800ページ以上あります。

ゲームエンジンを作るために必要な機能について一通り書かれてます。丁寧に書かれているため、わかり易いです。まぁわからない箇所もあったけど、単に俺の勉強不足か。あと理論が書かれてるだけで、実装方法についてはほとんど書かれてません。

以下自分用メモとして思った事などを…

11.6
アニメーション同士を組み合わせるアニメーションブレンディングという手法でキャラクタの多様な動きをリアルタイムに作ってるんだね。怪我の度合いで動きを変えるとか、武器を構えたまま歩いたりとか。しかし不自然にならないように結構複雑な処理が必要です。

11.7
アニメーションブレンディングした後、さらに不自然なところを直すため、ポスト処理を行います。例として平らじゃない地面に身を屈めて、地面から物を拾い上げるアニメーションについて書かれてたけど、改めて考えると物凄く大変だ。

11.11.5.4
歩いてる時に地に足が着いているように見せるための処理。これもリアルさを考えると重要だね。

12.4.8.7
人が倒れる時とかの挙動の物理シミュレーションをラグドールと言います。確かにやられたアニメーションパターンを全部は用意してられないし、壁とか床とかで動き変わるから必要だね。

12.5.3.2
地形の当たり判定と見た目が違う場合、狭い隙間とかに弾を撃ち込めないというのは確かにと思った。弾を撃つ時だけはレンダリング用のポリゴン見て当たりを判断するのか。

14.4
ゲームワールドのロード方法。一度に1つのレベルを読み込む、狭い空間を通らせてる間に次の広いレベルを読み込むエアロック、ストリーミングで随時読み込むという3つの方法。

14.6.3
オブジェクトとサブシステムの相互依存性。猫を抱いてる人とか、ジープに乗ってる人が持ってる武器の弾倉とか、依存関係大変だ。

一通り読んで思ったのは「無理だw」という事。全ての機能を作る必要はないけど、それでも3Dをやるという事は思った以上に大変なんだね。

今作ってるのは2Dのゲームだからいいけど、3Dゲーム開発する時にはフリーのゲームエンジンを利用させてもらおうかな。ただUnity 3DとかIrrlichtとか色々あるみたいだけど、どれが良いんだろ。

Firefox4.0を導入する

Firefox4.0を導入しました。

21個あるアドオンのうち8個が未対応だったんで、今までメインPCには入れてませんでしたが、幾つかはこの数日で対応したんで、ようやく導入です。

多分もう更新されないであろうアドオンはabout:configのextensions.checkCompatibility.4.0をfalseにして無理やり使います。

Firefox4.0はインターフェースがだいぶ変わりました。まぁ今までと同じにする事も可能なんだけど、せっかくだから左上にFirefoxボタンの付いた新インターフェースを使います。これは縦が広くなるから良いね。必要な機能はツールバーにアイコンで置けばいいのか。

あと売りの高速化が素晴らしい。ページ開く時の引っ掛かりが無くなって快適です。まあ広告ベタ貼りのブログとかは相変わらず重いけど、これは仕方ない。

3.6の時たまにチラついてたThumbnail Expanderが4.0では正常動作してます。これは良かった。結構ストレスだったんだよね。

今のところ不都合もなく良い感じです。

さくらのVPSへ移転する

今まで使ってた共用サーバが、年末から重くて表示できない状況が発生してたので、さくらのVPSへ移転する事にしました。

VPSにはCentOSをインストールして、HTTPだDBだ入れていきました。ほとんど何も入っていない状態だったので結構やること多かったけど、最近はググれば大抵の情報は手に入るから楽で良いね。

仮登録期間が2週間あるんだけど、仮登録中はメールが送信出来ないことを忘れてて無駄に苦労したりw 本登録ボタン押して24時間くらい経ったら、その辺の制限が解除されたけど。

あと昔作った自作システムは絶対パス入れちゃってたり、古いライブラリ使ってたりしたため、細々とした修正も必要でした。

でもまあ、とりあえず問題なく移転できたかな。

最近は全然サイト更新してなかったので、そのうちリニューアルしよう。あとVPSなので、これまで共用サーバでは出来なかったことも試してみたいね。

ゲームコーディング・コンプリート読了

gamecodingcompleteゲームコーディング・コンプリート 一流になるためのゲームプログラミングを読み終わりました。ウルティマシリーズの開発者が書いた本です。この本は図や表がほとんど無く、文字とソースコードのみなので、読むのに結構苦労しました。理解出来ないところも多々あったり…ちなみに800ページ以上あります。

しかし現場の人が書いた本は有益ですね。実戦的なのは勿論、失敗談や他のプログラマの話とかが書かれたコラムが面白い。

以下自分用メモとして思った事などを…

第2章
ゲームアーキテクチャですが、本書ではアプリケーションレイヤー、ゲームロジック、ゲームビューの3つに分けてました。俺は勝手に基底部分なんて呼んでたけど、アプリケーションレイヤーの方がかっこいいねw

第3章
スマートポインタとかSTLとかの説明があるんだけど、そういえば全然使いこなしてないな…そのうちちゃんと勉強しよう。

第10章
「本書の中で、この第10章が最も重要かもしれない」と書かれたゲームのイベント管理。イベントデータの引き回し面倒だなぁと思ってたんで、この章の考え方は参考になりました。イベントデータを持ち歩くんじゃなくて、イベントマネージャに管理させるという方法。確かにこうしないと大規模なゲーム作るの無理だわ。

第11章
Luaを使ったスクリプティング。自作スクリプトでキャラクタの挙動とかを操るのは知ってたけど、今は既存のスクリプト言語を組み込むんだね。

第15章
物理シミュレーションSDKのBulletを統合する方法。Bulletはオープンソースだから、いつか自作ゲームにも組み込んでみよう。

第17章
ゲームAI。3Dゲームもフィールドを線分で構成して経路探索やってるんだね。A*(スター)とか昔やった気がする。自作ゲームにも、もう少しましな思考ルーチン入れないとなぁ。

第20章
C#によるゲームエディタ。C#はGUI作るの簡単そうだな。これもそのうち触ってみよう。

第21章
ゲームのデバッグ。絶対音感を持ったプログラマのデバッグの話は面白かった。

第22章
海外のゲーム会社は時間的に余裕があって、豊富なリソース使って優雅にゲーム作ってるんだろうなぁと思ったけど、そうでもないらしい。1日18時間作業とか、スタッフがごっそり抜けて新会社設立など、日本でも聞いたような話があったり。

3Dの章とかは流し読みしただけだし、他にも理解できなかった箇所とかあるんで、そのうちまた読み返そう。

USB液晶ディスプレイでマルチモニタ

前に取引先に行った時、そこのPCのほとんどが液晶ディスプレイ2枚置いてマルチモニタ化してました。使わせてもらって便利だなぁと思ったけど、ウチの部屋では置く場所がない。

そんな訳でUSBで繋がる小さな液晶ディスプレイを買ってみました。こういうの2年くらい前に流行ってたよね。2年くらい前に見たわ。当時はサイズが4インチくらいだったけど。

買ったのはI-O DATAのLCD-USB10XB-Tです。10.1インチ(1024×600)でタッチパネルになってます。普通にノートPCサイズだから、これ単体でも作業できそうだね。俺はアプリの横幅をどれも1000ピクセルくらいにしてるから、そのまま持ってこれます。

実は最初電源入れた時、メインの液晶に比べて発色が悪いんで、失敗したかなぁと思ったけど、どうも視野角が狭いせいで位置によって極端に色見が変わるみたい。写真ではプリンタの上に載せてるけど、下に置いた方が綺麗に見えるかも。まだ位置調整中。

俺は10個くらいアプリ起動したまま作業する事が多いんで、ウィンドウをそれぞれに分散出来るのは良いです。あとデータとデータの比較がやり易くなるな。

色々試してみます。

AmazonのAPIを修正する

11月9日からAmazonのAPIことProduct Advertising APIの仕様が変更になります。具体的には今まで取れていたレビューが取れなくなり、代わりにレビューへのリンクだけが返されるようになります。

まだ時間はあるけど修正しました。修正と言ってもレビューをIFRAMEに置き換えるだけなんだけどね。PEARのServices_Amazonを使っているので、それを読み込む前に以下のようにバージョンを記述します。

define(“SERVICES_AMAZON_ECSVERSION”, “2010-09-01”);
require_once(“Services/Amazon.php”);

ItemLookup等で取得した連想配列のCustomerReviewsの中にIFrameURLが入っているので、それをページに貼り付ければ完了です。ついでに本の著者関連が変わってたので、その辺も修正しました(CreatorとかAuthorとか)。

しかしレビューが取れなくなったのはSEO的に痛いね。とは言え商品の評価を見たくてぐぐっても、Amazonのレビューが書かれたページが大量に引っ掛かって困ってたってのもあるんで、まぁ仕方ないか。

パソコンが修理から帰ってくる

今月あたまにデスクトップの調子が悪いって書いたけど、結局壊れてしまいました。何度かサポートとやり取りした後、修理に出す事にしました。3年保証でまだ2年半くらいだったから、無償で修理してもらえるし。

しかし、送った1週間後くらいに電話がかかってきて「パソコン落として壊しちゃいました」とか言われたよ。修理に出したのに余計壊れたという…なので壊れてたビデオカード以外に、筐体やら電源やらDVDドライブやら、かなりの部品交換になったよ。白かった筐体が黒くなったし、もう別物と言っても過言じゃないね。

ただ、HDDだけは前のままにと言っておいたので、以前のままの環境で立ち上がりました。HDDもダメージ受けてると思うけどね。アップデートやらウィルスチェックやら、もろもろ作業して何とか通常運用出来るようになりました。

にしても、8月のいちばん仕事が忙しかった時にデスクトップが無かったのは痛かったです。代わりに使ったノートPCが貧弱だったから、結構苦労したよ。

TwitterのbotをOAuthに対応させる

1年くらい前に作ったTwitterのbotですが、当時はBASIC認証を使っていました。しかし今月末でBASIC認証は使えなくなり、OAuthしか受け付けてくれなくなります。なので対応させました。

前はPHPの非公式版Services_Twitterを使ってたのですが、どうもOAuthに対応しないようなので、今回は公式版Services_Twitterを使います。

入れたのは以下のパッケージです。
Services_Twitter-0.6.2
HTTP_OAuth-0.1.18
HTTP_Request2-0.5.2
Net_URL2-0.3.1

とりあえず投稿するには以下のようにします。ほとんどサンプルのまんまだけど。
require_once(“Services/Twitter.php”);
require_once(“HTTP/OAuth/Consumer.php”);
$twitter=new Services_Twitter();
$oauth=new HTTP_OAuth_Consumer($key, $secret, $token, $tokenSecret);
$twitter->setOAuth($oauth);
$status=$twitter->statuses->update($message);

HTTP_OAuth_Consumer()に入れるパラメータはここから登録したり確認したり出来ます。

今回も自動でフォローしたいので、その処理を入れます。ただ処理自体は前回とほぼ同じなので、変更部分だけ。
// フォローしているリスト
$friends=$twitter->statuses->friends(array(“page”=>1));
// フォローされているリスト
$followers=$twitter->statuses->followers(array(“page”=>1));
// フォローする
$result=$twitter->friendships->create($sname);

フォロー済みのアカウントにフォローしようとするとエラーで止まってしまいます。なので厳密にチェックしておいた方が良いですね。

これで9月以降も今までどおりbotが動くようになります。しかしbot放置してたんだけど、いつの間にかフォロワーが500超えてるなぁ。メインのアカウントは170くらいなのに。

パソコンが立ち上がらなくなる(復旧済)

デスクトップPCの電源を入れても起動しない事が幾度かありました。

数回リセットすると起動したんで、まぁ気にして無かったんだけど、遂に立ち上がらなくなる。壊れたか?!

立ち上がらないけど、リセットボタンを押した後に数回ビープ音がする。そういえばビープ音で故障箇所が特定出来るんだったと、ノートPCで販売元のサイトに行ってみると、この旋律はビデオカードの接続ミスらしい。いじってないのに?

しかし、ふた開けてビデオカード挿しなおしたら…起動したよ。

こんな事もあるんだなぁ。ともかく直って良かった。締め切り寸前になって「パソコンが壊れました」なんて言っても、信用されないだろうしねw