!!!独り言日記 !!続・ポリゴンメッシュのUV展開またはテクスチャ生成でほしい機能(2008/02/28) メタセコとSAIを行き来している部分をムービー化。 すでに一部テクスチャを貼ってます。 {{flvplayer http://ft-lab.ne.jp/files/modeling/meta_movie_20080227.flv,width=550,height=400}} !外部保存した画像を保存した場合にプレビューへの自動更新 SAIにてテクスチャを描画してファイル保存すると、メタセコのウィンドウをアクティブにしたときにテクスチャの再読み込みが行われるようです。 そのときに、プレビュー画面のテクスチャは自動更新されます。 これが便利でして、SAIとメタセコをいったりきたりして確認しながらテクスチャを塗ることが可能になります。外部ファイルを扱うことの魅力ではありますね。 モデリングの前半が形状生成とすると、後半はほとんどがこのテクスチャ描画作業になりますね(ボーンを入れてのポージングはその後)。 !既存頂点を使って面を生成した場合のUVの自動割り当て 顔の目の部分はくりぬいてあったため、この部分にポリゴンを貼っています。 既存頂点を使用して面を張る(生成する)場合は、既存頂点に割り当てられているUVが新しい面に反映されます。 後、Shadeの機能説明で間違ってた認識がありました。 Shadeの「リンク」ですが、実体化できる機能をツールメニューのConvertの一番下にてずばり「リンク形状を実体化」を発見。でも、SDKにはその機能はないのです(^_^;;。 そろそろポージングまで加速したいので、あとはセコセコとSAIでペイントしていくことにします。顔を描きながらをムービーにとろうかとも思ったのですが、自分自身あんまり効率よくないものですので・・・(汗)。関係ないですが、小学校時代マンガ研究部でした(^_^;;。当時、北斗の拳や男塾、奇面組が流行っていたのを覚えてます。ジャンプ全盛期ですね。 ちなみに、仕事の場合だとローポリものは1日でモデリングからテクスチャまで完了させるペースじゃないといけないんだそうで(まわりから聞いた話だと)。そして、後1日でモーションを入れる。こっちは趣味なんでいくら時間がかかってもいいのですが、そうなるとツールの性能がかなり仕事ベースでは大事になってきますね。 !!ポリゴンメッシュのUV展開でほしい機能(2008/02/26) メタセコにてUVPowerUnwrapプラグインを使ってUV展開。そしてテクスチャを出力するまでの流れをムービーにて説明です。 {{flvplayer http://ft-lab.ne.jp/files/modeling/meta_movie_20080226.flv,width=550,height=400}} メタセコの標準機能をあんまり使ってない説明ですのでよろしくないですが、「UV操作ではこれがほしい」を列挙してみました。 !オブジェクトの選択した面のみUV展開対象にする ムービーでは説明してませんが、メタセコの標準で選択した面だけで個別にUVを設定できます。たとえば、顔の正面のみを選択した状態で平行投影にてUVを割り当て、別途で選択した側面と後面を同じように投影してUVを割り当てて1枚に収めるといったことができます。 UVの選択と移動(場合によっては拡大縮小と回転)を駆使しないといけないのですが、そこで「UVPowerUnwrap」の出番です。連続した面が複数あるのであれば(それが島になっているようなオブジェクトの場合は)LSCM展開をAutoで実行するだけ、すべてが輪のようにつながっている場合は切れ目を入れてLSCM展開でゆがみを抑えてUV展開してくれます。 Shade9では全体に対してXYZ投影、球、円筒投影にて展開するだけなんですが、部分的に展開して、移動しながら配置を整える機能はほしいところ。 !接続面の選択 メタセコではUV操作モードにて、[Ctrl] + [Shift] + マウス左クリックにて、連続して接続されている面を選択できます。 UV編集画面上で髪のフサ(複数ポリゴンで構成される)を選択して移動・回転する、ってのではよく使います。上のムービーでもそれをして選択をショートカットしてます。 モデリング時の頂点や辺・面選択でもそうですが、選択機能はメタセコは充実してますね。 !ワイヤーフレームの焼付け いわゆる「ベイク」ってやつです。UV操作モードにてテクスチャをファイル出力できるのですが、このときにテクスチャにワイヤーフレームも描き出されます。 これが非常に大事で、他のPhotoShopやSAIなどのツールでテクスチャに模様を描いていくときのアタリになります。 !UV情報の持ち方 *一度UVを割り当てた後に、モデリングに戻ってとある面を削除した場合、当たり前ですがUVがすべてリセットされることはありません。削除した面が消えるだけです。 *あらたに面を追加した場合を考えます。既存の頂点を利用して面張りするときに、その既存頂点が持つUV値が自動で割り当てられます。ですので、一度面を削除して同じ位置に再び面を張ると、UVが復活します。 *複数のオブジェクトやマテリアルをマージしても、UVは統合されるため壊れるまたは初期化されてしまうことはありません。これにより、マテリアル別にUVを割り当てていって、最後にオブジェクト・マテリアルをすべてマージして1枚のテクスチャに模様を所狭しと収める、といったゲームでよく使うUVおよびテクスチャの技が使えそうです。 UVPowerTools/UVPowerUnwrapで便利なことはほかにできるようですが、基本として上記だけでもShadeにて対応されると結構使いやすくなると思うけどなぁ。と要望させていただければ(^_^;;。 関係ないですが、SAIが有料化されましたね。 いつのまにか、シェアウェア版のみのダウンロードになってました。 早速購入するかな。 !!LSCMを使ったUV展開 in メタセコ 訂正(2008/02/25) なお、「オブジェクトに対して1つのLSCM展開」である点に注意してください。 マテリアル別には対応していないようです。 は間違いでした、すみません。今確認してみたらマテリアルごとにできてますね。 髪の毛部分はメタセコ標準の投影でUV割り当てしようと思ったのですが、LSCMだと辺の選択なしでLSCM展開を実行したらいい感じにばらけてくれてました。 今回はすべてLSCMに頼ろうかなぁ(前は顔と体のみLSCM使ってました)。 !!ムービーに実験的に説明を入れてみた(2008/02/25) 実験的にムービー内にFlash8でメッセージ文をおいてみました。手順は以下のとおり。 *操作説明をCamStudioにてaviファイルで撮る *Flash8にて埋め込みでFLAのフレームにあわせるようにaviをライブラリにインポート(ここでエンコード処理が行われる) *シーンのタイムラインにムービーを配置(全フレームにムービーがぱらぱらマンガ的に展開される) *1つレイヤを追加して、ここにメッセージを配置とする。 *適当なタイミングまで進めてキーフレームを打ちメッセージを入れ替える。この作業を繰り返す。 *書き出しでムービー出力(ここでエンコード処理)。aviで出力するとする。 *aviファイルをFlash8 Video Encoderに渡して、flvファイルに変換(エンコード処理)。 これでようやくWebにて公開できるように。 しかし、エンコード何回やってんだという感じです(^_^;;。普通に動画だけflv化するよりもファイルサイズがでかくなってしまった・・・。ファイルサイズを小さくするとか、劣化させないようにするとか、なにかコツがあるのかもしれません。 {{flvplayer http://ft-lab.ne.jp/files/modeling/meta_movie_20080225.flv,width=550,height=400}} 内容は、例によってメタセコの操作説明です。 選択についての便利機能の説明が抜けてましたので追加です。 普通の選択以外にも「接続面」での選択ができ、これだと髪の短冊をまとめて1つのオブジェクトにした場合につかみにくい、といった問題も簡単に解決できます。 髪の毛を1つのオブジェクトにまとめているのは、後でテクスチャ・UVを指定するときに1枚で収めてしまいたいため。 メタセコの場合は、点・辺・面を同時に選択でき、また複数オブジェクトをまたいだ選択もできます。少しオブジェクトの意味が薄いので違和感はあるかも。オブジェクトのパネルでオブジェクトを階層化できるのですが、可視とロックはまとめて反映されます。しかし、選択は個別にしないといけない、マテリアルはやっぱり個別にしないといけないです。選択機能に関しては今のメタセコはいいですが、オブジェクトの一覧に関しては、ツリー化+子形状にオブジェクト選択やマテリアル設定がまとめて反映できる、といった仕組みはほしいかもしれませんね。 ちなみにムービーでダブルクリックすれば選択、選択解除みたいな説明文がありますが、すみません、シングルクリックでOKでした。 !!LSCMを使ったUV展開 in メタセコ(2008/02/24) http://space.geocities.jp/uvpowertools/ にて公開されている、メタセコのLSCM(最小二乗法を使った等角マップ)プラグイン「UVPowerUnwrap.zip」は非常に便利です。 おそらくどのツールでもLSCMによるUV展開は使えるんじゃないかな(Shadeでは無理っす(^_^;;)。 ただし、メタセコシェアウェア版のユーザ登録を済ましている方でないと使用できません。メタセコ標準ではUV機能が弱いため、このへんは利用できるようにしておいたほうがいいかと思います。 !使い方 インストール方法は解凍後のreadme.txtを参照のこと。 オブジェクトを切断する線を「辺」で選択して、形がくずれないようにピンなるものを「点」として選択します。ピンはオブジェクトの中心2点を選ぶとよい結果になるとのことです。辺は、きっちりと選択していかないと全非選択になりますので慎重に(UNDOで復帰できるけどよく選択が消えます)。 {{ref_image unwrap_20080224_0.jpg}} この場合ですと、3カ所に切れ目を入れてます。これを元にエイヤで開くのがLSCMの特徴です。 上記の切断線とピンをそれぞれ辺と点にて選択後、メニューの[選択部処理]-[UVPowerUnwrap::Auto]を選択しましょう。 これでUVが各面の頂点に反映されます。==なお、「オブジェクトに対して1つのLSCM展開」である点に注意してください。マテリアル別には対応していないようです。==マテリアル別にUV展開できました。 結果として、以下の画像の左のように展開されます。 これをUV操作の画面にて顔部分が一番大きくなるように位置移動・スケーリングしたのが右です。 {{ref_image unwrap_20080224_1.jpg}} 単純に平行投影でUV展開する以外は、全部このUVPowerUnwrapで代用できるんでないかというくらい強力です(逆に言いますと、メタセコ標準のUVは少し使い勝手に難があります)。ソースもありますので研究対象にする価値はありますね。ただし、1万頂点を越えたものを展開する場合などは極端に遅くなります。LSCMは論文でさらっと読みましたが、これを高速化する理論もありますね。 このような便利プラグインがあることを前準備として知ってもらって、メタセコのUV展開の方法について説明を入れていくようにします。 !!頂点の位置を揃える(2008/02/24) {{flvplayer http://ft-lab.ne.jp/files/modeling/meta_movie_20080224.flv,width=550,height=400}} 典型的なのは顔半分を作った場合に、中心になる頂点は編集中にずれてしまうことが多いので、その真ん中の頂点をX軸の0にあわせる、というもの。 これをミラーリングすると、顔になりますね。 こうすると、メタセコの場合はミラーリングをフリーズしたときにX=0の位置での頂点は自動的にくっつきます。軸のどの位置で揃えるかも数値指定できます。Shadeでは数値指定はありませんが、ポリゴンメッシュ編集のalignにて揃えることができますね。う〜ん、でも0であわせる的な数値入力による移動機能は必須かもしれない。 !!モデリングでの顔の分割調整(2008/02/23) 顔モデリングはできるだけ四角形を使ったほうがよい、といったことの理由はおそらくレンダリングしたときにできるエッジ部分の微妙な陰の回避だと思われます。四角形も完全平面上にあるとは限らないのでモデリングしているときにこの問題は出やすいです。それを意識したモデラーまたはレンダラなら問題ないとは思いますが、逆に言えばそれを意識してレンダラも書かないといけないのかな。自家製レンダラ、そういやこれが意識できてないや。修正しよう(面ごとの頂点法線を受け取るレンダラなら問題ないとは思います。独自で多角形を分解する・法線を算出するレンダラの場合は注意したほうがいいかも)。 ということで細部を詰めていきます。 {{ref_image face_20080223.jpg}} たとえば上記の顔の場合、顔を作るときに適当にポリゴンを張り合わせただけなのですが、ワイヤーフレームを消すと妙に汚くなります(ワイヤーフレームにて助けられているというかごまかされている)。赤い部分の対角線が顔の流れとは逆になるほうが自然になりそうです。 このような部分を中心に修正&輪郭調整などを。ほんとは、顔を作るときに意識して面張りすべきでしたね。 !ワイヤー メタセコでは「ワイヤー」にて、2つの三角形(で四角形を構成できるものとする。辺の選択が必要)の対角線部分を切り替えることができます。辺をクリックすると対角線が切り替わります。この機能にて怪しい陰が出来る部分をつぶしていけます。2つの三角形を四角形にするのもこのワイヤーでできますね。 この部分を修正したものは以下のようになります。 {{ref_image face_20080223_02.jpg}} 見難いですが、三角形の向きに流れを作るようにしました。 これで一通りのモデリングは完了で、いよいよUV設定&テクスチャです。 まだ説明できてない「選択」の種類と「整列」を先に説明後、UVに入ることができれば。 テクスチャを描くのはSAI(ペイントソフト)を使います。別になんでもいいのですが、使いやすいです、タダだし。SAIとメタセコの連携でもちょっと気配りがあるんですよ。それも説明できればと思います。 !!続続・ポリゴンメッシュでのモデリングでほしい機能(2008/02/23) 人体を作ると、だいたいポリゴンツールの基礎的なことは網羅すると思いますので いい材料かもしれませんね。 ということで、「顔と胴体をくっつける」を例に、メタセコの機能を引き続き説明していきます。 {{flvplayer http://ft-lab.ne.jp/files/modeling/meta_movie_20080223.flv,width=550,height=400}} 作成モデルは襟の部分で顔(首)と胴体の接続をごまかしていたのですが、拡大して接続するまでをムービーにしています。操作がミスってるのがありますが、それはちとスルーしてください(取り直すのがめんどくさい(^_^;)。 !一オブジェクトにて複数のマテリアルを割り当てる 顔を含む体全体はつながっているわけですが、顔部分は高解像度に、体は粗いテクスチャで、としたい場合も多いかと思います。 メタセコの場合は、1ポリゴンごとにマテリアル番号を持つことが出来る構成になってます。MayaもMaxもそうですね。Shadeの場合、例えばサイコロを作る場合は(UVをきちんと各面ごとに設定できればいいのですが)、どうするんだろう。手っ取り早く6つのマテリアルを設定したい場合も出てきそうです。なんで、手始めに「サイコロをうまくマッピングする」から始めるといいんじゃないかなぁと思います。現状は、6オブジェクトに分離しないといけないですが、1つのオブジェクトでさくっとできるかどうか。 この部分は、UV展開の効率化も絡みそうですね。 上のムービーでは、まず顔と胴体をひとつのオブジェクトにしてます(オブジェクトウィンドウでドラッグしてるだけ)。 !移動&吸着 [V]で選択頂点を移動できますが、加えてドラッグしながらマウス右クリックで近接頂点にスナップ&くっつく処理を行うことができます。首と胴体を接続する場合は、片方の頂点を移動してこの操作をするだけなので一回の移動で頂点もまとめることができて非常に便利です。Shadeだと「移動 + 一点に収束 + 頂点マージ」の3つの操作が必要になる部分です。 !面の分割(ナイフ) [K]で面を分割します。首と胴体を接続する場合、同じ頂点数同士で結びつけることができるとは限りません。ほとんどは一致しないと思います。ので、首か胴体のどちらかの頂点を削除するか、面を分割して頂点を追加するか、としないといけません。 メタセコではもう少しスマートなやり方があると思いますが、自分の知ってるナイフで操作してます(見えない後ろの面も切れてしまうので、それの修正も行ってる操作をしてます)。ナイフ機能(ナイフで面を切断)に関しては、Shadeと大差ないですね。 !選択している頂点数・ポリゴン数を知る メタセコの場合は、ウィンドウ右上に「V:1」「F:0」なんて表記があります。これは今現在選択されている頂点数、ポリゴン数を表します。上記操作では、頂点の範囲選択を何回か繰り返しているのがあるのですが、この選択頂点数を確認している動作です。 複数頂点が近接している場合は頂点をくっつける、というのをやってます。 Shadeでは(なかなか気づかない人も多いかもしれませんが)、情報ウィンドウ(Windowsの場合は[Ctrl]+[i])で見ることができますね。これ、別ウィンドウで表示するんでなくてメインの図形ウィンドウの上に表示するようにしてほしい、と思うのは私だけでしょうか。結構確認しますので、目線を移動させてウィンドウを探すのが大変。 ムービーの最後のほうで、選択操作(接続面での選択)をしようとしているのですがオブジェクトをロックしたままでしたので選択できてません(汗)。 この選択手段の種類と整列について、次回はムービー化してみようと思ってます。 ちなみに上記のモデリングしているところで(手順を間違えている部分と説明のためにカーソル位置を移動している部分を除いては)、左のコマンドボタンをマウスで移動してプッシュする という操作があまり発生していないのがわかりますでしょうか。 ほとんどはキーボードショートカット+マウス操作でモデリングをしています。 手数を極力抑える、距離の遠いマウス移動を本来の操作以外で発生させない、というのは利にかなっているなぁと思います。 !!Shadeを一面図にしてみる(2008/02/22) そういやShadeのショートカットの存在を忘れてました。 {{ref_image shade_shortcut_20080222.png}} 個々のキーボードに操作を割り振ることができるのですが、これで 透視図でのカメラのパンっぽい動作(視点と注視点が同時に移動するので実際は微妙に違う)、ズーム、回転はショートカットで代用できました。 後、正面図、側面図、上面図、透視図の切り替えもショートカット化でメタセコっぽくしてみました。 モデリングデータは途中のものをメタセコからShadeにインポートしています。 {{flvplayer http://ft-lab.ne.jp/files/modeling/shade_movie_20080222.flv,width=550,height=400}} ちらつく現象がそのままキャプチャされてます。重いシーンだと結構ちらつきが発生しますね(レンダリング時は、デスクトップ自身がちらつくことが多いです)。 メッシュ編集機能にメタセコで言う稜線の「面張り」(Shadeでは「稜線の押し出し」)はありますね。 後、頂点を結合して(一点に収束)、くっつける(頂点マージ)も存在しています。二段階にはなりますが。 が、頂点結合は選択頂点の平均を取った位置ではなく、1つの点に偏る?感じ。 頂点マージもマージのための検索距離の指定はほしいかも。現状は完全一致でないと結合されないみたいです。 何かモデリングしようかと思ったのですが、頂点の移動による変形はできるけど面を新たに押し出す以外で面を作成する手段がないと進まないかなぁ(^_^;;。 気になる点は、図形ウィンドウで隠面処理されているのですが隠れる部分の頂点が選択できない点。上記ムービーの操作で、なかなか頂点がつかめずに迷ってる部分です。これは、OpenGLのZバッファで隠面された結果を元に「頂点がそこにあるか」をスクリーンの二次元空間で調べているからと思われます。 この場合は、UniformGridの性質を有効に利用すれば対応できるかと。いつUGを構築するか、って問題がありますがモデリングでは一時的に手が止まる瞬間があります。それはカメラを移動・回転・ズームさせてマウスを放した瞬間。そのときにスクリーン座標でのUGを構築すればOK(スクリーン基準のAABBと思ってもらえば)。マウスドラッグ中は頂点操作は行わないので空間構築は不要です。マウスアップの瞬間が勝負時です。マウスアップ後は人情的にわずかに確認の時間が生まれますので、それをうまく利用するわけです。 これで隠れてる頂点やマウスカーソルに近い頂点も割とストレスなく検索できると思います。 これができると、選択された頂点からどれだけ距離が離れている頂点を素早く検索してマージするか、も楽にできます(近接するグリッドだけを見ればよい)。ただ、頂点移動でストレスがたまってはいけませんのでリアルタイムにグリッド間を移動できる仕組みがいります。このあたりの理論は某所でも実は使っております。図形ウィンドウにそのへんの仕組みがフィードバックできればいいのですが。 単純理論なので論文レベルじゃないと思うけど、UniformGridはいろんなところで使えるんじゃないかと(前にも日記で書きましたが(^_^;;)。 !!MS-Office関連のファイルフォーマット(2008/02/22) Microsoftにて公開されてます。 http://journal.mycom.co.jp/news/2008/02/19/005/ http://www.microsoft.com/interop/docs/OfficeBinaryFormats.mspx Word(doc) / Excel(xls) / PowerPoint(ppt)はよく使うので、互換ソフトとかを開発する場合は使えそうですね。 今でもMS-Officeは文書作成・表計算では標準的に使われるんだろうか(安い互換ソフトが数社から出ているけど)。Wordは仕様書を書くときによく使ってます。が、誰もが見ることができるわけではないのでビュワーがほしいところ。pptはビュワーありますね。と思ったら、Wordもビュワーがあるようです。 http://www.microsoft.com/downloads/details.aspx? FamilyID=95e24c87-8732-48d5-8689-ab826e7b8fdf&displaylang=JA !!e-tax 開始届出書についての追記(2008/02/22) 税務署から連絡がありまして、開始届出書は1回出したら後は毎年継続して使うものとのこと。 私の場合は2年前に届出していたのですが、これが今回も使えたってことですね。 毎回届け出するものかと思ってました。 しかし、まだ住基カードができたよ連絡が来ない・・・。たしかに時間がかかるという話は伺っていたのですが、3/17までに来ないと(その後役所にダッシュしてカードの受け取りと電子証明書発行しないといけませんし)間に合わないので。 !!続・ポリゴンメッシュでのモデリングでほしい機能(2008/02/21) あんまりモデリングに進展がないのですがムービーから順を追って説明。 操作はメタセコです。「ほしい」対象はShade(レンダラではお世話になるのですが、ぶっちゃけモデリングをShadeでしてない(^_^;;)。 {{flvplayer http://ft-lab.ne.jp/files/modeling/meta_movie_20080221.flv,width=550,height=400}} !面の削除 [D]で削除モードになるので、マウスをあわせると対象の面がハイライトされます。後はマウスクリックするだけです。Shadeの場合は面を選択してから削除を選択することになりますので、逆ではありますね。後、Shadeの場合は選択して削除、の2手間になってしまいます。 !ミラーリング&フリーズ 人体などでは左右対称ですので(実は完全に対象ではないほうがいいみたいですが)、ミラーリングしつつ作業するとバランスを確認しやすいです。==Shadeの場合は「リンク」がその機能に近いのですが「フリーズ(実体化)」の機能がないため、リンクはリンクのままなんですよね。フリーズ機能をぜひ。==ShadeのリンクはConvertの「リンク形状を実体化」でできました。 !マニピュレータ 赤がX軸、緑がY軸、青がZ軸の操作を行うガイドです。中心ドラッグで3軸同時に処理。Shadeは10から装備。ですが、移動のときとかは出したくないこともありますので、隠す機能はいりますね(さすがにそれは存在するでしょうけど)。メタセコでは、たとえば移動だと[V]を二回押すと消えたり出たりします。ショートカットで消したり出したり、は結構便利です。 !面を生成 これが非常に便利。既存の頂点を使って面を生成します(空間に頂点を新たに追加しつつ面を張ることも可能)。上のムービーでは、足の接続部の底に面を張っていってます。これがないとポリゴンツールとしては機能半減だと思ったりもします。Shade9ではないですね・・・。 ということで、Shadeにて対応してくれるとうれしいかもしれない要望を追加してみました(^_^;;。 しかし、メタセコはよくユーザのことを分かって設計されてますね。かゆいところに手が届いている感じがします。Ver 2.4.8にて、bmpファイル出力できなかった問題が修正されてます(UVのテクスチャ出力でなぜbmpが出せないのかなぁと思ってました。バグだったのね)。 ムービーでのモデリング説明は割と分かりやすいかもしれないとニコニコ動画を見て感心しました。自分自身、メタセコのチュートリアル本は実は持ってなくてニコニコ動画の講座で覚えました。他のツールの使い方で(XSIとMax、Blenderの講座だったかな)、ですけどその作法がそのまま使えるのもツールとしては重要な要素のように思います。 後は、過去に使っていた3Dアトリエの使い方をそのまま持ってきてます。 まだ足の調整いりますが、後はほとんど頂点移動でのバランス調整だけではあります。後はUV、ですがメタセコはUV弱いのでUV展開の一部はシェア版のプラグインに頼ることにします。 !!続・法線マップから高さマップへの逆変換(2008/02/21) GIMPのnormalmapプラグインのソースを参考にさせていただいて、実装を試みてみました。 元の法線マップ。 {{ref_image normalmap_bump1.jpg}} 法線マップから高さマップ変換。 {{ref_image normalmap_bump2.jpg}} う〜ん、思い通りには行ってない模様。GIMPのnormalmapプラグインでも挙動を確認したのですが同じでした。 理想は以下のようになれば使えたのですが・・・。これは、バンプ用のテクスチャをデフューズとして出力したもの。 {{ref_image normalmap_diffuse.jpg}} 上記は3D形状(球)から、オートマティックプロジェクションしたものにバンプを貼り付けたものなんですが、その間の空白部分があると無理っぽい。隙間のない平面の板ならまだ使えるレベルには変換できてます。 実用的に、となると厳しいかもしれませんね。 !!ポリゴンメッシュでのモデリングでほしい機能(2008/02/20) ムービーで操作説明したほうがよさげな気がしたので、実験的にメタセコの操作を使って説明していきます。モデリングでこれはほしい、っていう機能。下の黒い部分の左下に再生ボタンの三角が出ますので、クリックすると再生します。 {{flvplayer http://ft-lab.ne.jp/files/modeling/meta_mov_20080220.flv,width=550,height=400}} !正面図・側面図・上面図・透視図の切り替え メタセコの場合はF1 - F4のショートカットで切り替えることができます。 私の場合は4面図表示は集中できないというのがありますので、1面でぱっぱと切り替えることができるのは効率的です。1面か4面かで議論したことがあるのですが(某社にて)、宗派のようにすっぱりと分かれてしまう部分です(^_^;;。 メタセコでも4面化はできますが、使ってないなぁ。 !ズーム、パン、回転の視点操作 これもメタセコではショートカットで操作可能。Shadeではカメラウィンドウで切り替えないといけない部分です。スペース押しながら透視図ドラッグでも操作はできますが、移動するか回転するか拡大縮小するか、の選択はやっぱりカメラウィンドウで切り替えないといけない。3ボタンマウスだとズームは可能ですけど、家ではノートPC、仕事場ではタブレットなので恩恵を受けることができず。 !辺の存在 私は結構多用するようになりましたが、アタリをつけるためにも「面張り」のためにも重宝しています。上のムービーでは、足から付け根部分の面を作るところで使ってます。 その他、顔を作るときの輪郭をなぞる初期段階でも辺は使ってます(ほんとにあらゆるところで)。 !辺・面作成時の頂点スナップ 辺や面を作るときに近接頂点に吸い付きます。 近づいた頂点の色が変わるので、ぱぱっと面を生成したり移動したりというのができます。 また、環境設定で「どこまでカーソルが近づいたらスナップするか」を設定できます。 !頂点結合 ショートカット(デフォルトは[Ctrl] + [J])で選択された頂点が1つにまとまります。 また、指定距離内の頂点をまとめて結合するっていうこともできます。 で、大部分はショートカットを使ってモードの切り替えができるためテキパキと操作できます。Shadeの場合は結構ちらつきともたつきが出てこれが疲れるもとになるのですが、そのへんの違いがムービーで把握できれば。 きまぐれではありますが、こんな感じで「ポリゴンツールでは最低でもこれがほしい」を 書いていければと思ってます。しかし、操作ムービーはどうも焦ってうまいこと説明できてないような気がする(^_^;;。せっかくのFlash8がほこりかぶった状態なので(Flex2でだいたいまかなえるため、使うことがなくなりました)、説明もムービーに埋め込む実験もしてみようかな。 ムービー生成で使っているCamStudioはavi形式の出力ですが、それをFlash8のVideo Encoderでflv形式に変換してます。これで700KBくらい(でも、細い線がつぶれてしまってます)。相変わらずflv形式は圧縮率がすごいですね。エンコードに1時間かかりました。そう考えると速いPCがほしいなぁとも思います。 !!法線マップから高さマップへの逆変換(2008/02/20) メモ書きです。ニッチな需要があったため調査。 http://nifelheim.dyndns.org/~cocidius/normalmap/ GIMPのnormalmap pluginにてこの変換ができているとのこと。 高さマップ(height map)から法線マップ(normal map)変換は至極簡単ですね。 高さマップを以下のようにして、自分自身をh00、右と下のピクセルの濃度をh01、h10とします。値は0.0 - 1.0。heiは定数としての高さです。 {{ref_image normalmap_20080220.png}} v1(hei, 0, h10 - h00) v2( 0, hei, h01 - h00) n = v1 x v2 ← 外積計算 n = normalize(n) ← 正規化 これをすべてのピクセルに関して計算するだけ。DirectX2くらいのときにやってたなぁ。というか、この時代はバンプはあったかな?うろ覚えですが(^_^;;。 !!作り手側と使い手側(2008/02/18) 腕周りと肩と腰のプロポーションをいじって手を追加。手はすでに何体か作ってた人型のためのテンプレートから持ってきてます。いつも手の大きさに悩むのですが、こんなもんかな。 {{ref_image igs_20080218.jpg}} 視点の角度でごまかしてるのもあるのですが、それなりに形になってきたようです。 目をくりぬいているのは、UVを設定するときのアタリを明確にしておきたいため。 顔はテクスチャをべたっと貼り付けるだけにする予定なので、その段階で目の部分はポリゴンで埋めてしまいます。 現状で2100ポリゴン(三角形換算)くらいです。いつもどおりだと2500ポリゴン前後になるのですが、足の付け根の関節部分がメカっぽくなるのでもう少し行きそうです。 仕事から帰ってきてからモデリングに集中してるのですが、一応目的あってのモデリングだったりします(メタセコが楽しいってのも大いにありますが(^_^;;)。 Shadeもせめてこのくらいの生産性があればいいのにね。それのプッシュの意味合いもなきにしもあらず。また、何が足りないのかなどは日記で書き連ねていければと思います。 私は一応3D関連のプログラムを生業にしているのですが、やっぱり「使う側」に立たないと良いものはできない(なったつもりじゃなくて実際にやる)、という結論に達しています。デザイナの人とタッグを組んで、開発とクリエイティブな部分をセパレートに分けてできるだろうか、とも模索しているのですが限界がある。というか、使い勝手とか効率がいいといった「雰囲気」は なかなかフィードバックできないものです。そして、デザイナの人は物事を伝えるのは苦手だと思う(開発者も同じですが)(^_^;;。 実は、今の仕事場でそのように分けてしてることなんですが、開発者もツールを使ったほうが後々理解が深まりそうです。 結局は、ツール屋さんは自身がユーザになるか、もしくはデザイナが開発をやるか、の二択が一番近道でないかなぁと思う今日この頃。 開発(または研究)と実際にそれを利用するユーザとの見えざる壁はいろんなところで見ますが、3Dに限らず「作る側」と「使う側」の意識のずれじゃないかなぁと思ってます。これは自分自身にも言い聞かせている部分です。でも、自分でも思うのですがまだまだユーザになりきれてないんだよなぁ。それが、そのまま製品に反映されるというか。壁はまだ高いです。 という大義名分のもと、メタセコで遊んでます。 ニコニコにも3DCG関連のナイス動画が結構あがっているのですが、 http://www.nicovideo.jp/watch/sm2321776 「【3DCG】くるっと・おどって・初音ミク【ねんどろいど】」がすばらしすぎます(何回みたことやら)。キャラもそうだけど動きがかわいいし。後、コメントが一般の人と3D関連の人(?)で違いがあって面白いですね。ああ、GIのレンダリング(YafRay)でアニメーションって時間がかかりそうだなぁとか、そっちが知りたいと思ったり(^_^;;。 どんな性質のレンダラかぜんぜん知らなかったりしたのですが、アニメーションでちらつきが抑えられているようなのがなかなか興味深いです。 そんな影響もあって、アニメーションだとBlender再チャレンジしてみようかなと(UIが受け付けなくて挫折した経験あり)。 !!モデリング続き(2008/02/18) 日付が空きましたがメタセコモデリングの続き。 バランスが気に入らない部分が多々あるので後で調整しますが、元デザインは(当たり前かもしれませんが)きっちりと関節が稼働するように設計してますね。 {{ref_image igs_20080217_01_01.jpg}} {{ref_image igs_20080217_01_02.jpg}} {{ref_image igs_20080217_01_03.jpg}} 肩の関節部分はなかなか苦労しました。結局普通に人体の輪郭をラフにモデリングしてから、肩をけずって機械っぽいパーツを入れました。 しかし、この手のキャラだとボーンをどう入れようかな。関節部がゆがんではいけませんし(ロボットという設定なので)、かといってひじ部分はスキン処理は必要だし。 ポーズ決めについては、mikotoを使うことにしています。 後は手のモデリングと下半身と全体調整。あ、UVでのテクスチャも。とやることはまだまだありそうです。 最終的にはアニメーションまで持っていきたいのですが、どのツールを使いましょうかねぇ。Blenderがよさげなのでそちらも選択肢として考えてます。ちょっと前にShadeのボールジョイントで別キャラにてアニメーション実験したことがあるのですが、これ致命的な欠点があるんです。また、それについては後々記載できれば。 !!flv playerをWikiにいれてみた(2008/02/16) http://flv-player.net/ のflv playerをFreeStyleWikiのプラグインとして対応し、動画を見ることができるようにしました。 実験ムービーは以下。 {{flvplayer http://ft-lab.ne.jp/files/flash/hyperShot.flv,width=500,height=300}} 動画のキャプチャは「CamStudio」を使っています。 http://nonn-et-twk.net/twk/CamStudio/ ちなみにムービーは、リアルタイムレイトレ(GI)をしている「hyperShot」(評価版)のプレビュー&レンダリング風景です(本日存在を知ったので速攻でテストしてました)。 なんというか、「速い」けどいろいろはしょってるなぁ、のレンダラみたいです。 形状はShade9から持ってきたバイクです(製品付属のいつものやつ)。 !!ARToolKit(2008/02/13) ニコニコで存在を知った技術ですが「ARToolKit」。 http://www1.bbiq.jp/kougaku/ARToolKit.html 実写と3D世界の合成。この手のは微妙に(といっても触りだけ)研究したことあるのですが、OpenCVのような画像処理ライブラリみたいですね。マーカーをつけてそれを追う(3次元のパラメータとして検出)というもので、Webカメラの利用価値を高めることができそう。 これは遊べそうです。 !!Norton360(2008/02/12) Auto-protectを有効にしても起動時にOffにされる。といった問題はすでに出ている人もいるようですね。 それに加えて、先日FireFoxを最新版にしたのですがそのタイミングでFireFoxからWebアクセスができないようになってしまいました(なので、ひさびさのIE)。 Norton360のプログラムルールから削除してもう一度、と思ったらFireFoxを認識してないし(Norton360では「追加」ボタンが消えている!)。 まだNorton360の使用期日が残っているのですが、アンインストールしようかと。 家のNIC 2008は安定してるので(といっても、メール受信時に特定のメールが来ると落ちてしまう)、それに切り替えるか別のセキュリティソフトにするか。 !!e-tax 開始届出書(2008/02/11) e-taxによる納税をオンラインで行うためには、前準備の「住基カード」「ICカードリーダライタ」「電子証明書」以外に、「利用者識別番号」と「暗証番号」が必要です。 これを取得するために「開始届出書」を提出します。 すべてPC上でできます。 http://www.e-tax.nta.go.jp/todokedesyo/kaishi_confirm.html なお、動作環境はWindows + IEのみのようです。 !ルート証明書の取得 個人情報を入力する必要があるので「ルート証明書」のインストールが必要です。 上記サイトからexeをダウンロードできます。exeを起動すると勝手にインストールされます。 !PDF上で情報入力 作業を進めると、PDFでの入力画面が出てきます。ここで、個人情報を入力。暗証番号は自分で決めることができます。一箇所「納税用カナ氏名」というのがあり、この部分はなぜか半角カナでないと通りません。なぜ、今の時代に半角カナなのか・・・。システム屋なら、もし内部的に半角で保持する必要があるのなら、内部でテーブルを持って変換するとか手段はいくらでもあるはず。 どこかで旧情報とマッチングする都合いたしかたなく、なのかもしれませんが。 ということは、、、e-taxのシステム上では文字列はShiftJIS扱いなんだろうか・・・。後々困るぞぉ、たぶん(日本人だけだから問題ないのかもしれませんけど)。 !情報を保存 PDFの内容確認、即時通知、利用者識別番号等の通知という段階があるのですが、その都度「保存」で内容を保存しておきましょう。 即時通知のページが開いた後、暗証番号を入力する画面になります。 ここで、暗証番号が正しければ利用者識別番号が表示されます。 これがe-tax利用時に必要ですので大切に保管しておきます。 なお、過去(2年前)のe-taxでは利用者識別番号は郵送で送られてきてました。 今はWeb画面上で次のページに表示されるんですね。 これに時間がかかるかと思ってたのですが、この部分はタイムロスなくいけました。 まだ住基カードはとどいてないのですが、これらがそろうとWeb上で納税作業はできそうであります。 !!Shade9プラグインSDKでの画像出力(2008/02/10) で、どうも一色に塗りつぶされた結果が出力される問題があり、追ってみると image_interface::create_duplicate_image_interface が機能しているときとしていないときがある予感。 自作のvmdエクスポータでテクスチャ出力している部分があるのですが、 たまに真っ白に出力されたりしてました。原因はこれか。 この地雷原を避けるとすると・・・ shade_interface::create_image_interface にて画像領域を新規作成して、ピクセル情報をコピーするという二段階の実装のほうが安全なようです。 今のところこちらで公開している中では、vmdエクスポータがこの問題で引っかかってますのでまた修正かけるようにします。 !!e-taxに再チャレンジ(2008/02/08) 1年くらい前の確定申告でe-taxにチャレンジしようとして手続きがあまりにも面倒だったので挫折した私が、今年もこりずにチャレンジです。 以前は、クライアント環境にソフトをインストールしないとダメだったのですが、今はシステム自体はWeb化してます。 2年ほど前にそのソフトウェアを国税庁に請求したらくれました。1GBくらいでダウンロード更新が数百MBという、おいおいな仕様でした。たしか、オープンフォーマットで利用してくれな体制まんまんだったみたいですけど・・・。その後の手続き(証明書発行など)も面倒だったのですが、これはシステムごと過去の遺産となってしまったようですね。 今年の確定申告(所得税)期間は2008/02/18 - 2008/03/17です。 事前に税務署からe-taxの案内が来ていたのですが(挫折した人でも、一度申請したことがある人のところには届く模様)、Webでは以下のサイトでどうやればいいのか、といった情報を見ることができます。 http://www.nta.go.jp/e-tax/ !住民基本台帳カード&電子証明書&ICカードリーダライター まずは「住民基本台帳カード」(住基カード)のゲットです。これがないと、e-taxは利用できないという、第一関門です。あんまりいいイメージのない(というよりもカードもらっても使い道がない)住基なだけに、確定申告のためだけにというのは気が引けたのですが何事もチャレンジです。これにICチップが埋め込まれてます(個人識別用らしい)。 そのため、本日役所に言って申請してきました。在庫がないとのことで2週間待ちとのこと。おそらく、どこかの業者にカードの製造などを依頼すると思うので(それが全国から来るでしょうから)今時期は混み合ってるのかな。それとも、利用者が少ないためにラインを用意してないとか(^_^;;。とりあえず、早めに申請しておいてよかったです。 これと電子証明書がまずは必要です(役所で発行してくれます。ようやく少し楽になりました。e-taxできたてのころは役所で扱ってなかったかと)。 後、住基カードをパソコンで読み取るための「ICカードリーダライタ」がいるようです。これは家電店で売ってるようです(3000円くらい)。 これがそろえば、後はパソコンのWeb上で確定申告の手続きができそう(FireFoxに対応してないのかなぁ?Macは「Mac OS 10.4 Tiger」しか書いてないので、10.5も対応してあげろよ、とか思ったり)。 その段階になったら、また奮闘記として書いてみますね。 !e-tax利用のメリット 利用する人が限られているからか、利用してほしいからか、特典が用意されてます。 *最高5,000円の所得税の税額控除 *添付書類の提出が不要(確定申告期限から3年間、添付書類の提出又は提示を求められることがある) *還付金が早めにもらえる 1つめは「最高」というのがあるので、0の場合もありえそう。住基カードの申請・証明書の発行などで資金がかかるので、あんまりメリットがないかも。 2つめは、、、場合によっては抜け道で利用されないのかなぁ(ないものを申請したり)。そんな不正が増えたとすると廃止される可能性も出るのかも。私としては、この2番目の特典が一番のメリットです。一応その集めた書類を見て記載するんですけどね。わざわざポストに入れる必要がない・PCの前だけで済むのがよいかなと。 3番目はぶっちゃけどうでもいい(^_^;;。こっちは逆に納めるほうなので。 ということで、e-taxが今回からは少し使いやすくなったように感じます。 証明書はセキュリティ上手間がかかってしまうのは、いたしかたがないですねぇ。 ただ、住基カードと絡めるのは無理矢理感がなんとなくするので、ちと疑問。後、ICカードリーダー買わないといけないし。しかし、確定申告(e-tax)以外の利用価値って証明以外であるのだろうか? 住基カード発行の際に免許証かパスポートがいるので(写真が乗ってないとダメ。健康保険証などは使えないです)、個人の証明としての意味ないんでないかい?と思う。身分証明が手元にない場合は遠回りで発行申請は可能みたいですが。。。 !!AGEIA(PhysX作った会社)(2008/02/05) http://journal.mycom.co.jp/news/2008/02/05/007/index.html nVIDIAに買収されたとのこと。あんまりハードのメリットを感じなかったというのもありますが、PCIでなくてPCI Express対応のものを早めに出したらよかったのになぁ(未だに出てないのかな?)。 一時期DirectXのサンプルに物理系のが載ってた気がするのですが、 意外とGPUで物理系も搭載できるのなら(Havokみたいに)存在価値がまた薄まるような(^_^;;。 ちなみにHavokはIntelに買収されてるんですと。 http://journal.mycom.co.jp/news/2007/09/18/003/ HavokはWiiの「スマッシュブラザーズX」で使ってるみたいです。 しかし、M&Aだらけっすね。 !!メタセコで顔を作ってみる(2008/02/02) 何をいまさら、なんですが(^_^;;。メモ書きです。 メタセコでの顔モデリングについて。これらの方法はニコニコ動画で3Dモデリング講座があがってましたので、すべてそれから情報を得ました。XSIとかMAXとかのモデリングをまねして。メタセコでも基本的には同じやり方ができるのですんなりと対応できました。 以前は球から顔を作っていたのですが、下記の要領の輪郭線から起こす方法のほうが下絵に忠実に再現できるためいいかもしれません。ということで、私としてはモデリングはこの方法で今後は固まりそうです。 !下絵を描く 今回は以前作っていて止まっていたペルソナ3のアイギスをモデルに。 ペルソナ3公式サイトに立ち絵などありますので、そこからトレースするなり一から描くなりして「正面図」「側面図」を作成します。 それをメタセコ上で四角形ポリゴン2枚に正面図、側面図としてテクスチャマッピング。 !下絵から輪郭線を描く(正面と側面) 顔での重要なラインである、輪郭線を「辺」にて描きます。これを押し出してポリゴン化。頂点数などは適当でいいです。 同様に、目の部分の輪郭をとってこれも押し出して面にします。 {{ref_image meta_20080202.jpg}} {{ref_image meta_20080202_2.jpg}} 斜めから見たら以下の感じ。このとき、最終的な3D形状をイメージして空間に配置します。 {{ref_image meta_20080202_3.jpg}} !輪郭線の頂点を結んでポリゴンで埋めていく これは地道な作業。 先ほど作った輪郭線と目のポリゴンを元に、新しいポリゴンを張っていきます。 曲線的なカーブが必要なときは辺を生成しアタリをつけてから、ポリゴンまたは辺上の各頂点をつないでいきます。 {{ref_image meta_20080202_4.jpg}} この画像の首の部分が辺です。メタセコの場合は、すでに存在する頂点にマウスを近づけると近接する頂点にスナップできますので、三角形なり四角形でひたすら埋めます。顔の場合は四角形ポリゴンで埋めるほうがいいとのこと。 必要ならば、ナイフで面を分割して整えていきます。 !半分作ったらミラーリングで鏡面化〜実体化 顔半分ができたら、まずは正面から見て中心に位置する頂点を縦一列に揃えます。選択した頂点に対して「頂点の位置を揃える」にて。左半分ができたら、右半分を選択した状態で削除しておきます。結果、左半分だけ出来ている状態になります。 その後、オブジェクト設定ダイアログのミラーリング「左右を分割した鏡面」を選択し、適用軸Xを選択。 ビュー上ではX軸の0を中心としてミラーリングされます。つまり、残りの顔半分がミラーリングされた状態で表示されます。 この状態ではまた仮想的に半分が存在するだけですので、[オブジェクト]-[曲面・ミラーのフリーズ]にて実体化します。 作業中に同じ位置に複数頂点が重なることがありえますので、[オブジェクト]-[近接する頂点をくっつける]にてマージするようにします。 !頂点を移動して顔を整える ミラーリングする前にも整えたほうがいいですが、今度は全体のバランスや少しずつ回転したときの輪郭部の違和感をなくすために、頂点を1つ1つ移動させながら整えていきます。 モデリングではこの部分が一番時間がかかるかも。 まだまだ宇宙人ですが、以下みたいな感じ。338三角形で構成されてます。 {{ref_image meta_20080202_5.jpg}} 髪の毛とか装飾品をつけたのは以下な感じ。 {{ref_image meta_20080202_6.jpg}} 体も同じ感じで輪郭線から起こしていくとイメージどおりにいきます。 ですが、下絵命ですのでやっぱり下絵はラフでもいいのできっちり書いたほうがいいのかもしれません。 しかし、まだまだ頂点移動などの調整がいりますね。 これで作り始めてから4時間くらいですので、生産性がいいなぁと思います。 ポリゴンツールで重要だと思うのは、以下のような感じかなぁ。誰となくの列挙ですが(^_^;;。 *カメラ移動・ズーム・回転のシームレスな操作 *迅速な正面、側面、透視図の切り替え(メタセコでは「F1」-「F4」キーに対応) *頂点スナップを伴うポリゴン生成 *辺の存在 *近接頂点の結合をショートカットで。そのときに選択されている頂点数が把握できること。 *さくさくとした動作速度 上記以外にまだまだこれが必要ってのはあるのですが、最低限のものだけ列挙しました。さすがはメタセコ、ほしいのはだいたい揃ってるや。 後は体全体のモデリングとUV割り当てとテクスチャとポージングです。 このへん、地道に進めるようにします(これ以外に実は何体か作っていたのがあるのですが、数を重ねたおかげか効率化できたかもしれないです)。