昔の最近の出来事(2007.03)

2007/03/31

起きたら昼過ぎ。寝すぎ。

Webをさまよっていたら、 Xaraなる ドローソフトを知ったり。オープンソースのソフトウェア らしいのですが、Windows版は製品だったりして、どういう感じ のものなのかよくわからなかったり。 もう少し調べてみたところ、今の形態になったのには こういう経緯があるらしい。ふーん。

見た目が、Inkscapeと似ている所があったので、てっきり何か 関係があるのかと思ったのですが、直接の関係は無いらしい。 使い方のムービーを見ていると、病的な機能満載(褒め)という感じに 思いました。

そういや、ドロー系の描画をGPUを使って高速化するようなアプローチって 無いのかなぁ?と少しだけ思ってみたり。「3D描画の高速化」と言うと、 使いどころが3Dに特化している様に思えてしまうのですが、3角形分割 されたポリゴンの描画という事であれば、GPUを使うのはアリかなぁとも 思います。

そんな訳で、Fedoraで xalaをソースからビルドしてみたり。 ./configure --enable-unicode して、make。エラー無く終了。最後の リンクで ldが 250MBくらいのプロセスサイズになってました(^^; XaraLXという実行ファイルを実行すればOK。 因みに実行ファイルのサイズは100MBを越えていたり(^^; stripして12MB。GTKを使用してますが、いずれもダイナミックリンク なので、純粋にXaraの本体が12MBあるという感じなのかも。
で、ちょろっと触った所ではInkscape感が強いです。でも、 Inkscapeにある「カリグラフィ」に相当する描画ツールは無い ので、タブレットよりはマウスでの操作がメインになる感じかも。

Windowsでもビルドを試してみたり。configureを良く見てみると wx-configを実行していたりするので、wxWidgetsでプラットフォーム 間差異を吸収している模様。configureは通るものの、コンパイル は通らず。簡単に直して通りそうもないので放置の方向で。

XaraはSVG形式の読み書きは対応されていないらしい。Inkscapeと 行ったりきたりできればそれはそれで使い手があるかなぁと思ったの ですが残念。

2007/03/30

早くもなく遅くもなく。

あまりの眠さに死亡。

2007/03/29

早くもなく遅くもなく。

wxDのサンプルコードを眺めてみたり。 Duitの方がもう少しDっぽく書かれているかなという感じ。 でもまぁ、wxWidgetsのラッパーという位置づけなのでこんなもん かな?という気もしますが。

WebでwxWidgetsのマニュアル類を探ってみたり。意外とチュートリアル的 な資料が見つからなかったり。wxWidgetsのマニュアルはしっかりした のがあるのですが、PDF版ので1900ページくらいあったりする為、 逆に見所が定まらなかったりして(^^;

全然関係無いですがマニュアルと言えば、Fedoraの man gcc。 日本語パッケージを入れたときに gccのマニュアルも日本語になったのですが、バージョンが2.95.3の日本語訳 だったり。-mtune オプションで指定できるCPUアーキテクチャが大分 変わっているので(pentium-m なんて2.95.3リリース時には存在してなかったし)、 意外と用事にならないなぁと思いました。

2007/03/28

早くもなく遅くもなく。

とりあえずgdc023のビルドは成功。手持ちソースをビルドしてみたり。 以前、Fedoraでdmdコンパイラを使った 時の様に、Duitをビルドしてみたらエラーしてみたり。 型チェックが厳しくなっている模様。gtkDではコンパイルエラー しない為、そちらを参考に直してみることにしたり。ひたすら castを入れるだけなのですが、意外と変更必要な箇所が多くて 途中でくじけそうになったり。 で、なんとか修正完了。手持ちのDuit利用ソースも問題無さげ。ふぅ。

で、Fedoraの方にwxWidgetsを入れてみたり。と言っても、 yumでwxGTKのdevelバイナリをインストールしただけですが(弱っ!。 で、wxDをビルド。 特にエラーも無く終了。make testでサンプルをビルド&実行。 特に問題無さげ。wxWidgetsをGTK+が基本のプラットフォーム で動作させると、GTK+の上にwxWidgetsの皮が被ります。

wxD
 Win  : Dアプリ→wxD →wxWidget        →WinAPI
 GTK  : Dアプリ→wxD →wxWidget →GTK+ → X

Duit
 Win  : Dアプリ→Duit→GTK+            →WinAPI
 GTK  : Dアプリ→Duit→GTK+            → X

wxDをGTK+ベースのシステムで使うのが一番損という感じかも。 でも、プレーンな X もサポートに含まれているようなので、 何の為に wxGTKなんてのがあるのかイマイチよく判らない 気がしなくもありませんが、何か理由があるのでしょう。

因みに、wxDのMDIのサンプルはwxGTKでは 一般的なMDIの ような感じではなく、Notebook(いわゆるタブ)に置き換えられて います。これはGTK+にMDI表現が無いからだと思われます。

そしてFedoraの方もgdc023を入れてみたり。ひとまず問題無さげ。

2007/03/27

早くもなく遅くもなく。

そういやSAIの新しいのに 直線ツール/曲線ツール が実装されて いるらしいけど、どうにも 見つけられなかった件。 ツールトレイの右クリックメニューの中に入っていて、 それでアイコンを置く事ができてみたり。フルセットでは デフォルトで出しておいてもらえるとありがたいなぁと思いました。
あと、多分不具合。直線ツールor曲線ツールを、500pix径のペンで非常に 長いストロークで3点以上頂点を打つと(==非常に描画が重くなる。ここポイント)、 決定のダブルクリックが受け付けられないようです。描画が 非常に重くなる為か、ダブルクリックイベントがロストしているという 感じがします。因みにマウス操作です。確認してみてください。

wxDを使っている人ってどれくらい居るのじゃろ?と思い、Webを探ってみた のですが、ほぼ皆無。wxWidgets単体ではそれなりに使われていそうなので、 単にDで物を書く人が居ないだけという事なのかも知れませんが。

gdc-0.23が3月初めに出ていたのは認識していたのですが、それをビルドして いなかったというのに、今日気づきました(ぉぃ;。 そんな訳でビルドしてみたり。やっぱりgcc-4.1.xはダメっぽいので gcc-4.0.3でひとつ。

2007/03/26

早めに帰着。

wxWidgetsのビルドにリトライ。コンパイルエラーの理由がやっと判って みたので、configureオプションを積みまくってみたり。結果、次の ような感じでサンプルコードのビルドまで成功してみたり。

  1. ビルド用コンパイラはgdcビルドでインストールしたものを使用しました。 (参考)
  2. -mno-cygwinでビルドする。この時、 mingwディレクトリ(1.のビルド例だと/usr/local/gdc/i686-pc-mingw32/includeの下)に 足りないヘッダファイルを足します。
  3. wxWidgets-2.6.4を展開した後ディレクトリを移動し、ビルド用の適当なディレクトリを作成する(例えば_BUILD)。
  4. 3.で作成したディレクトリに入ってconfigure実行する。configureオプションは次のような感じ。
    CFLAGS='-mno-cygwin' CXXFLAGS='-mno-cygwin' LDFLAGS='-mno-cygwin' ../configure --prefix=/wx --target=i686-pc-mingw32 --disable-shared --enable-threads --enable-unicode --with-libtiff=builtin --with-libpng=builtin --with-libjpeg=builtin --with-expat=builtin --with-opengl
  5. make
  6. make samples
  7. make instlal ※/wxにインストールされる

そして、メインのwxDをビルド。GNUmakefileのwx-configをフルパスに したり、コンパイルオプションに-mno-cygwinを足して「make -f GNUmakefile」 てな感じでビルド。とりあえず成功。 そしてWeb上で見つけたサンプルをコンパイル&リンク。ハマりどころは ありましたが、最終的に 「gdc -O -mwindows wxtest.d libwxd.a libwxc.a /usr/local/gdc/i686-pc-mingw32/lib/libstdc++.a `/wx/bin/wx-config --libs`」 てな感じでリンクは成功。でも、実行しても何も起こらず。しょんぼり。

もう一度、libwxd.aのmakeを行ってみた所、-fversion指定が行われていたので、 「gdc -fversion=__WXMSW__ -fversion=UNICODE -O -mwindows -mno-cygwin -I../../ wxtest.d libwxd.a libwxc.a /usr/local/gdc022/i686-pc-mingw32/lib/libstdc++.a `/wx/bin/wx-config --libs`」てな感じに直してみたところ、 うまくウインドを開く事ができました(^^)v てか、Sampleディレクトリをビルド すると、「-fversion=__WXMSW__ -fversion=UNICODE」を付けてビルドしてるから、 先に実行してれば気づいた所を。とほ。

OpenGLを使用したサンプルは次のような感じでリンクすれば良さげ。 「gdc -fversion=__WXMSW__ -fversion=UNICODE -O -mwindows -mno-cygwin -I../../ GLCube.d ../../libwxd.a ../../libwxc.a /usr/local/gdc022/i686-pc-mingw32/lib/libstdc++.a `/wx/bin/wx-config --libs std,gl`」 てな感じに、wx-configにglライブラリを足せば、よきにはからってくれるという事みたい。 OpenGL関数のインポートは自前のソースを使ってみましたが、 dsource.orgの trunk/gl辺りを使わせていただくのもアリやも知れません。

んー、でもスタティックリンクしている為、出来上がる実行ファイルは 超巨大(何もしなければ12MB、stripしても6MB)です(^^;。まぁ、亜種の 沢山あるGTK+をダイナミックリンクするのと、どちらが確実に動かせるか? という話をすると、前者のファイル大きいけど我慢するの方なのかも知れませんが。

2007/03/25

昼ごろ起床。

社内教育の宿題が思いのほか 難しくて死亡(またか)。

D言語で使用できるGUIの一覧ページてのを知ったり。 ほぼ、αかβというのばかりですが、意外と色々あるようにも思ったり。 その中の、wxD ってのを使えないかなぁと思って拾ってみたり。 しかし、wxWidgetsというパッケージをビルドしなくてはならなくて、 これがビルドできそうで、できなくてへこり。バイナリパッケージ も無くて、くじけ気味。

今日の「ブラックバラティ」は久々に飛ばしてるなぁと思った。

あ、そういや今日で へっぽこページも7周年を迎えましたよ。 去年はプロバイダが変わったりと色々事件もありましたが、見てくださってる 方々には感謝ですm(_'_)m。ふにゃふにゃしたページですが、これからも よろしくお願いします。

2007/03/24

昨日あまりの眠さにわりと早く寝たのですが、起きたら昼過ぎ。寝すぎ。

Web巡回したりTV観たりし、ぐうたら過ごして一日終了。
Mr.マリックの番組観たり。さすがやね。もう何が何やらって感じ。

D言語で使用できるGUIライブラリとか検索してみたり。特に新しい物が 増えていたりする気配は無さげ。D言語でフルスクラッチで新しいのを 作る人とか居るかなぁと思ったのですが、意外とそういうのって聞いたこと なかったり。

2007/03/23

気持ち早めに帰着。

何気にWebをさまよっていたら、WindowsAPIのD用ヘッダの 存在を知ったり(特に 名前は無い模様)。 今まで、以前見つけた 「 Project:windows.h for D」を、ansiの方を生かして使用していました。 でも、今回知ったWinAPIヘッダはメンテが行われているのと、Windowsの 色々なバージョンをサポートしていそうだったので、こちらの方が良いかもと 思った次第。
で、使ってみたり。少し手持ちソースの方に変更を加える必要がありましたが、 概ねProject:windows.h for Dとコンパチブルという感じでした。 ハマリどころだったのは以下の2点。

  1. PIXELFORMATDESCRIPTOR構造体内の、メンバー変数iLayerTypeに、 PFD_MAIN_PLANEとか指定すると、何故かwin32/wingd.dの中で deprecated宣言されていてコンパイルエラーとなった。
  2. コンストラクタの中で 「WNDCLASSEX winc;」てな感じで変数宣言してあったところ、何故か リンクエラーとなった。実体が消滅しているようで、 「static WNDCLASSEX winc;」とすれば大丈夫だった。

後者の方は「windows.h for D」のコードと違いは無いように思ったのですが、 何故ダメなのか理由が良くわからず。てか、構造体宣言しかしていないので、 実体が消えるような事にはならないと思うのですが。

まぁでも、APIをフルセットで使えるという点は非常に大きいと思います。 今どき生でWinAPI叩くか?と言われればそれまでですが、ま、Dだしね、という事で。

2007/03/22

早めに帰着。

そういやIntelのCoreDuo2プロセッサのTVCM。ありえないような変化を 表現しているみたいなのですが、TANE的にはバグっているように 見えなくもない今日この頃。

2007/03/21

昼ごろ起床。

Webをさまよっていたら、GNU Hello なるプログラムを見つけたり。いわゆる「こんにちは世界」を表示するだけ のプログラムなのですが、今でもメンテナンスされ続けているもよう。 てゆーか、「Hello, world!」を表示するよりも、周りのコードや、ドキュメントの 方が大きいです(^^;

$ ./hello.exe 
Hello, world!

$ ./hello.exe --traditional
hello, world

$ ./hello.exe --next-generation
+---------------+
| Hello, world! |
+---------------+

だそうです。わざわざmake checkで動作確認まで行えるようになっていたり する辺り、ほとんどシャレで作ってる感じなのかも。

FedoraでDuit/gtkDの実行バイナリがずっこける原因がやっと判ったり。 gtk+やglibなどのライブラリをリンクしていたのがその原因でした。 Duit/gtkDでは、内部コードでdlopen()を使用して自力でDLLをオープン しています。ところが、実行ファイル生成時にgtk+やglibなどをリンク してしまうと、リンクしたコードの方を呼び出してしまうようで、 そうなると初期化ができていないなどの理由でずっこけてしまうようです。 リンク時にpkg-configなどは使わずに、単純に 「gdc -o TestWindow objtest/duit/*.o libduit.a -lm -ldl -lpthread」 てな感じでリンクすればOKでした。 判ってみれば なーんだって感じ。ちぇっ。てか、TANEのチョンボですな(^^;

OpenGLを使ったバイナリが「Error: Library load failed: libgtkglext-x11-1.0.so」 てなメッセージを出力して動かなかったので、「yum search gtkglext」で 探して、「yum install gtkglext-devel」でインストールしてみたり。 無事、OpenGLを使ったコードも動作してみたり。ふぅ。

2007/03/20

気持ち早めに帰着。

libstdc++.so.5を入れる為にgcc-3.3.6をビルドしたり。 とりあえずlibstdc++.so.5だけを入れてみるとdmdコマンドは 使えるようになってみたり。サンプルのhello.dもコンパイル できたので使える模様。で、Duitをビルドしてみた所、コンパイル エラーが出まくってビルド失敗。gtkDの方はエラー無くコンパイル できたり。リンクはgccを使って、libphobos.aをリンクすれば 良さげ。で、出来上がった実行ファイルを実行してみるも、 やっぱりgdcでビルドした時と同じくSegfaultやら何やら発生して やっぱり動かず。てか、コンパイラの問題じゃ無いという事か?
それよりも、dmdってコンパイルが速いなぁ。実行コードが 速いかどうかは判らないけど。

デバッガで真面目に見てみることにしたり。

$ gdb ./cairoDemo
:
Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 1134320 (LWP 19301)]
0x081035fa in g_option_context_set_description ()
(gdb) where
#0  0x081035fa in g_option_context_set_description ()
#1  0x432550d5 in gtk_parse_args () from /usr/lib/libgtk-x11-2.0.so.0
#2  0x432551a4 in gtk_init_check () from /usr/lib/libgtk-x11-2.0.so.0
#3  0x432551e4 in gtk_init () from /usr/lib/libgtk-x11-2.0.so.0
#4  0x080864ba in _D3gtk4GtkD4GtkD4initFPiPPPaZv ()
#5  0x08086441 in _D3gtk4GtkD4GtkD4initFAAaZv ()
#6  0x08085e5c in _Dmain ()
#7  0x080a58d5 in main ()

てな感じ。g_option_context_set_description()の中で何故かトレース例外 が発生するという謎な動き。因みに、シングルスレッド起動にすると、トレース 例外になるようですが、マルチスレッドで初期化をすると、g_malloc()で Segfaultになる模様。
で、glibとgtk+のバージョンは

$ pkg-config --modversion glib-2.0 gtk+-2.0
2.12.3
2.10.4

てな感じだったので、それぞれのソースを拾って眺めてみたり。 glib-2.13.0/glib/goption.c:g_option_context_set_description()の実体 は存在するのですが、それを呼び出している事になっている、 gtk+-2.10.4/gtk/gtkmain.c:gtk_parse_args()の中では g_option_context_set_description()を実行している様子が無かったり。 マクロで置き換えられているのか?とも思ったのですが、そういう感じ でも無く。そもそも動きが怪しい予感がするので、コード通りに実行 されていないのだとすると、お手上げな所です。

2007/03/19

早めに帰着。

FedoraでDuitが動かない件。gdcのオプションとしてターゲット CPUを指定した記憶が無いなぁと思い、ターゲットCPUを指定 してビルドし直してみたのですが、変化無し。

しかたないので、dmdのコンパイラを入れてみる事に したり。インストール方法がHTMLのフルドキュメントの方に しか書かれていないのがイマイチだと思ったりしたのですが、 それはそれとして。で、入れてみたものの、libstdc++.so.5 が無くて実行すらできなかったり。こういうのがあるから、 Unix系OSの(パッケージを使わない)バイナリ提供てのはダメ なんだよなぁと思ったりもする今日この頃。かと言って、 コンパイラをソースからビルドする事もできず。お手上げ。

2007/03/18

朝普通に起きたり。

Fedora環境の方はコンパイラやツールまでは戻せたり。でも、Linux対応 させてほっぽらかしていたppcsimのソースなんかは全て無くなったので、 またどこかで対応するという感じで。ちなみにDuitもgtkDもやっぱり リンクは成功するものの、Segfaultやら何やら色々発生して動かないのは 変わらず。

すっかりCG描きをサボってましたが、折角intuos3に乗り換えたので新しい SAIで落描き。

無題

モデルは特に無し。
intuos3雑感。話には聞いていましたが、感知面に触れるくらいの非常に弱い 筆圧でも反応するので、リアル画材感覚に近くなってるなと感じました。また、 力を入れなくて良い分、手が疲れませんでした。ArtPadのときは 気が付くと凄い力を込めて塗っていたりして、タブレットの筆圧感度曲線 をいじったりしてました。でも、そうすると筆圧レベルの解像度が足りなくなる ようで、線の抜きがイマイチな感じになったりしてたのですが、 そういうのが無くなったように思います。

SAIの方。線画は実はペンレイヤーで描かれているのですが、途中で 塗りの方向を変えたので、編集機能の方はあまり使えていなかったり。 それでも、ストロークの移動だとか囲って移動だとか少し使ってみたり したので、やっぱあると使うなと思いました。

それにしてもサボり過ぎていたせいか、いじり方を散々迷ったわりに、 途中で気に入らなくなってきて塗りが雑になったり(=_=; intuosの値段分 回収せねば。

2007/03/17

朝普通に起きたり。

洗濯したり掃除したり。

いきなり思い立ち、旧PC復活用にハードディスクを探しに秋葉に出かけてみたり。 案の上、新品では売っていなかった為、ジャンク屋を渡り歩いてみたり。 最初に見つけた店のは、保障無しで40GB/2000円。「フォーマットもしてません、 でも返品も交換も受付けません」みたいな感じで、恐らく使えるのでしょうけど、 動作確認もしていない感じが しなくも無かったのでひとまずスルー。次に見つけた店では40GB/2800円で、 1週間の保障あり。てか、クーリングオフ可能ってくらいの保障期間ですが、 一応動く事くらいは見ていそうなので、ここで買ってみる事にしてみたり。 怪しいインド系の男性店員が居たり、日本語の少し怪しい女性レジカウンタ だったりしましたが、まぁ、ジャンクだしなという事で。
そして、intuos3にダイブしてみたり。我が家の住宅事情と、これまでの慣れから A6サイズをゲット。でも、箱のサイズはA4サイズよりも大きいのが納得できない 所かも。

早速ハードディスクを交換してみたり。所が、壊れていると思っていたのと違う ドライブの方が壊れていた事が発覚。なんてこった。そんな訳で、Win98ドライブ は無くなり、Linux専用マシンになってしまいました。という事は、今のドライブ に入っている環境を戻せるか?とも思ったのですが、うまくいかなかったので、 クリーンインストール。2つのドライブを割り当てた所、論理ボリュームという 仕組みで一つのドライブのように扱えるという事を知ったり。はまりどころは ありましたが、とりあえずインストール終了。しばらくyum-updateを動かして 様子見。

そしてintuos3をセットアップしてみたり。感知面はA6なのですが、周りの枠が 大きくて、キーボードと一緒にテーブルの上に置ききれなかったり。それは さておき、付属CDは使わずに、Wacomのサイトでドライバをダウンロードしたり。 前のArtPad用のドライバを専用の削除ツールでアンインストールした後、 intuos用ドライバを入れたり。そしてSAIを起動してちょろっと線を描いた所、 これぁヤバイと思ったり。いくらなんでも同じA6サイズだし、そんなむちゃ くちゃに違わんだろうと思っていたのですが、筆圧の反応が全然違うという感じ。 こいつぁスゲーや。
でも、付属のマウスはなんか使いにくいです。恐らく、感知面からかなり浮かさない と反応範囲外にならないのが原因かと思われます。ボールにしろ赤外線にしろ、 数ミリ浮かせばカーソルは動かなくなりますが、それと同じ感覚で操作して いると、カーソルが行ったり来たりして、思い通りの位置に動かない時がある いう感じになるようです。

Fedoraの方、いつの間にやら色々入れていたようで、 ツールのビルドやらツールやライブラリのインストールやらに思いのほか手間 がかかっていたり。

2007/03/16

気持ち早めに帰着。

いつの間にか寝てたり。

2007/03/15

早めに帰着。

TV見てたらいつの間にか寝てたり。

ちょろっと考えて終了。

遅ればせながらSAIのα4bを試したり。ペン入れレイヤーの制御点操作関連 の変更が主な模様。編集コマンドにラジオボタンが付いたので、ショートカット を覚える必要が無くなったり。選択もエリアを囲う事ができるようになったり、 複数オブジェクト(制御点,ストローク)の選択後も、ラジオボタンを切り替えて アクションを起こすという感じで、判りやすくなったかも。
そういや折れ線対応されたので直線化が簡単に できるようになった訳ですが、折角なので通常レイヤーと同じくshift+クリック でコネクトラインが引けるようになれば、いちいち直線っぽい線を手で引いて 制御点削る作業が必要無いかも。 ん?そういや「曲線ツール」と「折れ線ツール」という言葉が出てくるけど、 そういうツールアイコンがあるのかしら?どういう操作の事を指しているのか よく判らなかったり。実は折れ線ツールというのを使えば、コネクトラインも 簡単に引けるのかしら?

2007/03/14

早くも無く遅くもなく。

猛烈に眠くて死亡。

2007/03/13

気持ち早めに帰着。

テクスチャの座標を間違えていたのを直したり、背景テクスチャを ウインドサイズ変更に追従するように直したり。

3D背景テスト

480x640くらいならばOKそうな感じですが、それ以上はフレーム 落ちするっぽい。
一時表示の実験コードばかりになってきたので、3Dオブジェクト の表示も扱えるように少し考えた方が良いかも。

2007/03/12

早くもなく遅くもなく。

3Dオブジェクトの混在表示の続き。
全体描画が影響を受ける点は、スプライト用の四角ポリゴンに法線を 定義していなかったのが原因でした。先に3Dオブジェクトの表示を行った 時、最後に定義された法線が、その後のスプライト用四角ポリゴン描画 時にも引き続き定義されてしまっていたというチョンボでした。 スプライト用ポリゴンも、必ず法線を定義する事で解決。

でも、描画が変なのが解決せず。原因は、アルファ合成を行うのに、 glDepthMask(GL_FALSE)を実行しているのですが、これを実行してしまう と、実行前に描かれたポリゴンが全て透明で透けてしまいました。 でも、glDepthMask(GL_TRUE)のまま描いてしまうと、Z座標が全て0.0 となっているスプライトポリゴンでは、描画順序の保障ができなくて、 表示がちらついてしまいます。
そんな訳で、glCopyTexImage2D()を使って3Dオブジェクトを描画した後、 テクスチャに変換し、それを背景ポリゴンに貼り付けて、その上に スプライトポリゴンを重ねるように考えてみたり。色々仕込みが必要で、 それが判らずなかなかうまく描画されませんでしたが、 どうにかそれっぽいものになってみたり。でも、流石に重いなぁ。

2007/03/11

割と普通に起きたり。

最近のPCのシューティングゲームってどうなんじゃろ?と思って、 Webを散策してみたり。10年くらい前だとPCでシューティングゲーム を作るのはハード的にかなり厳しいという感じがしてましたが、 最近は普通に弾幕シューティングとか作られているという感じ。
それとは全然関係無い所で、一部で話題の「シューティングゲームの歴史」 というフランスのTV番組の 日本語字幕(ネタ仕様)ってのをみつけてみたり。 ネタ仕様なのでちょっとアレな字幕ですが、意味は通じるので興味ある方は どうぞ。それよりも、この横に並んでいた グラディウスII 10周目 1コインクリア(てかノーミスクリア) ってのに釘付けでしたよ。 増えに増えてバグりそうな残機の列だとか、1000万点以上を表示できずに ラップアラウンドするスコアだとか。大量の返し撃ちの誘導だとか、 完全に読みきっていて凄すぎです。いいもん魅せていただき ました。
その後、斑鳩の凄いのとかも見たり。一つはDC版かGC版でのハイスコアプレイ。 斑鳩では同じ色の敵を3つ連続して破壊する ってのを繰り返すと、チェイン となって得点や評価のアップになるのですが、とにかく繋がるのに驚き。 ただでさえ弾が多いので、チェインを気にせず撃ったとしても、難しい のですが、色を見て破壊数を勘定しながら、しかも白黒切り替えて打ち返しを 避けてって、見てるだけでも無理って思ったり。で、二つ目ですが、 ただでさえ切り替えと見極めが難しいのに加えて、一人で二人同時プレイを したってのがあったり( 3面のフルプレイが特に凄いと思いました)。もうね、 ここまで来ると、右脳と左脳が別人格じゃないと無理じゃね?って感じ。 ボスで一回ミスるのですが、それでも評価 S++ ってどういう事よ?(^^; いやぁ、いいもん魅せてもらいました。

先日のテクスチャサイズは 2のベキ乗で無くても良い?の答えは 「OpenGL 2.0ではその制限が取り払われている」が正解の模様。 ただし、パフォーマンスに問題があるとか ( 参考)、ビデオカードの対応もあるようなので、多方面で使用 するプログラムあれば、2のベキ乗でイメージ作成するのが良いらしい。

3Dオブジェクトと混在表示しようとコード追加をしてみたり。 今回初めてディスプレイリストを使ってみたのですが、どうもこれを 使うと表示が思い通りにならなかったり。 図形描画の手続きしか記録していないリストを、glCallList()すると 何故か描画全体が妙な影響を受けたり、Callするオブジェクトの ライトが変だったり、そのライトの具合が何をやっても変えられなかったり。 うまくいかないなぁ。

2007/03/10

電灯付けたまま寝て起きたら昼前。寝すぎ。

コーディング。
暇つぶしにコーディングを始めたものの、途中で放置していた ソフトウェアスプライトの描画雛形を、ソフト描画からOpenGLの テクスチャ使用に変更してみたり。

soft sprite OpenGL sprite

背景以外のキャラクタは全てpovrayでレンダリングしたものです。 ソフトスプライトもアルファ合成は手を抜いているので、このサイズであれば どちらも速度に差は無いようですが、少しサイズを広げると、 bitbltがネックになってくるようで、ソフトスプライトの方が 気持ち重くなるようです。
あと、後で気づいたのですが、2のベキではないサイズの テクスチャを使用してもうまく描画されてます。 OpenGL2.0の為なのか、nVIDIAのドライバの為なのかは よく判らずですが、少なくとも前のWin98マシンだと 描画すらされないような気がします。

それにしても、よくよく考えてみれば、Pentium4の3GHzは PlayStation2のEEの10倍以上のクロック周波数な訳です。 グラフィックチップもPSなんかよりは全然良い訳で、最近の ハードのスペックであれば、PSやPS2クラスのゲームを作るのも 全然楽勝だったりするハズだよなぁなどと思ったりもする訳です。 でも作れないのは、単にTANEの能力の問題だね。てへっ[はーと]

2007/03/09

早めに帰着。

そういやファミ通WaveDVDのコンテンツ「殿堂TV」 の中で、Wiiのバーチャルコンソールで動くレトロゲームの紹介 というのが先月号より始まりました。先月号はPCエンジン版の 「R-TYPE I」、今月号はファミコン版のゼビウスとグラディウス だった訳ですが、どれもスプライトのちらつきが再現されて いるのが何気にスゲーと思いました。
スプライトのちらつきは、ハードのスプライト表示制約を折衷的に 解決する為のソフトウェア処理により発生する現象です。 最近のポリゴンにテクスチャベースのハードウェアではフレーム レートさえ落とせば描画されないという事は無いので、 そういうのが当たり前の人が、初めてスプライトのちらついて いる所を見ると、「バグってる!」って思うだろうなぁなどと 考えてしいます。
逆に、ちらつきをOFFにできれば、あの目の痛かった「エグゼドエグゼス」 や、ラストは心眼で弾の軌跡を読む必要があると言われている「烈火」 (こちらはやったこと無いです)とか、意外と遊べるようになるのかなぁ などと思ったりもします。

2007/03/08

早めに帰着。

ファミ通WaveDVD見たりぐうたら過ごしたりしているうちにいつの間にか 寝てしまったり。

ちょろりコーディング。

2007/03/07

気持ち早めに帰着。

ちょろりコーディング。

2007/03/06

早くもなく遅くもなく。

SAIの新しいのが出てたり。ストローク編集が強化されたという事で 早速インストールしてみたり。セレクトと編集の関係に少し慣れが 必要かも。例えば、カーブや制御点を部分セレクトしている所に 「SHIFT+カーブドラッグ」をすると、ストローク全体セレクトに変化 するのにアレ?と思ったりとか、矩形選択で囲われたストロークが 選択状態になったりとか。
複数の制御点を領域囲ってまとめて選択するとか、選択方法に バリエーションが欲しくなったりもする所ですが、今の操作系だと それは難しいなぁとも思います。やるとするならば、今の操作系は そのままで、高機能な選択操作(例えば選択領域内の制御点だけを 選択状態にするとか、ストロークだけを選択状態にするとか)は 別アイコンの選択メニューで行うとか、そんな感じかなぁ。

2007/03/05

早めに帰着。大荒れになる前で助かり。

探し方が悪いせいか、ベクターで描かれた2D図形の演算に関する 資料がなかなか見つからなかったり。CSGなんかもキーワードに入れてみたり するものの、それっぽいものは引っかからず。swfのレンダリング関連 で何か出そうな気がしつつも、図形演算はレンダリング時には行わない から出てこないのかな?とも思ったり。

2007/03/04

今日もみっちり寝て起きたら昼過ぎ。

旧PCのハードディスクから怪音がしていたのですが、一度電源OFFして再び ONしたらブートしなくなりました。FedoraをインストールしてあったHDDが逝って しまったもよう。Win98で使っていた時は、バックアップディスク でしか使っていなかったのと、Fedoraを入れてからも稼動時間はかなり短かったので 、動作率はかなり低かったハズなのですが......

替えのHDDって今だといくらくらいで買えるのじゃろ?と調べてみたり。 BIOSの都合で40GB以上は認識できないっぽいので、その縛りで検索した所、 中古で1000円〜4000円というのが相場みたい。もう40GBなんてHDDは中古でしか 手に入らない感じ。 最近のHDDはSATAで100GB以上というのが普通らしい。古いPCを活用&維持するの は、いつの時代も手がかかるなぁ。

Duitのページを見たところ、gtkD というのがプレリリースされていたり。 ソースツリーでは別ディレクトリとして置かれていたものですが、 中身はDuitとほぼ同じ。掲示板でgtkDとDuit、名前はどっちが良いか?という話が 上がっていたのですが、結果的にgtkDにするという事なのかしら?
それよりも、Webから閲覧できるソースブラウザのどこにもgtkDのpre-release に相当するソースが置かれていないので、これに追従して良いのか?というのが 悩ましい所だったり。ひとまず OpenGL系関数をextern(Windows)宣言する以外 はいじる所は無く、demoもコンパイルできたので問題は無さそうではありますが。

2007/03/03

みっちり寝て起きたら昼過ぎ。

そんな訳でプロ遊の下に「D言語で遊ぼう」という文書を追加してみたり。 とは言うものの、今の所、全く言語自体を触ってない内容ですが(^^;

「ONE PIECE(45)」を読んだり。10年てよく考えるとスゲーなぁ。 こち亀の153巻は別にしても、あのドラゴンボールでも42巻な訳だし。

2007/03/02

気持ち早めに帰着。

gdcのビルド方法をまとめてみたり。というか、確認の方に時間が かかっている最中。

インターネットTVで銀河漂流バイファムの最終回を観たり。 リアルタイムで観ていたときは、1シーズンで放送が打ち切りと なりました。最後どうなったのかというのは、結局20年以上知る事が できなかった訳ですが、良い感じに最終回まで流れたなぁ思いました。 遺跡にあんまり深い要素が無かったとか、消化不良気味な所が あったように感じるのは、きっと歳を取りすぎた今見たからだろう と思ったりもします。

2007/03/01

気持ち早めに帰着。

ベクトルで描かれた2Dの図形のブーリアン演算ってどうやって やるのじゃろ?と思ったり。ピクセルマップに量子化すれば 話は簡単なのですが、ポリゴンで描かれた図形同士の演算 の場合、どうすれぁいいのかさっぱり。

Cygwinのスナップショットをビルドして、gdcをgcc-4.1.2ベース でコンパイルテストしてみたり。以前、 .oファイルが生成されずにmakeの実行に失敗するという謎 現象が発生したのですが、今回入れたcygwin1.dllだと エラー無くビルド完了してみたり。何かバグがあったのかも知れません が、とりあえず結果オーライという事で。

と思ったら、スクリプトのgdmdがなにやらmutex lockがエラーとか よく判らないメッセージが出てうまく動かなかったり。 cygwin1.dllを戻したらOK。むー、やれやれ。


TOP PREV