昔の最近の出来事(2010.03)

2010/03/31

早めに帰着。

もそもそとコーディング。

2010/03/30

早くも無く遅くも無く。

タブレット入力の取得方法を探ってみたり。WT_PACKETメッセージを使う 方法で、ひとまず座標や筆圧などを得る事はできたのですが、マウス関係の メッセージとどうやって同居させれば良いのかが、まだよく判っていなかったり。

とっかかりとして、GTK+のソースコードを参照しました。gtk+-2.18.9のソース の中のタブレット初期化コードを数行ずつD言語に置き換えながら得られる値など を見ていたのですが、ある条件の時には、そのデバイス番号からの情報取得を スキップするようなコードが入ってました。ところが、そのコードを実行してみると、 全てのデバイス番号がスキップされてしまうような結果となって、あれぇ?と思ったり。 少し古いGTK+のソースを見てみるとそのようなコードは入ってなくて、どうやら うまく動かないケースがあったので修正の為に追加されたコードのようでした。 でも、試した限りでは 全く初期化できてない動きとなる為、多分うまく動かないように思います。 ここで気づいたのですが、InkscapeのVer0.47でタブレットがうまく認識されないバグが あるのですが、もしかしてGTK+が原因なのか?と思ったりも。

2010/03/29

早くも無く遅くも無く。てか、今日さむっ!

