2005年06月17日

サイコロのベース作成方法


せっかくだからサイコロのベースの作り方書きます。
1. Boxを作成。
2. 適当にBevel。
3. 中央をKnifeで分割。
4. サブパッチ。
5. Freeze。
6. さらにサブパッチをかけるとこんな感じ。
これをベースにして前出のサイコロを作成しました。

投稿者 Suya : 16:44

2005年06月09日

UV作成時の小技

UVを作成する時に、ManualにしてSizeの値を全部同じ数値で実行すれば、画面上の比率そのままで展開できやす。
テクスチャが正方形なら、ピクセルも大体正方形になります。
ただし、UV作成時のポリゴンの角度によっては伸びます。
また、正面と背面を別に展開した場合なんかも、ピクセル密度を合わせ易くなり、テクスチャの継ぎ目の描き込みが楽になります。
Cylindricalでは広がってしまいますが、1軸の比率はあっているので、比較的容易に調整できます。

自分の場合は、最初にSizeを全て1で展開して、全体のピクセル密度を合わせています。
顔等、密度の欲しい部分はスケーリングを調整しますが、顔正面と顔側面の密度は一致するようにしています。
AutomaticでそのままUVを作成して調整するよりは、その後の作業が楽だと思います。

投稿者 Suya : 19:53 | コメント (0)

2005年06月01日

LightWave小技

momoなんかでも話題に出てるので、知ってる人は既に知ってるTipsですが・・・。
尚、LW7.5を使ってるのでLW8.x以降でも有効かは分かりません。
cfgファイルを書き換える場合は、バックアップをとって下さい。

■LightWaveのキーコンフィグで編集できないキーにショートカットを割り当てる方法。
lwm3.cfgのKeyAssignの後ろの数字は10進のAsciiコードなので、lwm3.cfgを直接書き換える事で、ショートカットを割り当てる事が出来ます。
◆ESCキーに選択解除等のショートカットを割り当てた例。
KeyAssign 27 droptool
自分は@キー等にもショートカットを付けてます。
ちなみに@キーのAsciiコードは64です。
キーコンフィグに表示はされませんが、save時には追加したショートカットも保存されます。

■画面の色を変更する方法。
レイアウトのGenericPlugin>InterfaceColorChooserでも変えられますが、lwhub.cfgを直接書き換えることでも変更する事が出来ます。

自分の場合はこんな設定です。

ToolButtonColor 107 112 123
BackgroundColor 130 130 130
StateButtonColor 128 128 140
DragButtonColor 169 171 188
ActionButtonColor 125 133 146
DialogButtonColor 137 145 158
InfoAreaColor 120 140 170
InfoAreaTextColor 255 255 255

お気に入りです。

投稿者 Suya : 12:20 | コメント (0)

2005年05月30日

VS.net2003でLWプラグインをビルドする方法

VisualStudio.net 2003のみでLightWaveプラグインをビルドする方法を記します。
うろ覚えですが、VC.netではserver.libのビルドが出来なかったんだかなんだかで、SDKに書いてあった方法ではプラグインが作れませんでした。
そのため、server.libを作らず、servmain.cの変わりにmy_servmain.cppを追加してビルドしています。

Download my_servmain.cpp

