PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル

log

2009.04.08 C++:Geforce6200の悲劇

XSIのアニメーションの勉強をはじめていたけど、ここまでくると
Tipsにまとめるのが非常に面倒くさくなってきたので
XSIの書籍でも買って勉強することにしました。

で、ちょうどXSI7に対応している新刊が発売されてたのでアマゾンで購入。
ほんとは立ち読みしてから決めたかったんだけど、近くの本屋に
売って無いんですよね。。

それでとりあえずXSI本がくるまでの間は、ようやくC++でプログラミングを
はじめようと思ってプログラム組んでいたら、とあることに気がつきました。

そう、僕のパソコンだとHALが使えないんです!

HALっていうのは、アプリケーションの計算をほとんど
3Dビデオチップにお任せしてしまおうっていう機能なんだけど
どうもGeforce6200はその機能が使えないようです。
everestのレポートだとDirectXハードウェアサポートが
DirectX v9.0cって書いてあるんですけどねぇ。

けど色々プログラムを変えてるうちに、ハードウェアT&Lは
一応サポートしてることが分かったので。
普通のD3Dデバイス生成のプログラムだと、
①HAL + ハードウェアT&L
②HAL + ソフトウェア頂点計算
③REF + ソフトウェア頂点計算
が一般的だと思うけど、僕のプログラムでは②と③の間に
HAL + ハードウェア頂点計算をはさむことにしました。

てかせっかくGeForce6200買ったのに、今までテクスチャ計算とかは
CPUでやってたのか。。
どうりで前のビデオチップとあんまり変わらなかったわけだ。

まぁいっか。頂点計算はサポートできてるし。
XSI本楽しみだな。

2009.04.07 XSI:XSI ModToolのTipsその1

はい。自分用XSI ModToolのTipsその1です。基本操作~モデリングまで。
?がついている部分に関しては自分自身もまだよく分かって無いです。
それでもいいから参考にしたい方だけどうぞ↓


はじめに
----------------------------------------------------
参考にしたもの
・ゼロから始める3DCG講座
http://www.nicovideo.jp/mylist/5312198
・初めて学ぶXSIトレーニングデータ
http://www.softimage.jp/support/training/tutorial/xsi_basic.html
・Noesis トレーニングビデオ(英語)
http://www.softimage.jp/modtool/learn.html
・Softimage 機能紹介ビデオ(英語)
http://www.softimage.jp/xsi/7/video/index.html

