昔の最近の出来事(2004.03)

2004/03/31

出張。

2004/03/30

出張。

2004/03/29

いきなり消防の点検があるのを思い出し急遽休業。ところが いつまで待っても予告されていた時間に点検に来ず。うぉい!そんな感じ。

取りあえずglRoteteX(),glTranslateX()を使わずに、自力で 回転させる仕込みを行なってみたり。ところが何を間違っているのか、 うまく回す事ができず死亡。むぅ。

2004/03/28

昼頃起床。

TVなど見ながらぐうたら過ごし、その後ちょこーり本屋に。 今日は暖かくて良い感じ。 ケロロ軍曹(8)とか色々。TVアニメ化するということで、どの本屋も ケロロが並んでました。ついでに行きつけのCD屋で攻殻の2ndGIGを 探したのですが見当たらず。

スキニングの仕込みを微妙に行なってみたり。でも、データ構造を 大幅に変える必要があるので何が必要かをよく考える必要がありそう。

TV見たり部屋片付けたりしながらぐうたら過ごして終了。

「COOL GIRL」をやっているのですが、先週の位置(ICE編の刑務所の囚人を 逃がす為のダイブ端末を探す所)から全く進まず。あまりの進まなさ具合に、 むしろそんな自分にビックリ(汗;。そんな感じなので、遂にWebの攻略ページを 検索してみる事にしたのですがそれでも判らず。 このゲーム、攻殻のそれみたくサイバースペースにダイブするという フューチャーがあるのですが、リアルWebでの攻略検索もままならない 自分に「本当にこのゲーム、クリアできるんだろうか?」と 本気で思ったりする今日この頃。

そんな感じで明日から出張です。

2004/03/27

昼頃起床。

スキニングをネタに出張中にオブジェクト変形について色々 考えてみたり。
まず、曲げた状態についての期待値から、どのようにモデリング するのが良いかを考えてみました。
関節の付け根のみのモデルでは、骨がありませんので、 肉の変形の仕方は無限に考えられる事になり、パラメータが 不足していると言えると思います。
で、関節の付け根を中心として、伸ばす領域と縮める領域とに 分けて変形する事を考えてみました。一見うまくいく様に 思ったのですが、元形状が真っ直ぐな筒だったとき、関節球 との接点しか変形してはいけない事に気づきました。例えば、 変形範囲を図の赤い点線で囲われた領域まで広げたとしても、 変形前の頂点位置が赤い点線上に乗っている場合、座標変換の 原点を関節球の中心としている限り、座標変換後の頂点は 赤い点線上にしか乗りません。これだと曲げた時に思っている よりも膨らんで変形してしまう感じになると思います。

[スキニング図(NG)]

例えるならば、折り曲がるストローの様に、予め伸ばすだけの皮を 縮めて持っておく必要があるという感じでしょうか。これを ポリゴンモデルで実現するには、最も縮んだ状態で面積0になる ポリゴンを繋げておくなどの方法で、原理的には 不可能ではありませんが、テクスチャマップの方法など他の 要素を考慮に入れると実現は非常に困難である。という結論に 達してみました。

そんな訳で針金を入れたイメージにするのはどうかと考えてみました。 単純な直線の骨で考えると、今までと同じなので、曲線を描く ような骨を入れてみることを考えました。

[スキニング図(OK?)]

具体的には、針金の初期状態を定義し、骨の中心から肉の頂点 の距離を測って魚の骨のような形状をつくり、それを曲げると いうものです。針金曲線は短い直線に近似し(針金要素と呼ぶことに します)、頂点は最も距離の近い針金要素の子として予めグループ 分けしておきます。針金要素の座標変換に従って子となる 頂点を座標変換し、その結果で面を貼れば変形完了という すんぽーです。
現在のPOV読みプログラムのデータ構造は親関節に対する 子関節の相対位置を原点としていますが、それ以上の パラメータはありません(^^; なので、二つの骨とその 接合部を回転原点とした塊を関節プリミティブとして定義 する必要がありそうです。ただ、実装を進めてみると、 ダメじゃーんって事があるかも知れませんけどね。

先日のCygwinの20040325のスナップショットで発生したハングですが、 MailingListで同様の報告が上がっていて、今日見てみると 新しい20040326が上がっていたのでビルドしてみました。 一応OKそう。そういや、 forkの性能問題回避mmapのバグ回避 (経緯はこちら) のパッチは自分デフォルトであてるようにしているのですが、 forkはともかく mmapの方(malloc()から呼ばれる場合があるため)って本当に 困る人が居ないのだろうかと少し疑問に思ったり思わなかったり。 XPとかだと大丈夫なのかしら?

ん?そういや、おとといの時点で へっぽこ実験室 開設四周年だったな(汗; そんないい加減な感じですが、これからもふにゃふにゃやっていきますんで、 そんな感じでよろしくお願い致しますm(_'_)m

TV東京のニュース番組である所のWBSで、スターウォーズのプラモ を作っている会社の話題がありました。なんでも、 映画スターウォーズを手がけるルーカスフィルムはグッズ類の製品ディティ―ル チェックが厳しいらしく、ライセンスを持っているのはこの会社だけ らしいです。その厳しいチェックをクリアして国内で唯一公式ライセンスを 持っているのが 「ファインモールド」 というメーカーで、確かに異常にディティ―ルが細かく再現されており、 その完成度の高さに、なるほどねぇと納得してしまいます。 ところで、番組内で 金型の彫刻を人力でやっているサマが映っていたり、 ルーカスフィルムからの設計図が提供される訳ではなく、自身の目で 再現するといった事を言ってたりしてましたが、これはタミヤなんか でも同じなんじゃないのかしら?と思ったのですが どうなのでしょう。 因みに、現在ではプラモを買っていく年齢層は30代〜40代という事で、 最近の小学生とかはプラモを作らないみたいです。
そういや以前、小学生の なりたい職業に「フィギュアの原型師」が上位にあるというのを知ったのですが、 プラモとフィギュアとは別物という事みたいですね。 プラモと言うと必ず作らなければならないものしか連想できないのですが、 フィギュアというと完成品(食玩の色付きのハメ込みキットもTANE的には 完成品)も含むような気がしてきました。フィギュア を買ってる人の中でも実際に作っている人となるとどれだけ居るもの なのか少し疑問に思いました。

2004/03/26

出張。帰着。ふぅ。

Cygwinのアップデートを久々に行なってみたり。XFree86関係が 色々変わっているようです。後、1.5.9が出ている様ですが、 1.5.8までしかダウンロードできなかったり、1.5.8を入れてみたら 原因不明の理由でスナップショットのconfigureが通らなかったり (cygwin1.dllを戻すとOKだったりする)、どうにかビルドを通した cygwin1.dllを使うと立ち上げ1発目のbashがハングしたりと 結構ヤバめな予感。

2004/03/25

出張。

2004/03/24

出張。

2004/03/23

出張。

2004/03/22

出張。帰着。ふぅ。

関節の継ぎ目の補完の事を、一般用語で「スキニング」と言うらしい。 それをキーにWebを探索してみたのですが、やっぱりアルゴリズムに 触れた資料ページは発掘できず。

2004/03/21

昼過ぎ起床。

POV読みいじり。階層を深くするとローカル座標変換がヘンテコになる バグを直したり。取りあえず構造記述は手で書く必要がありますが、 関節位置の修正はGUI上で行なえる様になったので、デバッグも兼ねて 使ってみたり。でも実際に使ってみると、もうひと仕込み必要な予感。
一つはメッシュの共有頂点について。本来ひっついているハズの メッシュ同士が離れてしまってます。glTranslated()や glRotated()で変換している都合で、何も考えずにやると引っ付いている メッシュが離れてしまうのは当然なのですが(^^;。共有頂点の表示表現を 良く考えなくてはなりません。
もう一つは、各テクスチャに対してローカル座標の中心点を設定して、 回すという事だけに留まっていますが、これだと真っ直ぐな背骨に 対して肉の寄り方が変わっているだけなので、背骨が曲がっている 表現とは若干異なります。なので、基準形状(直立不動)に対して、 位置のバイアスをかけられる必要がありそうです。

[PoView]

因みに、関節については関節球を入れた方が良いかなぁとも思っている のですが、胴体についてどうすれば良いのかがイマイチひらめかなかったり。 一枚板をうまく変形させることができればそれで終了なのですが、 そこんところはどうすれぁいいのやら。そんな感じ。

何気にPS2ソフトである所の「COOL GIRL (KONAMI)」を始めてみているのですが、 かなり最初の方でつっかかってて死亡中。因みにこのソフト、DVD二枚組 なのですが、その内訳が 主人公キャラクタが二人居てそれぞれのキャラ毎 にDVD一枚というものです。なんかもう、最近のゲームは普通に作るの 無理だわ と感じてみたり。それにしても、ファミ通WaveDVDとかを見ている 限りでは、このソフトのタイトル自体を見た事無い様に思ったのですが (KONAMIの場合メタルギアしか出していない様に思える感じでしたし)、知らない所で 意外と多くのタイトルがリリースされているのかしら?と思ったり。 そういや「ピューっと吹く!ジャガー」のゲームが出ているのに 驚きました(^^;。

2004/03/20

昼前に起きたけどあまりの寒さにぐうたら寝てたらいつの間にか 夕方(汗;

「爆笑問題のバク天!」。ここ最近のお気に入りバカバラエティー番組。 毎回変なテスト回答やら、知り合いの変な行動やらの投稿を紹介 しているのですが、どれも絶妙なバカっぷりに思わず笑って しまいます。続いて、「こんなハズでは」。日本人の発明だとか 色々。軍手の自動織り機とか。全く気にした事が無かったのですが、 確かに軍手って継ぎ目が無いよなぁとか思ったり。そういや全く 関係無い話。アイスクリームの「雪見だいふく」を 最近食べた時に気づいたのですが、餅に小さな穴が開いているだけで アイスをどうやって入れてるものなのかよく判らないなぁと思ったり。 昔のはアイスを薄い餅で包んだ感じになっていて、形もあまり良くなかった と思ったのですが、今のは表面がスムーズでシワの無い形に 仕上がっています。 因みに、昔見たTV番組か何かで、餅でアイスを包むというのに 苦労と工夫があったというのを見た記憶があります。 餅は熱く無いと固くて加工が難しいですが、逆に熱いと形が自由に なりますが、アイスが溶けてしまいます。最終的にどうやって アイスを包んだかと言うと、餅を薄くして熱いうちに形を 変えてアイスを包んだのち、餅自体が薄いのでアイスで冷まされて 固まるというのが工夫のキモという事でした。それを 踏まえて今の雪見だいふくを見てみると、はて、どうやって アイスを包んでいるのか?.....謎に思いました。

POV読みいじり。オブジェクトツリー構造の各ノードの中心を GUI上で移動できる様にしてみたり。これまでカーソル位置に 対応する変数だけを座標変換していたのですが、追加で前のカーソル 位置も同じ座標変換を行なう必要が出たので、見える所の 追加を行なうだけでOKと思っていた所、いつのまにかあちこち で座標変換を行なっており、そこらじゅう直さなくてはならないのに しばらく気が付かず、動きが変になっているのに悩んでいたり。 修行が足りません(^^;

深夜に「デッドエイジ」というTV番組をやってました。 ある言葉を知っている年齢の境界は?という感じの奴で、 「たのきんトリオ」「ダダン」「ハウスマヌカン」「カータン」など の言葉が出てきますが、流石に20才以下になると殆ど判らない という感じ。因みに言葉が出始めた頃や終り、例えばCMが始まった 時期やTV番組の終った年から、年齢境界を逆算すると、大体当時6才以上 なら判る(覚えている)という感じに思いました。つまり、1983年頃に出てきた 言葉では、2004年現在で20才の人は生まれていない訳ですから、 判らないのが当たり前と言えるのではないかと思います。 番組中、司会の(花まるマーケットの)薬丸裕英が、正解結果が出た後に 「マジで?」と終始言っていたのですが、番組最後で若槻千夏に「マジで」って 知っているのか?と聞いたら「新しいギャグかと思ってた」と いうのに マジで?!と思った。

2004/03/19

出張。帰着。ふぅ。

POV読みいじり。オブジェクト構造をテクスチャ指定で書けるよう にして、テクスチャ単位で動かせる様にしてみたり。

「タモリ倶楽部」。今回はビルの話だったのですが、半田という 仮面ライダーの新作の主役の人が出てました。所がこの人、 異常にビルに詳しいときたものですから唖然。一緒に呼ばれていた 専門家の先生の言葉をもさえぎるというその詳しさに、思わず笑って しまいました。

2004/03/18

出張。泊まる所が無くてしかたなく帰着。ふぅ。

テクスチャIDからポリゴンを逆引きするパスを仕込んでみたり。

先日、メタボールについてWeb探索した所、イマイチ良い感じの 資料ページが見つからなかったと書きましたが、あまりにもキーワード を重ね過ぎたのがダメだった様で、「メタボール」のみで検索して 引っかかったページを順に見ていくと、有用な資料がいくつか 見つかりました。しかしながら、メタボールの基本定義として、 エネルギー密度の中心点が必要で、任意形状をメタボールに再定義 するのは困難な予感がしてきました。もし任意形状をメタボール に再定義する方法を挙げるとすれば、ポリゴンサーフェスモデルを ソリッドモデル化し、表面からの距離などからソリッドモデルの 密度を設定すれば良いのかも知れません。でも実際のインプリメントは 難し過ぎて無理っぽい。

2004/03/17

体調すぐれず休業。

復活した所で 銀行振り込みにちょっこり出かけたり。それにしても 今日は暖かかったですが、それ以上に風がむちゃくちゃ強かったです。

POV読みいじり。POVのテクスチャ文を読み込む様にした所で、 ハタと気づいたり。ボーンに対応する肉をテクスチャ単位でくくり 付ける際、テクスチャから肉となるポリゴンを引けなくては ならないのですが、その直接アクセスパスが無いなぁと。てゆーか、 気づくのおせ―よ!(激汗; どうすんのが良いのかなぁとぐうたら考えた結果、 オブジェクト単位で保持したポリゴンリスト を更にテクスチャIDでソートして、テクスチャIDの切り変わり目を ポインタとして保持するのが一番良いかなぁという結論に達して みました。

深夜に「マリア様が見ている」とかいうアニメをやってましたが、 これって何?何者?いや、何設定?とか思ったり。

2004/03/16

少し早めに帰着。

取りあえずどうでも良いかと書きつつPOV読みデータを入れ込んでみたり。 まぁ、新しい点は無いのですが(^^;

[PoView]

これだけでも構造を手で書くのはかなり面倒です。テクスチャ指定で 動かせる様にするよりも、関節をGUIで入れる為のインターフェースを 考えてみた方が良い気分。

チャンネルザッピングしていたら、NHK教育でTRONの坂村氏が出てました。 でも個人的に興味をひく話は無かったかも。

そんな感じで明日から出張です。

2004/03/15

出張。帰着。ふぅ。

POV読みプログラムいじり。座標変換の勘違いを修正して、 なんとかM-Design(仮)と同レベルまで持って行けたり。 M-Design(仮)のテストで作成したロボを読み込ませてみたのですが、 今まで腕と一体となっていた関節球が腕と分裂して個別の部品となって しまった為、個別に指定する必要があったり。でも、テクスチャ を動かす単位として指定するつもりなので、とりあえず どうでも良いかと思ってみたり。

2004/03/14

昼頃起床。

TVなど見ながらダラダラとペットボトルを潰したり。 このペットボトル、気が付くと思いっきり溜まっていたりして、 しかもラベルとキャップは別のゴミとして捨てなくては ならないのが面倒です。潰すのにも、もう少し力の要らないような 構造にしてくれればありがたい所なのですが、強度の問題も考えると なかなか難しい予感。何か、もっとイイ感じに捨てられる方法が 無いものかと思ったりする所。

ちょっこり本屋に。CGWORLD誌を購入してみたり。 あと「うにっきアラモード」という日記本を買ってみたり。 前者は表紙がエッシャーの絵のようなの以外は、特に今興味を 引く記事は無し。 後者の日記本なのですが、実は何巻か出ていて、一つ前のは 「うにっき3」だったのですが、今回は何故か4では無い ようです。前の「3」は帯に「た〜っぷりと『うに味』お召し上がれ!」 って書かれてて、「うに味って何よ?」と手に取った記憶が あります。でも買ったのは「イラストがなんか良かったから」と いう理由だったりするのですが(^^; そんな感じで、こちらが 公式ホームページの様です。

飯食ってTV観てたら具合が悪くなってきたので、ちょっと寝て 治ってみたり。

POV読みプログラムいじり。ボーン構造を取り込める様になった のは良いのですが、M-Design(仮)との違いでなんだか訳判らなく なってみたり(<またか)。M-Design(仮)では各パーツを分離して 予め関節に対応する座標を(0,0,0)にアライメントしてありましたが、 今回のは、既にワールド座標系上に置かれているパーツをローカル 座標に変換する必要があって、そこんところの変換でごちゃごちゃ になってみたり。もうちっと良く考えを整理する必要があります(^^;

VirtualLightのサンプルをレンダリングしていたのですが、 何故かあるファイルのレンダリングがいつまで経っても終らず。 気づいてみると、進行ゲージが元に戻っていたりしたので、 不思議に思い良く見てみると、なにやらアニメーションフレーム をレンダリングしていた模様。止めるのも勿体無いので、 このまましばらくレンダリングさせてみる事にしました。 Windowsがハングらなきゃいいけど(^^;

そんな感じで明日は出張です。

2004/03/13

夕方頃まで寝てたり。

Webをぐるぐるしていたら、 VirtualLightなるGIレンダラ(グローバルイルミネーションレンダラ) の存在を知ったり。 ところで、グローバルイルミネーション(大域照明)と言えば、 POV-Rayではラジオシティの事を指すと思うのですが、 AdvancedRenderManによれば、大域照明計算の一つの方法として ラジオシティ法を指すという事のようです。 そこで少し疑問に思ったのですが、 大域照明計算の方法はラジオシティ法以外にも色々ある様なの ですが、一般に「GIレンダラ」と言うと、どういう特徴を備えた ものをそう呼ぶのかしら?と思ってみたり。大域照明計算が 可能なものをそう呼ぶのだとすれば、POV-Rayも GIレンダラと呼んで良さそうですが、何故かそうは呼ばれていない 様に思います。 「ラジオシティの使えるレイトレ」と「GIレンダラ」の違いがイマイチ 区別できていないTANEなのでした(^^;

POV読みにM-Design(仮)レベルのオブジェクト構造記述を 取り込んでみたり。

2004/03/12

出張。飲み会。明け方帰着。ぐったり。

2004/03/11

少し早めに帰着。

ポリゴンというか、形状のブーリアン演算のアルゴリズムについて Webを検索してみたり。用語や概念、あと3Dソフト上で既に実現されている ものの使い方については色々ヒットしますが、実際のアルゴリズムや 実装に関する資料(日本語ページ)は皆無に近い感じ。探し方が悪い ような気がしなくもありませんが(^^; メタボールについても検索 してみましたが、こちらもアルゴリズムの話については皆無。むーん。

まぁ、まずはPOV形式を読み込んで、関節を動かせるところまで 作り込んでみるという感じかも。

2004/03/10

出張。帰着。ふぅ。

POV読みにちょこり手を入れて、値の指定に四則演算を使用 できる様にしてみたり。事実上意味無し(^^;

モーションについて。 先日ちょっこり書いたのですが、 例えば腕と胴体を別オブジェクトで作成すると、腕を動かした 時も、変形は特に行なわなくても、それなりに見えるの ですが、皮膚が一枚岩であると想定すると、オブジェクトが 分かれている以上、どうしても継ぎ目が生じてしまいます。 逆に一枚岩で作成したモデルを胴体領域と腕領域に塗り分けて 腕を動かした場合、法線計算可能な状態なので、その 継ぎ目を見えない様にするのは容易だと思われるのですが、 継ぎ目の変形をうまく行なわないと激しく元の形が崩れる 事が想像されます。
そこで二つのオブジェクトをうまくひっつけられる事が できるならば、それが一番良いのでは?と思ってみたり。 以前、 たぼさんちでデローニー分割という奴のトピックが ありましたが、そいつを使えないかなぁとぼんやり思って みたり。ただ、肌の表面となりうる頂点のみを使用して 面を張る必要があるという点を考えると、 どの角度から見ても見えない不要な頂点の削除とかの方が なんだか難しいような気がしなくもありません。また、 辺の情報を無くして頂点だけで補完しようとすると、 必ずしも可逆にならないケースがあるのが問題かも。 元の形は崩す必要は無く、単に継ぎ目をうまく消す事が できれば良いので、 ブーリアンの加算+やんわりメタボール みたいな(<わかるか?) そんな感じでひっつけられるうまい方法が無いかなぁ... と思ったりしている最中。

2004/03/09

出張。

2004/03/08

出張。

2004/03/07

昼頃起床。

TVなど見ながらぐーたら過ごしたり。

POV読み込みの続き。頂点法線が指定されなかった場合の 法線計算の仕込みとか。単なる安全コードなので、特に何かが 変わる訳ではなく。

テクスチャデータのデータ構造をどうしたものかと悩んで みたり。 Wings上のマテリアル定義はPOV上でのテクスチャとして定義 される事になる訳ですが、このテクスチャをボーンの動きと 連動させる必要があるので、テクスチャの管理が重要と なります。でもうまく整理できず。うんむぅ。 そして気が付いたらいつの間にか寝てたり(ぉぃ;

そういや昨日の深夜の番組で、週間少年ジャンプで連載 されている「ワンピース」の映画の紹介番組をやってたの ですが、その中でTVアニメは4年くらいやってるという事 を言ってました。私自身、ちゃんと見る様になったのは つい最近の事なので、記憶が曖昧なのですが、日曜の ゴールデンに移ってから4年くらいだという記憶があり、 ドラゴンボールの後番組として水曜にやっていた事があった ように思うのですが、それって4年よりも前の事のような記憶が あります。はて.....

そんな感じで明日から出張です。

2004/03/06

夕方頃起床。寝過ぎ。

取りあえず、Wings3DのPOVプラグインで出力したファイルをパースできる 様にする所から始めてみたり。まずは パーサーだけデバッグ。 所が、POVフォーマットの大らかさのせいでパースが妙に難しい事に 気づいてみたり。一つはベクトル変数内の要素の区切りが ','カンマと' '空白の両方を受け付ける点。文法上はカンマで区切る事に なっているみたいですが、Wings3DのExportファイルでカンマで区切られていない ベクトル表記で出力されている部分があるにも関わらず、povrayでは エラーせずに読み込める様なのでぐったり。 もう一つはmesh2プリミティブ内などで使用されているface_indices。 この中で、面が使用するテクスチャを指定するのに、 「<x,y,z>,t1」という表記で括弧の外のt1で テクスチャリストのIDを示すのですが、各頂点毎にテクスチャを 変更する事もできる為、「<p0,p1,p2>,t1,t2,t3」というのも 受け付けます。所が、yaccでこれをパースすると衝突が発生してしまう のです。最長一致で判定すれば、後者でなければ前者という順番が成立 する様に思うのですが、そうはならない様で悩んでみたり。仕方なく、 前者の三点同一テクスチャIDというのだけを受け付ける様にしてみたり。

取りあえず形状だけを読み込んで表示できる様にしてみたり。

[PoView]

POV出力された頂点法線をそのまま使用できるので、曲面表示が可能に なっています。まだカラー情報やテクスチャは 読み込めてません(^^; 因みに、Wings3Dではテクスチャマップ表示がイマイチうまくできないので、 今までテクスチャマップの調節はPOV-Rayで実際にレンダリングして 確認していたのですが、これがうまくいけばテクスチャマップ後の 画像プリビューが可能になるかもと自分で期待してみたり(^^;

2004/03/05

出張。帰着。ふぅ。

そういや、glu.hの定義の件について、Cygwin-MLのページを眺めてみると、 私が書いたのと同じ様な事な点を挙げている投稿がありましたが、 結論はイマイチよく判らず。当面、HairMakerのコンパイルには w32api-2.4-1を使用していただくという事でお願いしますm(_'_)m

出張中に色々と考えた結果、モーションデザインで読み込むファイルは、 Wings3Dで出力したPOVファイルを読み込んだ方が、一番情報の劣化が 無くて良いのではないかという結論に達してみました。
理由は大体以下のような感じ。

  1. wings形式はフォーマットが判らない(^^;
  2. 3DS形式はlib3dsで読む限りテクスチャマップの取得ができないのと法線情報が 無くなってしまうのが問題。
  3. POV形式ならば前述いずれの問題もクリアされる。

という所。ただ、モデラと別付けでモーションデザインを行なうと なると、先日も書いた様に、モデル変更をモーションデータに結び付ける 事が困難であるという問題があります。そこで、ボーンへの関連付けは「マテリアル」で 行なう事を考えました。これならば、マテリアルの割りつけはモデラ上の 標準機能で行なえ、スムージングなどのモデル変更にも追従できる のではないかと考えました。

そんな訳でPOV形式読み込みのパーサーを書き始めてみたり。でも 寒さと眠さで死亡。

2004/03/04

出張。

2004/03/03

出張。

2004/03/02

今日も具合が悪くて一日中寝てたり。

なんか気になってはいたのですが、そのままほったらかしてました。 つい先日Cygwinパッケージのアップデートをかけたときに、 HairMakerの最新版0.03がコンパイルエラーする様になっていた ので調べてみました。

エラーはgluNurbsProperty()のプロパティ、 GLU_SAMPLING_TOLERANCE,GLU_DISPLAY_MODEが見つからない というものです。確かに/usr/include以下をgrepしても見つから なかったのですが、元々どこにあるものなのかを意識していなかったので、 いきなり無くなってもどこにあったものなのかさっぱり判りません。 で、man gluNurbsPropertyで調べたところ、どうやらvalue引数は /usr/include/w32api/GL/glu.h に入っていたので、 この辺を探してみることにしました。include/w32apiは Cygwinのスナップショットにも含まれているので、 今手元にある過去のスナップショットを順に手繰ってみた所、 20030912と20031002とで winsup/w32api/include/GL/glu.hが大幅に違っていました。 20031002から20040206までのヘッダファイルに変更は無いようです。 で、最近入れ替えたものの中にw32apiが含まれていて、 その中のinclude/GL/*は最新のCygwinスナップショットのそれと 同じになっている為、今回のコンパイルができなくなったという 現象に辿りつくという感じの様です。
それにしても、去年の10月初め頃からのレベルダウン変更が今頃 反映されている上に、スナップショットの方も4ヶ月間そのままなので、 なんか すぐに直らないような気がしてきたのですけど(^^;.....

ネットに繋いでその辺の事情を探ってみようと思ったのですが、 サーバー不調の為か接続できず。しかたなく cygwin-snapshot-20040225のw32api内に含まれるChangelogを眺めてみた のですが(と言っても英語は読めませんので、文字列'gl'をサーチして それっぽい変更があるかを見ただけですが)、2003-09-24に変更が加わって以後、 2004-02-19に何やら修正変更が加わっている程度の変更しかありません。 どうやら、2003-09-24に 「include/GL/glu.h: Rewritten from scratch.」などという変更が 加わっていて、その時にレベルダウンしたと思われます(具体的な 差分が判らないので推測しかできないのですが)。 で、2004-02-19に加えられた変更に 「GLU_ERRORをdefineした」というものがあります。 「ちょっとした修正」の様ですが、元々20030912頃のヘッダファイルには ちゃんとdefineされているものなので、これだけ直しても話にならんと いう事に気づかないとダメなのかも。何故書き直しをする必要が あったのか、その理由は不明なのですが、少なくとも書き直す前と全然違う のだから「やるんだったら ちゃんと直してよぉ」と思えなくもありません(^^;

という訳で、HairMakerで遊べなかった場合はw32apiのパッケージを 少し古いものに戻してみるのが良いかも知れません(^^;

2004/03/01

なんだか具合が悪くて死亡。ってゆーか、さむっ!

うまくいかなかった当たり判定の考え直し。tgifを使って 2Dで考えて、なんとなく考え方自体は合ってそうなんだけど なんだか違うという事で見直していたのですが、どうやら 回転を行なう関数が思っていたのと逆回転を行なっていた様で、 回転角度を戻すつもりがそうなっていなかった模様。他にも軸の 回転順序が逆だったりそこら中間違いだらけ。 そんな感じでどうにか画面上で選択したオブジェクトの 回転軸を回せる様になりました。ふぅ。HairMakerの時も 座標変換の順序とか間違えててうまくポイントサーチできなかった りしていたのですが、今回も同じような事でつっかかって たりして、修行が足りなさ過ぎですね(^^;

折角なので、簡単な人型(?)ロボットをモデリングして実験してみたり。 セーブしないままモデリングしていたら、途中でWingsがハングして 真っ白に戻ったりしながらも、こんな感じになってみました。 因みに、プログラム名はM-Design(仮)となってます。

[M-Design(仮)の表示]

ボーンを既にあるポリゴン群に仕込むのではなく、分解された パーツをアセンブルする形なので、最初のデータ作りの方が大変で、 全体モデルを動かしたい単位に分解し、 各パーツは関節に相当する部分が座標(0,0,0)になるように調節 する必要があります。 具体的な作業としては、

  1. Wingsで全体をモデリングする。
  2. 部品に相当するオブジェクトをSelected Exportで3ds形式にExportする。
  3. 分解された3ds形式のパーツの関節に当たる座標を(0,0,0)にアライメントする。
    具体的には WingsでNewファイルを開き、Import で3dsファイルを読み込み、 マニュアルで動かして関節原点を(0,0,0)の位置に動かした後、再び Exportで3dsファイルにセーブする。それをパーツの数だけ繰り返す。
  4. オブジェクト構造ファイルを手で書き起こす。ちょっと M-Design(仮)に読み込んでは調節して修正を繰り返す(ローカル座標変換 慣れしないと一発で思い通りの部品配置をする事ができませんでした。 作った本人なのに...(^^;)。

こんな感じ。初期オブジェクト構造ファイルを書くのが面倒で、 全体モデルをWingsで表示し(パーツに分解すると相対座標が判らなくなるので)、 頂点選択で座標を調べてはローカル座標に電卓で 変換計算しては(暗算できればその限りではありません(^^;) テキスト入力 する必要があります。 必要なポリゴンオブジェクト を最初に一気に読み込んだ後、M-Design(仮)上でボーンを仕込めれば、 見ながら作業できる点で、作業効率は改善されるのかも知れません。
一応ファイルのセーブ機能を付けてみたので、初期ファイルさえ 作れれば、ポーズを変えてセーブ/ロードする事は可能です。 ただし、それをPOVなどで使用するパスは無いので、 M-Design(仮)内でいじって遊ぶだけに留まってしまいますが。

そんな感じで、大して遊べはしないと思いますが、「3D遊」の下に 実験コードを置いてみましたので、暇な方は遊んでみてください。


TOP PREV