■注意■
とりあえず自分の環境ではこの方法で作成したプラグインが使えていますが、公式にSDKに載っている方法では無いので、自己責任でお試しくださいませ。
自分も以前勤めていた会社のプログラマさんのやり方を真似してるだけなんで。(^_^;

ちなみに、構成プロパティの設定は以下のとおりです。
ここに記入してある以外の設定は規定値です。(多分)
デバッグ用の設定は多少異なります。

◆全般
構成の種類:ダイナミック ライブラリ (.DLL)
マネージ拡張:いいえ
◆C/C++
・全般
追加のインクルードディレクトリ:(PluginSDKのincludeフォルダ)
・プリプロセッサ
プロセッサの定義:_X86_;_WIN32;NDEBUG
・コード生成
ランタイムライブラリ:マルチスレッド (/MT)
◆リンカ
・全般
出力ファイル:$(ProjectDir)$(ProjectName).p
・入力
モジュール定義ファイル:../source/serv.def(パスは自分の環境に合わせて書き換えてください。)

投稿者 Suya : 20:43 | コメント (2)

ローポリ関節


基本的に関節部分はポリゴンを三分割する。
分割数が足りないと、曲げる時に途中でポリゴンが広がってしまったり、逆に痩せてしまう事になる。

分割の際には、曲がる方向を広くしないと曲げた時にめり込みすぎ、反対側に突き出しやすくなってしまう。
逆に広げすぎると、関節が間延びして見えたり、不自然なヘコミを作る事になる。
めり込むのは仕方が無いので、上手くめり込むように、ポイントの位置を調整する。
左端のモデルではポイント位置がまずく、曲げた時に側面のポリゴンが重なってちらついてしまう。

両サイドに出来たポイントは中央付近でまとめて節約できる。(中央の図)
また、そういった両サイドのポイントをそのままにしておくと、曲げた時にポイントがクロスして、破綻の原因となる事もあるので、まとめてしまった方が都合がいい。

ウェイトは基本的に1ポイント1ウェイトで作成する。
関節をさらに分割する場合は、中間に出来たポイントのウェイトを重ねる事になり、1ポイント2ウェイトとなるが、それ以上にウェイトを重ねる必要性は無いように思う。

ローポリ関節のTipsと言っても、大して書くことが無いのだった・・・。
いや、説明しだすとキリが無いとも言えます・・・。
説明聞くより実際のモデル見た方が分かりやすいと思うのでサンプル置いておきます。

サンプルモデル(lwo,lws)
Download LowPolyLeg

300ポリゴンモデル(lwo,lws,Texture)
Download Dora300

投稿者 Suya : 17:50

2005年05月25日

タイヤパターンのモデリング方法


1. 一組のパターンをモデリングする。(パターンの一番手前のポイントは<y = 0, z = 0>)
2. Cloneを使って、1周分のパターンを複製する。
3. Bendで曲げる。この時に、一番手前のポイントとくっつけるポイントの座標を調べて、その2倍の距離を入力して、720度曲げるのがミソ。
(4. 誤差が出て微妙に隙間が出来た時は、MergePoints>Fixedで極小さい値を入力してくっつける。)

経験者が語る失敗例
・クローンした一番後ろのポイントまでの距離を入力すると、パターン1個分隙間が空く。
・1周分の距離を入力して360度曲げると、曲がらない部分が出来る。

ミドルポリモデル作成途中につき、おざなりなTipsでお茶を濁すのだった・・・。

投稿者 Suya : 22:47

2005年05月23日

肩の秘密

肩(肩甲骨)は上腕と1:2の割合で連動して動いている。腕を水平にした状態から90度振り上げる場合、上腕で60度、肩で30度回り、あわせて90度動く。
これを、「肩甲上腕リズム」と呼ぶ。

3Dモデルで再現する場合には、エクスプレッション等で制御する。
今回は、LightWaveのFollowerを用いている。
Jyowan_R、Shoulder_Rは、あらかじめRecord Pivot Rotation(回転位置の記録)で、HPBの角度を0にしてある。
モーションを付けた時に動きすぎるように感じたのでHeading Angleだけ約1:3で動くように調整した。
Bank Angleは基本的に1:2から変える必要は無いと思われる。

尚、この構造では肩をすくめるような動作が出来ないが、問題を解決する為に、以下のような方法が考えられる。
1. Null等でコントローラーを作成し、上腕ボーン、肩甲骨ボーンそれぞれに、コントローラーを参照したエクスプレッションを設定する。肩をすくめる動作は、コントローラーで制御する。
2. 鎖骨ボーンを回す。
3. 肩甲骨ボーンと上腕ボーンの間に制御ボーンを追加し、それを回す。
4. 肩甲骨ボーンを移動する。
今回の構造では、4の方法を選択した。(楽だから)

LightWaveでは、IKのボーンにエクスプレッションやFollowerを使用していると、モーションを付けた時の動作と、アニメーションでの動作が異なってしまう。
仕方が無いので上腕はFKで動かしているが、今後のLightWaveでの改良が望まれる。
(と言いつつ、LightWave7.5を使用している為、8.x以降での動作は知りませぬ。これが改善されてるのならすぐにでもVer.Upしたひ。)
ちなみに、上腕を回す際には、親座標で回すと制御しずらいので、ワールド座標で回している。
肘等はワールド座標で回すとあらぬ方向を向いてしまうので、親座標に戻して回している。
ショートカットを覚えてクセを付ければそれ程気にならないが、ボーン毎に基本の座標系を記憶出来れば、もっと楽だろうと感じる今日この頃。

こんな感じでTipsもちまちまと書いていく予定だす。

投稿者 Suya : 11:33