4/1に公開されるPS3のファームウェア Ver3.21では、PS3の全機種において 「他のシステムのインストール」メニューが削除されるらしい。Ver3.00で 薄型以降は無くなったメニューだったのですが、セキュリティの脆弱性に 起因する問題に対応する為の選択だそうな。ファームアップデートをしない という選択肢を残しているようですが、アップデートをしないと 事実上PS3として使う事はできなくなる(これから出るゲームは動かないかもよ?とか PS®Networkへのアクセスはできないよ?など)感じのようです。
オープンに展開していたのは今までに無い画期的な(と個人的に思う)事でしたが、 まぁしかた無いですね。例えば、USBに接続された外付けのHDDに対して のインストールやブートを可能にして、本体内蔵のHDDは存在すら見せないように するなど、なんとかやりようは無いのかなぁ?とも思いますが、もう2年くらい PS3-LinuxをブートしてないTANEに、あまり強く主張する権利は無いかも知れません(^^;

もそもそとコーディング。

2010/03/28

昼前起床。

先週、散財で買ってあった「サマーウォーズ」を観たり。 それにしても、なんでBlu-ray版は特典付きのしか無いんじゃー!
さておき、色々と急展開があって面白かったです。観終わった後で、「んー?結局 花札で勝敗決定?!」 とか細かい事は気にしないのが正しいのでしょう。

もそもそと実験コーディング。ほったらかしにしてあった、OpenGLで画像表示するプログラムを いじってました。エディットに対してどんなもんかを見るのに簡単な描画機能を入れてみた のですが、何か劇的に良くなるという事は特に無いかも。敢えて挙げるなら、ビデオカードの メモリ内にテクスチャが収まっていれば、ぐりぐり回してもCPU時間は全然消費されない 事くらいでしょうか。しかし、ブラシ描画とか編集に対するレスポンスには一切関係ありませんので、 改善されるポイントが的外れという感じかも。

[OpenGLで画像表示]

因みに、2000x2000pixのキャンバスを128x128pixのテクスチャに分割して16x16枚のポリゴンで 描画しています。

2010/03/27

起きたら午後もいい時間。

もそもそと実験コーディング。

homeで上映している「イヴの時間」の最終話を観たり。一応本編は全話観たのですが、 一回だけ最後のコメント映像の終了前にラウンジ移動した事があった為、それは 観ていないことになってたり。なのでリワードは無し(^^;
全話通した感想。人と見た目の区別が付かない様なアンドロイドが居る世界という事 でしたが、見た目の区別が付かない割には、アンドロイドに対する扱いがヒドいなぁ という感じにも思いました。結局最後は物でも愛着って沸くよね?みたいな事に落ち着いた のかなぁ?と思ったりも。
イヴの時間の最終話では ロボット工学三原則 の第一条に沿った反応を行った感じでした。そういや「2001年宇宙の旅」のHAL9000は、 第一条よりも第二条を優先した(モノリス調査は船員に秘密厳守)結果、船員を殺害するという 思考に至っていました。HAL9000が第一条を優先していた場合、どうなってたのかなぁ?

2010/03/26

早めに帰着。

もそもそと実験コーディング。

2010/03/25

早くも無く遅くも無く。

ちょろり実験コーディング。ふむー。

あ、そういや今日で本へっぽこのページは10周年を迎えました(^^; 毎度見てくだすっている 方々には深く感謝いたしますm(_'_)m 特に10周年記念みたいなのはありませんが、 そのふにゃふにゃっぷりが本ページという事で、これからもよろしくお願いします。

2010/03/24

早めに帰着。

ちょろりコーディング。なんとなく思い通りになった気も。

寒くて横になってたらいつの間にか寝てたり。

2010/03/23

早くも無く遅くも無く。

少し思い出し。

2010/03/22

昼前起床。

少しInkscapeの使い方についてWeb検索してみたり。今はなかなか良い感じに使い方を 紹介したページが存在しているようです。

「ホッタラケの島」のオーディオコメンタリーを観たり。試行錯誤しながら絵を作った ようですが、実際の作画作業を行った人はコメンタリーに参加していないようだったので、 エクスマキナの様に「ハトのレンダリングが何故か重い」ような感じの話は出てこなかった かも。以下キーワードだけ。「モーションは全て手付け(モブも)」「コットングッズがバカ売れ」 「最初ホッタラケのキャラがグロかった」「電子ブロック」「スタッフ200人以上」 「上映前倒しで本編無しで宣伝」「音付けが終わった後に絵が変わる」。 日本のアニメーション映画ではいつもの事なのですが、制作期間や制作費については 良くわからず。因みに「カールじいさん」の制作費は170億円規模らしい。
2009年は、サマーウォーズとかヱヴァとかが派手に宣伝されていたので、それに埋もれて しまった感が無くもありませんでしたが、日本でもこういうのを作れるんだってのには 驚いたかも。今後も続けてもらって、日本人がこの路線を極めるとこうなるってのが見てみたいなと思うのですが、 オーディオコメンタリーでは、あんま次があるような感じに話をしていなかったのは残念かもなぁと思ったりも。

散財で買った「EAT LEAD マット・ハザードの逆襲」 (URLが面白いなぁ)をちょっとだけやったり。 TPSタイプのシューティングゲームなのですが、キャラクターや舞台の設定がなにやら 面白そうだったのが気になっていたので買ってみました。操作性はあまり良く無い 気がするのですが、ノリで作ったと思われる(と勝手に想像)割には、かなり良く出来ている という印象です。アンチャの操作に似ているのは気のせいなのか、一般的なFPSはこういう 操作系なのかは良くわかりませんが、ちょっとやれば直ぐに馴れる感じです。 その割には一番簡単なレベルの序盤で結構死にまくってますが(^^;
ところで、発売元はD3パブリッシャーなのですが、D3Publisher of America というアメリカ 現地法人の子会社がオリジナルで、それを日本語にローカライズしたという感じらしい。 開発ゲームスタジオはヴィシャスサイクル というD3パブリッシャーの関連会社のようです。ゲームの立ち上がりではロード時間がありますが、 ゲーム中はロード待ちはほぼ無しでシームレスに進行するし、死んでも速攻でコンティニュー できるしで、かなりこなれているように感じました。海外のゲームスタジオは力があるなぁと 感じてしまいます。
日本では、ハイデフ機向けのソフト開発には金がかかると言う意見もあるようですが、果たして お金だけの問題なのかなぁ?と思ったりも。この理論だと、今世代(PS3/Xbox360)はそれで通したとしても、 確実にハイデフが普通になっている次世代でも作れないって事にならないのかなぁ?と思ったりもします。

2010/03/21

昼過ぎ起床。

ちょろりヨドバシで散財。そういや、PS3用の地デジチューナー&レコーダーキットであるtorneが 完売してました。ある程度は出るだろうなとは思ったのですが、売り切れるほど出るのは意外 だったかも。
TVCMでは番組表の快適さとか表示のスピードとかを強調してますが、他にもいくつかポイントが あるのかなと思います。個人的にはゲームをしながら録画ができるという点が、最も大きいポイント だと思います。これまでだとTV視聴時間とゲームプレイ時間は排他になるのが常識だった訳ですが、それを PS3+torneだけでシリアライズできる(つまりゲーム中でもTV録画できるので ゲームを止める事を 強要されない)点が、今までに無かった事なんじゃないかな?と思う訳です。これがもし出来なければ、 「TV録画が始まる前にゲーム止めなきゃいけないの?面倒臭いなぁ....」みたいな感じに なるんじゃないでしょうか。 TV視聴時間とゲームをプレイ時間をうまくシェアできるようにする事で、 ゲーム機としても自滅しないという一線を保っているのが絶妙なバランスのように思います。
でも、(現時点では)PS Home起動と録画は同時にできないらしい点は片手落ちだよなぁと思ったりも(^^; homeって結構重いことをやってそうってのはあるかと思いますが、多分普通の人ならば「えー?なんで?」 って思う所かも。

散財購入した「ホッタラケの島」を観たり。全部3DCGという訳でなく、手描きの背景を そのまま合わせたりしてて、良い意味で日本的な感じがしました。そうすると、3DCGと合わせた 時にキャラクターが浮いたりするように思うのですが、あまり違和感を感じる事はありません でした。どうやってたのかオーディオコメンタリーが楽しみです。ストーリーは、まぁ普通。 ホッタラケの住人は狐かと思いきや、全く別の生き物って設定は面白かったかも。

2010/03/20

昼前起床。

OpenGLをバックエンドにしたcairo(以降OpenGL-cairoと呼びます)と、 GDIをバックエンドにしたcairo(以降GDI-cairoと呼びます)とで、 違いを見てみたり。興味深い点は、GDI-cairoだとCPU負荷のかかる描画でも、 OpenGL-cairoではCPU負荷が全然かからない場合があるようです。これは、OpenGLの Shaderあたりをうまく使って、完全にOpenGL内でレンダリングできている為と 推測します。どのような場合においてもOpenGL-cairoはCPU負荷がかからないのかと いうとそういう訳ではなくて、描画するプリミティブによってはGDI-cairoと 変わらない場合もあるようです。OpenGL-cairoではどのような仕組みで CPU負荷をGPUに分散しているのかが、イマイチよく判っていないのがアレですが、 OpenGL最適の効くプリミティブをうまく使えば、高速化が可能な予感がします。 GDI-cairoと同じくらいの使い勝手になってくれると良いかもなぁと思ったりも。

2010/03/19

早めに帰着。

wgl用バックエンドのリンクの続き。cairo-1.9.6ではコンパイルにlibtoolを使っている のですが、

$ make
  CC    cairo-analysis-surface.o
  CC    cairo-arc.o
  CC    cairo-array.o
  :

みたいな感じでしかコンパイル時の実行結果が表示されません。この為、コンパイルオプションを ちょっと変えてみたり、-Eでincludeファイルの展開状態を調べたりしたいのですが、 どういうコマンドラインを実行しているのかが判らず、どうにも調査がはかどらなかったり。 configureを使うと長いコンパイルコマンドが出て邪魔な感じもしますが、逆にここまで何も情報が出ないのは やりすぎのような気も。どうやればコマンドラインを表示するモードにできるんだ?

どうにか調べがついてなんとかリンクできたり。ひとまず簡単な絵はレンダリング できるようですが、ちょっといじるとSegfaultでずっこけたりして、どうにも 不安定な予感。恐らく、cygwin用ライブラリとmingw用ライブラリとを混在してしまっている TANEのせいだろうと思われますが(librsvgはglibなどのビルドの手間に起因してcygwin用 のライブラリをリンクしてるのですが、openglとかWindowsに由来するライブラリを 使う為に手動でdefineを指定してmingw用コードが活きるようにしてたりするので)。

2010/03/18

早くも無く遅くも無く。

glx用のバックエンドのソースコードを元に、wgl用のバックエンドを書いてみたり。 コードを書くよりも、Makefileに組み込むのが面倒臭かったり、リンクがうまくいかなかったりと、 つっかかり中。

2010/03/17

早めに帰着。

Linuxの方でcairo-1.9.6を--enable-glで野良ビルドしてみたり。 エラー無くビルドできたのですが、OpenGLのウインドをXで開く方法が判らなかったり(^^; ちょっと検索してみたのですが、GLUTを使う例しか見当たらず。あれぇ? Linuxならもっと色々コードがあると思ったのに。

眠くて死亡。

2010/03/16

早くも無く遅くも無く。

どうも英語が読めていなかったようなのですが、cairoの開発版スナップショットの中に、 OpenGLのバックエンドが含まれていそうというのを知ったり。1.9.6っていうのをダウンロードして cairo-gl-surface.cというソースを眺めてみたところ、gl_*を直接使ったコードになっている ようでした。どういう部分をOpenGL化してるのかまでは良くわかりませんでしたが、 ビルドを試してみよう。

試してみたところ、つっかかり所満載でした(^^; まず、glewの上に乗っかっているようなので、 glewをインストールしておく必要があります。freetype関連とかXlib関連でエラーするので、 configureで片っ端からdisableしまくって、エラーするソースを少しだけ直してビルド完了。 で、問題の使い方なのですが、これまたGLXの上に乗っかっているようで、ここで行き詰まり。 コンテキストをどうにかしてブリッジするか、 cairo-glx-context.cというソースを参考に Windows用のコードを自前で用意するしか無いような気がします。因みに、 「cairo_gl_surface_create」でWeb検索しても、日本語のページは一切ひっかかりませんでしたので、 棘の道が保証されていそうです(^^;

Linuxの方で実験した方が良い気がしてきたりも。

2010/03/15

早くも無く遅くも無く。

librsvgを試してみたり。svgファイルをlibrsvgで読み込んで、cairoにレンダリングした後、 PNGファイルに出力する簡単なコードをCで書いて実験。 ところが、ヘッダファイルの依存関係が驚くほど面倒臭くてあれこれインクルードパスを 足す必要がありました。ライブラリもglibの上に乗っかって いるので、何をリンクすれば良いのかが直ぐに判らなかったり。取り合えずリンクに成功。 で、Dを使ってGDIにcairoレンダリングするコードに更にlibrsvgのファイル読み込みを追加 してみたり。なんとなくうまくいったり。DからCの関数を使う場合、 例えばハンドラを返すCの関数がポインタでハンドラを返すものであれば、 ハンドラの構造を全て書く必要は無く、int型をaliasするくらいで大丈夫だったりします。 この為、あれやこれやヘッダパスを追加する必要はありません。楽チンではあるものの、 例えばハンドラの状態を返すような関数を、ハンドラの構造体のメンバーを取り出すマクロで 実装してあったりすると、困ったことになります(^^;

んー、でもglibの上に乗っかっているのは面倒臭いなぁ。

2010/03/14

起きたら午後もいい時間。

CairoのWebページを見ていたら、「Using cairo with OpenGL」 なるコンテンツページがあったり。どういうものかと思い見てみた所、どうやらCairoでレンダリングした イメージデータを、OpenGLでテクスチャとして使用するというものみたいでした。 描画自体をOpenGLのプリミティブ(Triangleとか)で行うといった物の話では無いみたい。
サンプルはSDLベースだったりGTKベースで書かれていたので、先日入れたVMware上のfedoraで コンパイルを試してみたり。それにしても、Cubeの各面に動的テクスチャとしてCairoで レンダリングした画像を張るのはまぁ判るといて、Cairoのレンダリング結果の表示だけの目的で OpenGLを使うってのはアリなのかなぁ? SDLだと2Dのピクセルベースの画像バッファをレンダリングする機構を持ってないんだっけ?それなら なんとなく判りますが。

2010/03/13

昼頃起床。

PPCツールとgdcをどうにか入れ終わったり。以前、Fedora6とかを入れたときに、 こんなに色々ハマッたかなぁ?と思ったりもしたのですが、前はインストールし終わる までに色々ハマっていたので、環境整備ではまってた事が相対的に気にならなかっただけかも(^^;

plinkを使ってMeadowからVMのリモートマシン上のファイルを編集していたところ、 セーブ時に何故かエラーが出てうまくセーブできなかったり。 なんでも「Incoming packet was garbled on decryption」なるエラーメッセージで、 パケットが文字化けしているとか。サイズの大きなファイル(せいぜい150kbyte)だとダメで、 数kbyteの小さなファイルなら大丈夫という感じ。ssh(sshd?)のバージョンとplinkのバージョンの相性に よって発生する既知問題のようで、繋ぐ時間が長くなる(ファイルが大きいとダメなのは そこに起因)とダメっぽい。Webで検索してみたのですが、バージョンを変えたら大丈夫になったとか、 いわゆるトホホ系の直し方しか見つからず。 PuTTYのFAQを見てみると、「sshの方がバグっているのだ」と主張しているようです。

あ、VMwareがどんなもんかを見るのだけが目的だったのに、大幅にその目的を外れてしまった気が。

2010/03/12

消防設備点検対応の為、AMで切り上げ。

「ヒマラヤほどの消しゴム一つ 楽しい事を沢山したい」。最近良くTVCMで聴くのですが、 意味は良くわかりません(^^;;

home。なにやらVer1.35にアップデートされていたり。ラウンジ移動メニューがXMB風な 感じに変わっていたり。リワードもメニューパッドで確認できるようになりましたが、 カテゴリ分類されていないので見づらいです。ラウンジ間移動でこころなしか待たされ感が無くなった気も。 そんな感じですが、まだまだベータの冠は外せないようです(^^;

実験でVMware(player)を入れてみたり。VMware的には正式サポート対象では無いようですが、fedora12を 入れてみたり。ネットインストール用のISOイメージが見当たらなかったのでライブCDから入れてみたのですが、 これだと全く用事になるツールが入っていなかったり。 しかたないので、ppcのクロスツールやらgdcを入れてみる過程で必要なパッケージツールを順次組み込む事にしてみたり。 ところが、思った以上に色んなものが入っていなくてつっかかりまくったり。うーむ、面倒くさい。 それにしても、初期インストールでgccが入っていなかったのには衝撃を受けました(^^;こんなLinux誰が使うんだ?(笑

2010/03/11

早くも無く遅くも無く。

どうやら、cairoにはSVGをサーフェスとして読み込んでレンダリングする手段が無いらしい。 librsvgなるライブラリを使えばcairoに表示できるみたいな例があったのですが、 それはlibrsvgでSVGファイルを読み込んだものをピクセルベースのイメージバッファにレンダリング して、そのピクセルデータをcairo上で表示するというものなので、厳密に言うと ベクターデータのままcairoで表示する訳では無いようです。
SVGはXMLをフォーマットにしたファイルなので、XML読み込みライブラリを使えばSVG読み込み できるんじゃね?と思い、phobosの std.xmlクラスを使ってみることにしたり。 所が、例題プログラムをコンパイル&実行すると Segfaultでずっこける実行ファイルが 出来上がったり。うーむ。
XMLチェッカーがダメで、パーサーは大丈夫そうだったので様子を見てみたのですが、 使用例のコードが見た事の無いような表現で書かれていて、一体どう動いているのか全く判らなかったり(^^;

  auto xml = new DocumentParser(str);
  xml.onStartTag["book"] = (ElementParser xml)
    {
      Book book;
      book.id = xml.tag.attr["id"];
      
      xml.onEndTag["author"]       = (in Element e) { book.author      = e.text; };
      xml.onEndTag["title"]        = (in Element e) { book.title       = e.text; };
      xml.onEndTag["genre"]        = (in Element e) { book.genre       = e.text; };
      xml.onEndTag["price"]        = (in Element e) { book.price       = e.text; };
      xml.onEndTag["publish-date"] = (in Element e) { book.pubDate     = e.text; };
      xml.onEndTag["description"]  = (in Element e) { book.description = e.text; };
      
      xml.parse();

      books ~= book;
    };
  xml.parse();

なんだかこれで、いくつも並んだbookタグの要素を取り出せるようなのですが、そもそもこれ、 for()でもwhile()でもforeach()でも do() でもないのに、なんでループできるの? ってのが良くわからなかったり。

2010/03/10

早めに帰着。

寒くて死亡。大分体調復活してきた予感。おととしの同じ時期に、同じように 風邪が長引いた時があったのですが、それと今回も同じような感じだなぁと思ったり。 前回は、咳のし過ぎで喉がダメージを受けた為、そのせいで 喉が痛い⇒咳が出る⇒更に喉が痛い⇒咳が出る... というループに陥ってました。今回はできるだけ喉をガードしたのですが、多少効果が あったのかもなぁと思ったりも。

以前、cairoでWindowsのGDIにも対応しているらしいという事を知ったのですが、、 具体的な方法がよくわからなくて、ほったらかしにしてました。 何気にWebを検索してみたところ、ヒントになるページを見つけることができたので、 ついでにD言語を使ったCairoクラスを作って、ウインドとして表示する実験をしてみたり。 ひとまずうまく描画する事ができました(^^)v。なのですが、ずばり遅いです(^^;; Flashゲームみたいなビジュアル表現に使うのはちょっと厳しいか? 逆に、改めてFlashのデキの良さを 感じたりも。

それにしても、検索キーワードに「cairo_win32_surface_create」を指定してやっと ヒントを得られる感じ。「cairo_win32_surface_create_with_dib」だと、日本語のページでは 誰も使ってない感じになってます(^^; 知名度はそれなりにあると思うのですが、 需要は無いという事なのかしら?

2010/03/09

早めに帰着。帰りは雪降り気味。

先日の夜、あまりにも咳をし過ぎたせいか、腹筋が一日中痛かったり(^^; 風邪も長引くと 体力の方が吸われるなぁ。

鳥居みゆきだったとは、全く気づきませんでした。

2010/03/08

早くも無く遅くも無く。

具合が悪くて急速停止。

2010/03/07

昼頃起床。一日中弱まっていたり。

「バクマン(7)」。連載打ち切りで右往左往。今後どうなるかが全然判らなくなりました(^^;
「ONE PIECE(57)」。キャラが出すぎててえらい事に(^^;

2010/03/06

一日中寝てたり。完全に風邪にとりつかれたという感じ(^^;

「時をかける少女」の新作実写映画。アニメの時かけで、真琴の声を当てた 仲里依紗が主演らしい。こんなパターンって初めて聞いたかも。

2010/03/05

早めに帰着。

具合が悪くて死亡。

2010/03/04

早くも無く遅くも無く。

急速に具合が悪くなって死亡。

2010/03/03

早めに帰着。

ちょろりコーディング。

2010/03/02

早くも無く遅くも無く。

なんだかPS3の時計に問題があったらしい。何でも、2010年を閏年と勘違い するバグだかなんだか。確かに我が家のPS3もLife with PSが終了しなくて、 強制POFF→PON復帰したら時計が2000年1月1日に戻ったりしました。 それにしても薄型PS3では問題が無くて、それ以前の型で発生する不具合 ってのが納得いかない気も。

閏年だと勘違いしたとしても、そのまま時間を刻んでいれば 3/1を境に時計が24時間 遅れたように見えるだけなのでは?と思ったりも。時計のバグ一つでこんな騒ぎに なるんかいな?
トロフィー関係でも色々あったようですが、これは今回の話とは関係が無い気も。 まず、PS®Networkにログインできない時点でトロフィーの同期はできません。 ログインしてない状態でトロフィーの同期ができなかったときのアプリ側の問題と いう気がします。

GLSLいじり。なんだか英語のGLSL仕様書も、(TANEが英語ダメなのを差し引いても(^^;)説明が 足りなくてイマイチよく判らない感じに。
RenderManのシェーダー言語的に言うと、Csに相当するものの説明が無くてWebの例などから 読み取ったり。gl_*の組み込み変数については、型くらいかGLSLの仕様書には書かれていません。 それぞれどういう物が入っているかくらいの説明は欲しいなぁ。
そんな訳で、テクスチャの有無をどう判断すれば良いかが判らない所でつまずいてます。 あと、任意のカウンタ値なんかを使えるのかしら?というのは、例えば、あるテクスチャ IDの場合だけ見た目が点滅するようにシェーディングするとか考えたとき、任意のカウンタ値 で点滅を制御できるといいなぁと思ったり。2値の点滅くらいならいいけど、蛍の光みたいな 明滅を大量のアニメーションテクスチャの差し替えで表現するのは効率悪いので、そういうのを シェーダーで解決できないかなぁ?と思ったもので。

2010/03/01

早めに帰着。

GLSLをいじり。少し掴んだようなそうでもないような。

具合が悪くなって急停止。


TOP PREV