UIに関する操作
----------------------------------------------------
メニューのModes - XSI Default(Pro Modes)に設定すると標準のXSIのUIになる。
ちなみにMod Toolのモードを選択するとビューポートの上に
カメラやディスプレイに関するメニュー(ヘッドライトのショートカットボタンや
オブジェクトを単体のみ表示させるIsolate Selection
(解除するにはビューポートボタン下にある×ボタンを押す)、
オブジェクトをコピーできるDuplicate(ショートカットはCtrl + d)、
グリッド単位でTransformさせるSnapボタン等を表示させることができるので
お勧め。他にはメニュー - View - Layoutsからも色々UIを変更できる。
右にあるメニューをメインコマンドパネルという。
オブジェクトの詳細プロパティのことをプロパティエディタという。
("プリミティブ(+エクスプローラ)に関する操作"より)

セーブ・ロードに関する操作
----------------------------------------------------
FBXのインポート・エクスポートはメニューのFile - crosswalkから行う。
LWデータの読み込みはLWのdot XSI Exporter Pluginを使ってHRCファイルを
作成した後、メニューのFile - Import - dotXSI...で読み込み
dotXSI経由だと、法線の状態がおかしくなっているので、エクスプローラを
開き("プリミティブ(+エクスプローラ)に関する操作"より)、オブジェクト下の
(なぜか同じ名前で2重構造になっているが)Polygon Mesh - Clusters
- User_Normal_Clusterを選択しDeleteキーで削除する。
FBXやメニューのFile - PointOvenからLWOを読み込みでも可能だが、
dotXSIの方が互換性の面で安全なのか?
XSIからLightwaveへはFBXでいけるのだろうか。Lightwave側のインポート、
エクスポートが不安定な感じなので不安だ。

ビューポートのカメラの編集
----------------------------------------------------
S + LMB:カメラの平行移動(パン)
S + MMB:カメラのトラックイン・アウト(ドリー)
S + RMB:カメラの回転(オービット)
Z + LMB:カメラの平行移動
Z + MMB:カメラのズームイン
Z + RMB:カメラのズームアウト
R:カメラを初期位置に戻す
F:カメラを選択されているオブジェクトが画面いっぱいに収まるように移動
A:カメラを全てのオブジェクトが画面いっぱいに収まるように移動
Alt + Z:カメラ専用のアンドゥ
Alt + Y:カメラ専用のリドゥ

基本的な操作
----------------------------------------------------
Ctrl + Z:操作のアンドゥ
Ctrl + Y:操作のリドゥ
Space + オブジェクトをクリック:オブジェクトを選択
(右のメニューのSelectタブにある矢印ボタンを押しても選択モードになる)
t + 頂点をクリック:頂点を選択
(もしくは右のメニューのSelectタブにあるポイントボタン)
q + ドラッグ:頂点を範囲選択
i + エッジをクリック:エッジを(レイキャスト)選択
(もしくは右のメニューのSelectタブにあるエッジボタン)
e + ドラッグ:エッジを範囲選択
u + ポリゴンをクリック:ポリゴンを(レイキャスト)選択
(もしくは右のメニューのSelectタブにあるポリゴンボタン)
y + ドラッグ:ポリゴンを範囲選択
DEL:選択されているオブジェクトをクリア
(ポイント選択の場合、エッジを共有しているポリゴンも削除。)
(エッジ選択の場合、そのエッジから、枝分かれのある頂点に
到達するまでの隣接したエッジのみが削除される。)
(ポリゴン選択の場合、ポリゴンに穴が開く)
Backspace + オブジェクトをクリック:オブジェクトをクリア
選択での共有の操作として、Shiftキーを押しながらで複数選択、
何も無い空間をドラッグで範囲選択、
右クリックで選択反転、ホイールクリックで選択解除。
ただし範囲選択の場合、後ろにあるものまで選択されるので注意!
カメラのボタン(ビューポート変更ボタンの右)のメニュー - Propetiesの
下のほうの項目にあるHead LightのEnable Head LightをONにすることで
カメラの向きにあわせてライトの位置を変更できるようになる。
メニューのRenderタブ - Preveiwでそれなりなレンダリングができる
q + ドラッグ:ビューポート上で領域レンダリング
もう一度qを押すことで領域レンダリングモードを終了。
Shift + qで複数のビューポートで領域レンダリング。
レンダー領域右上の縦長の四角にマウスを持っていき、スライダーを
あげることでレンダリングクオリティを調節できる。

オブジェクト単位の編集
----------------------------------------------------
オブジェクトを選択したモードでTransformタブのボタンから
オブジェクト単位で編集することができる。
Transformタブ(画面右)のt(移動ツールボタン)をON。:オブジェクトを移動編集
Transformタブ(画面右)のr(回転ツールボタン)をON:オブジェクトを回転編集
Transformタブ(画面右)のs(スケールツールボタン)をON:オブジェクトを拡大縮小編集
x・y・zボタンをON/OFFで各座標軸単位で編集。
数値パネルで各座標軸単位で数値入力。
COGボタンでマニピュレータの位置を選択しているオブジェクトの中心に設定。
LocalからGlobalボタンを押して変更することで、マニピュレータが
グローバル座標系に固定される。(マニピュレータが回転したりしない)
Localはオブジェクトの変更に沿ってマニピュレータが変更される。
オブジェクトを選択し、Transformタブをクリックしてでてくるメニューの
Match All Transforms/Match Scaling/Match Rotation/Match Translationの
どれかを選び、選択しているオブジェクト以外のオブジェクトのどれかを
クリックすることで、クリックされたオブジェクトのトランスフォームに
合わせて選択しているオブジェクトをトランスフォームさせることができる。
右メニューのタブはタブ名を右クリックでプルダウンをON/OFFできる。

頂点・エッジ・面単位の編集
----------------------------------------------------
オブジェクトを選択 + M:ドラッグで頂点・エッジ・面を編集できるモードにする
(コンポーネント調節モードという)
もしくは右のメニュー - ModifyタブのTweakまたは
メニュー - Model - Modify - Component - Tweak Component Toolからでもいける。
V:頂点・エッジ・面を移動編集
C:頂点・エッジ・面を回転編集
X:頂点・エッジ・面を拡大縮小編集
またはこのモードのときに右クリックからでるプルダウンからでも
トランスフォームの種類を変更できる。
Rを押しながらドラッグで編集されるブラシエリアサイズを変更
右の目ユーのTransformタブのSymボタンをONでX軸を対称に編集することができる。
右の目ユーのTransformタブのPropボタンでプロポーショナルモデリングモード
(同じ箇所を右クリックでパラメータを表示?)
また、LWと違いオブジェクト単位の編集の場合、シンメトリー編集にならない。
(オブジェクト全体の編集は自動的に頂点・エッジ・面単位の編集の後に
履歴がくるらしく、LWと違ってオブジェクトをどの位置からでも自由に
対称編集することができる!)
Tweak Component Toolででてくる3つのボタンについて。
1番左のボタンは頂点/エッジ/面をシングルクリックしたときに
マニピュレータを表示させるかどうか。
真ん中のボタン(マグネット)は、編集するときに隣接する
頂点・エッジ・面に近づけるかどうか。エッジ・面の場合、
移動させるほどそれらの頂点が隣接する頂点の位置に近づく。
1番右のボタン(weld)は、移動先で一番近い頂点・エッジ・面と
結合させるかどうか。これは頂点編集以外(エッジ・面)では使えない。
weldの機能はポリゴンのリダクションに便利。
Insert + エッジをクリック:エッジ上に頂点を作成
\ + 複数頂点選択(ポイントが無いエッジ上でも可):LWのsplit
n + 反時計回りに頂点をクリック:穴をポリゴンで塞ぐ
(四角ポリゴンなら対称となるエッジをクリックでポリゴンを作成できる)
ポリゴンを選択してCtrl + D:ポリゴンを複製(Duplicate)
その後Transformのtでポリゴンを押し出しになる。
(単純に選択したポリゴンのみを複製ではなく、押し出し用として行われる。)
Duplicateはオブジェクト単位で行うこともできる。
なお、Duplicateは実行後すぐに、全く同じ位置に複製されるので
オブジェクトのDuplicateの場合、エクスプローラから判別できるが、
ポリゴン単位の場合、複製されているかどうか識別できないので、
Duplicate後はすぐにトランスフォームで移動させること!
右のメニューのModifyタブ - Poly.Mesh - Invert Polygonsで
選択しているポリゴンを反転させる。
Poly.Meshボタンが無い場合はUIをXSI Default(Pro Modes)に変更させる。
対面しているポリゴン同士を選択してModify - Poly.Mesh - Bridge Polygons
でポリゴンをつなぎ合わせる(ブリッジさせる)ことができる。

プリミティブ(+エクスプローラ)に関する操作
----------------------------------------------------
プリミティブ - Polygon Meshは通常のポリゴンオブジェクト
プリミティブ - SurfaceはLWでいうサブパッチ済みのオブジェクト?
プリミティブの詳細オプションがでていない場合は
右のメニューのSelectタブのSceneボタンで階層構造を開く、もしくは
ビューポート変更ボタンでExplorer(ショートカットは8)を選択して
シーンのエクスプローラを開き、詳細オプションを開きたい
オブジェクト名をダブルクリック
(エクスプローラの表示が違う場合、エクスプローラメニューの
一番左の項目をLayersに変更する。)
オブジェクト下 - Polygon Mesh - Geometryをダブルクリックでも同じか?
回転体で作成したオブジェクトならばオブジェクト下 - Polygon Mesh
- Geometry Approximationをダブルクリック。
詳細プロパティからオブジェクトのスムース角度や
サブディビジョンレベルを変更できる。(0でOFF)
(テンキーの+と-キーでもサブディビジョンレベルを変更できる。)
Shift + Dでもオブジェクトの分割数をあげることができるが、
こちらはリニア処理として行われるので履歴をクリアしない限り元には戻せない。
またこれらの操作(ジオメトリの編集)はオブジェクトの編集と逆で、
頂点・エッジ・面単位の編集より前に行われる。
h:選択したオブジェクトを隠す。
隠したオブジェクトはエクスプローラ上で選択して
再びhを押すことで表示される。
(エクスプローラ上でHがオブジェクトがハイドされてるマーク。
ビューポート上で赤い部分がポリゴンがハイドされている部分。
カメラやライトもハイドをON/OFF切り替えることができる。)
ビューポート画面左上のA~Dと描かれたボタンを押すことで、
選択したビューポートのみレンダリングするかどうかを指定している?

カーブに関する操作
----------------------------------------------------
右のメニューのCreate - Curve - Draw Linearでカーブオブジェクトを
作成することができる。また、右クリックのメニュー - Exit Toolで
カーブ編集を終了し、Start New Curveで新しく別のカーブを引くことができる。
カーブの頂点は後からMで編集できる。
カーブは右のメニューのSnap(もしくはメニューバーの
View - Mod Tool - SnapからTurn Snapping Onボタン)から、
グリッドに沿ってカーブを描くかどうか決めることができる。
メニューのViewタブ - Mod Tool - SnapCreate - Poly.Mesh
- Revolution Aroud Axisで座標軸を中心に回転体オブジェクトを作成する。
(カーブとは別オブジェクトとして作成するが、
フリーズしない限りそのカーブ形状に依存する。)
Create - Curve - DrawCubic by CVsでカーブを作成し、
ポリゴンを選択した状態でModify - Poly.Mesh - Extrude Along Curveを
行うことで、選択したポリゴンをカーブに沿ってポリゴンを押し出せる。
(カップのとってや、1ポリゴンだけのオブジェクトと輪のカーブを使って
リング形状を作成する。etc..)
エラーがでてうまくいかない場合は、エクスプローラから
そのカーブを選択した状態にするとうまくいくのか?
押し出しの分割数はエクスプローラのオブジェクト下 - PolyMesh -
Extrude Op(オプションの略?)をクリック - Subdivsで変更できる。

ノンリニアに関する操作
------------------------------------
エクスプローラを開き、オブジェクト下にあるPolygon Mesh - MoveComponentを開く

と、今までの編集履歴が上から順に格納されている。
MoveComponent内のどれかを右クリックしてでたメニューから
Dissable From Hereにすることでその項目以下の履歴を
反映させないようにできる。もう一度メニューからEnable From Hereで反映。
また、項目を入れ替えて編集し直したりもできる。
LWと違って後からサブデビジョンレベルを簡単に変更したりできるのが、
ノンリニア系のいいところ。ただ、あまりレベルを変更しすぎると、
その後変更したものの位置が大きくずれるので注意すること。
履歴はオブジェクトを選択して右のメニューのEdit - Freezeもしくは
メニューのViewタブ - Mod Tool - Freeze - Freeze History - Modelingで
履歴をフリーズ(リニア処理)にすることができる。
Editタブが無い場合はModesをXSI Default(Pro Modes)に設定するとでてくる。
フリーズしないと処理がどんどん重くなるが、フリーズする前に
一旦別のファイルに履歴つきとしてバックアップをとっておくことがお勧め。
XSIはver5.0から、GATORというものを使って異なるオブジェクト間で
編集プロセスデータを移すことが可能になったようだが、よく知らない。

2009.04.06 XSI:XSI勉強中

現在、制作は全然進んでませんが、
ただいま頑張ってXSI ModToolを勉強中です!

LWでうまいアニメつきのエクスポート方法がみつからなかったので、
少なくともウェイトつけ+アニメつけはXSIでやろうと思います。
XSIのDirectX出力は安定しているようなので。(確認はしてませんが。)

このソフト、慣れるとLWより全然使いやすいんじゃないかなという気がします。
まだショートカットやUIが違ってたりでLWの方が慣れの分使いやすいですけどね。

LWと違ってノンリニアソフトなので、後からサブディビジョンレベルを
変更したいなぁとか、ローカルな位置で対称編集したいときとかが
すごく便利なんじゃないかと思います。
LWほどモデリングの機能に幅はなさそうだけど、ゲームのような
ローポリ制作だとXSIの機能で十分だし。
それとTweakが便利!ブラシサイズを変えてペイント感覚でモデリングできます。
LWにもTweakあったような気がするけど。。どうだっけか。

それと今勉強してることをメモでまとめたりしているので、
一通り勉強したらTipsとしてのせようかなと思います。

2009.04.04 制作:Xファイルのコンバートつづき

ファイル 100-1.jpg

とりあえず、PolyTransが一番よさそうなので色々試してみようと思います。

前回のボックスでのアニメはテクスチャを一枚しか使ってなかったので、
マテリアルを二つ使って試してみたけど、うまくいくようです。
てことは、残るはウェイト。
前回は、ウェイト設定されてたバジリコの服のテクスチャは表示されなくて
ウェイト設定をしてなかった服のテクスチャは描画されてたので
やっぱりウェイトの可能性が高いです。

ボックスとバジリコモデルのウェイトの違いは1頂点に複数ウェイトを
設定してるかしてないかだと思うので、とりあえずバジリコのウェイトを
1頂点1ウェイトに変更しようかと思います。

それでうまくいかなかったらXSIかRDB2しかないですね。


追加:
と思ったら、どうもボックスモデルでテクスチャを使った複数のマテリアルをまたいで
ウェイトを設定してみるとうまくいかないことが分かりました。
どうもLWは1ウェイトは1UVのみに対応していないとうまくコンバートできないようです。
LWからメタセコにコンバートしてたときも、1レイヤーに
UVを使ったマテリアルを複数扱っていた場合はUVが破損していたし。

けど、今回はウェイトなので勝手が違うなぁ。
スケルゴンはそれぞれ1ウェイトにしか対応していないし。
UVを1枚にまとめるか、ウェイトの境目にあわせてUVを分けるかしかない感じですね。

2009.04.03 LW:Xファイルが出力できません!

LWでとりあえずアニメつきのXファイルを出力してみようと
思って試してみたけど、どうもうまくいかないぽいです。
アニメ無しのXファイルならば問題なく出力できるけど、
なぜかアニメつきだと1フレームしか出力してくれない。
エクスポートのチェック項目のほぼ全てのパターンを
試してみたりしたけどやっぱりうまくいかず。。
おまけに"IKをFKにベイク"をチェックすると必ず強制終了させられるし。。
レイアウト自体の設定がおかしいのかもしれないけど。

ということで、ここ数日はWEBで色々調べたりしてました。
なので制作は全然進んでません!
PolyTransというソフトを試したりしてみたけど、
なぜか簡単なボックスのアニメだとうまくコンバートできたのに
バジリコのモデルだとメッシュがぐちゃぐちゃになったり、
テクスチャが一部しか出力されなかったり。
で、今日はXSI ModToolを試してみたけど、そもそも
PointOvenだとLWOしかインポートできないし、
なぜかスケルゴンとウェイトがあると強制終了させられました。。
その2つ無しだとわざわざXSIにコンバートする意味ないです。
だったらメタセコ経由でRDB2でウェイト作ってXファイル作ったほうが
今まで使ってた分楽だと思う。
まあRDB2の場合、複数のウェイト設定を同時に使うと駄目らしいけど。
この際メインソフトをXSIに切り替えるっていう手もあるんだけど、
LWに比べて起動・終了が重い上に、すぐ強制終了させられるしなー。
一応MAYAとかも試してみたけど、うまくいかなかった上に
そもそもMELとか使い方が全然分からないし。


なんでアニメつきXファイルすぐ死んでしまうん?


とりあえずメッシュアニメは保留して、制作に使うモデルを作っておいて
メッシュアニメが導入できるようになればまとめてコンバートかな。

2009.03.29 C++:DirectXに関する考察。

DirectXに関する考察。というかメモ。

以前半透明処理のソートを克服する方法として、
頂点単位ではなくアルファ単位のZバッファを作ればソートしなくても
いいんでないかと考えてたけど、どうもそれはA-Bufferといわれる技術だそうな。

けど、やっぱりその場合でもアルファ領域のポリゴンのZ値の違いの数だけ
バッファを作成しないといけないので、めちゃくちゃメモリを食うことになってしまう。

他には、圧縮テクスチャのほかにメッシュやUV座標を圧縮する技術もあるそうな。
でも調べてみたけど、ほとんど記事がみつからないし、みつけても英文でさっぱりだったり。。

あぁ、VRAMを超スマートに利用できるようになりたい。

それと以前服をモデリングしてたときにマテリアルの境目を
滑らかにしたいって考えてたけど、それを動的に生成する技術をハルシェーダーというそうで。
カメラからみて輪郭の部分のメッシュだけを滑らかに分割することで
輪郭のカクカクをなくすみたいです。
この記事をみたときに、おーって思ったけど。それって要するに
毎フレームおきにポリゴン(もしくはエッジ)単位で際の判定をするってことだから
よっぽど判定するポリゴンを限定しておかない限り、処理速度の面で
実用的でないような気がするし、それだったらあらかじめ
ポリゴンを割っておいた方が正解なんじゃないかと思う。
けど、こういうことを思いつく人はすごいなと思います。
ハルシェーダーは正直思いつきませんでした。

2009.03.29 その他:曲を差し替えました

卒制の展示映像を何度かみているうちに、曲を改良したくなってきたので、
無理をいって友人に新しくお願いしてもらいました。
これで大分イメージが統一されてきたかなと思います。
scientreさん、どうもありがとうございました。

それと、以前からずっと頭のふらふらが直ってなかったので
色々と考えたすえに、風邪でも体力低下でもなくて、
単なる貧血なんじゃないかということに気がつきました。

僕はもともと貧血気味な上に、卒制が忙しくなってから、
御飯を食べる時間も惜しくて外出しない日はほとんど朝食をぬいて
一日ニ食にしていたので、それが原因でないかと思います。

筋トレしてもなんでふらふらするんだろって思ってたけど、
逆に鉄分が不足してたんですねー。。
ということで、今日からさっそく夜食に納豆御飯を2杯食べました笑。

2009.03.29 LW:背景もつくってみました

ファイル 95-1.jpg

テクスチャもある程度完成してきたので、背景も少し作ってみました。

ちなみに初めてマルチUVを使って地面を作ってみました。
土と草をそれぞれ別々のシームレステクスチャで作成して、
草の部分はアルファ用UVとテクスチャを使ってくり抜いてます。

この方法のいいところは、多様的な地面の表現ができることなんだけど、
処理する地面のテクスチャが単純に倍になってしまうのが痛いかな。
ポリゴンを別々に用意して、草の部分のポリゴンを後から
削ることである程度回避できるけど、今度はポリゴンが多くなるし。
まぁ後者の方が実用的なのかな。
地面のテクスチャは、カメラの角度が低いゲームだと
1フレームあたりに処理する地面のテクスチャ量が馬鹿でかくなるし。
多少ポリゴンを犠牲にしてでもテクスチャを抑えるほうが
正解だと思います。
あ、でもプログラム組むときにZファイティングを回避する処理を
ちゃんと組まないとなー。

それと今回はLWのレイアウトで色々試してレンダリングしてみました。
アンチエイリアシングだったりフォグだったり。
レイトレシャドウだったりラジオシティだったり。
まだまだレイアウトを使いこなせてません。。

2009.03.27 LW:残るは服!

ファイル 93-1.jpg

ようやく服のUVを作成したので、後はだいたい服のテクスチャと
ウェイトを作るのみです。
あ、けど体を修正したりUVをリラックスさせたりしてたから、
肌のテクスチャもほとんどやり直さないとな。


服のデザインを色々考えてみたけど、とりあえずはシンプルなもので
いこうということで、一番初めに考えてたデザインに落ち着きました。

それとボーンの中心を腰にしてたけど、どうも足を動かしたときに
腰も動かないとおかしいことが分かったので、結局ヘソを中心にしました。。
腰を動かしたときに足も動くのも、IKを使えばカバーできるみたいなので。

2009.03.26 LW:フェイシャルつづき

まばたきと怒ったときと笑ったときの表情をつくってみました。
おー、うにゃうにゃ動く!

いまさらだけど肩のラインが固い。。もう一段階割ろうかな。
テクスチャがいい加減だったり作ってなかったりするのは
もういつものことですね。