2008/8/29 金曜日

車を作ろう? ガラスのダメージ

Filed under: Armaアドオン製作支援,  ─車編 — gachopin @ 15:35:44

これは車の定義に必須ではありませんが、私は常々面倒で避けていたのであえて作ります。

まずモデルからガラス部分だけ抽出して全部正面に向け、SSを撮ります。
car47.JPG
512×256に画像の大きさを変更し、貼り付けておきます。
car48.JPG

これから用意するテクスチャは、?壊れていないときのテクスチャ ?半壊したテクスチャ ?全壊したテクスチャです。
car49.JPG

ガラスの壊れ方の定義は、「右のガラス」か「左のガラス」しかありません。
ここでは「右」を「正面と後部のガラス」 「左」を「横のガラス」として定義していきます。

まず0LODのガラスで正面と後部をsklo predni Pと名付けます。横のガラスはsklo predni Lと名付けます。(viewCargoLODも同じように)
FireGeometryのガラスの当たり判定の部分にも同じように名付けます。
そして、firegeometryの窓にca\data\data\black.pacを貼ります。ARMAではこれを貼らないと窓が壊れても銃弾が貫通しません。

そしてhitpointsLODを作成しガラスの真ん中あたりに点を置いてsklo predni P、sklo predni Lと名付けます。
car50.JPG

あとはmodel.cfg内のcfgmodelsのsections[]=に”sklo predni P”と”sklo predni L”を追加。
config.cppのcfgvehiclesにHitLGlassとHitRGlassを追加、dammageHalfとdammageFullにテクスチャを定義します。

class HitLGlass {armor=0.1;material=-1;name=”sklo predni L”;visual=”sklo predni L”;passThrough = 0;};
class HitRGlass : HitLGlass {name=”sklo predni P”;visual=”sklo predni P”;};

2008/8/28 木曜日

函館

Filed under: 旅行記 — gachopin @ 13:39:06

8月25日?8月27日で函館に行ってきました。

3時頃空港着。なんとなくバスで湯の川に降りる。
hako1.jpg

ここは空港に近いので飛行機が近い近い。
hako2.jpg

適当な場所を見つけて温泉(非常に湯が熱い)に入ったあと市電の近くまで北上。市電をみるのは鹿児島以来。一部レトロな車両もまじっていた。
hako3.jpg

そして湯の川神社にお参り。2礼2拍手1礼。
hako4.jpg
立派な鳥居もあった。
hako5.jpg

市電に乗り函館駅へ移動。
hako6.jpg

函館駅でOFPプレーヤ・IL2プレーヤのmajor.kudoさん、okituneさんと合流。五稜郭へドライブ。夕方の曇りだから、ちと暗い。写真の奥にあるのが五稜郭タワー。
hako7.jpghako8.jpg

夕飯は函館ベイ美食倶楽部という、女将を呼べ!的な名前の店で、ジンギスカンを食べた。1780円で食い放題ナリ。
肉屋や定食屋等を見ても、やはり北海道はラムが安い。「生ラム」という名前を頻繁に目にする。高いのは東京だけか。
hako9.jpg

夜は函館山に行ったが、時間が遅かったのでライトアップされた建物を見ることが出来ず。(写真ナシ)

26日朝は函館朝市へ。とうきび(トウモロコシ)が1本70円とかで売ってる。生で食えるデザートコーン(?というのも売っていた。
hako101.jpghako11.jpghako12.jpg

朝ご飯に活イカの刺身。うねうね動いてるやつを食べた。(1400円ナリ。)右上のワタがうまい!感動的にうまかった。
食感はムース。コクは卵の黄身。味は例えようもない。旨味しかない。
hako13.jpg
その後どんぶりを食べた。イクラ・カニ・サケの刺身が入って500円。味噌汁つき。
hako14.jpg

食べ終わったら歩いて函館山に向かう。
途中に赤レンガ倉庫見たり。
hako15.jpghako16.jpg
ロープウェーに乗って頂上へ。
hako17.jpg
頂上は風が強かった?。
hako18.jpghako19.jpg

kudoさん、okituneさんと再び合流して函館で有名なバーガーショップ、ラッキーピエロで昼飯。
写真右:サイコロステーキ 写真左上:チキン 写真左下:くじら
hako20.jpg
くじらバーガーはナルホド、こいつは、ウーン、くじらだ、という味だった。

再び3人で五稜郭へ。五稜郭は鳥が多い。カラス、カモメ、カモ、スズメ、ハト等たくさんいる。
hako21.jpghako22.jpg

五稜郭をボートで一周した。ハスの花がちょうど咲いていた。花の色は白、赤、黄、ピンクがあった。
hako25.jpghako24.jpghako23.jpg

夜はまた函館山へ。素晴らしい夜景だった。そして、非常に寒かった。20度下回っていたんじゃないだろうか。
写真は一番良く撮れたもの。
hako26.jpg
夜景を鑑賞後okituneさんと真っ暗な山道を歩き旧日本軍の砲台跡に行った。死者はほとんど出てないだろうけど、なんか出そうな雰囲気である。
サイレンというゲームの場面の一部で使われたらしい。
hako28.jpg
夜の函館山。
hako29.jpg

2008/8/22 金曜日

車を作ろう? アニメーションのプレビュー

Filed under: Armaアドオン製作支援,  ─車編 — gachopin @ 18:12:13

定義が終わったらo2のビューアでモデルを見てみましょう。
ARMAでは定義したアニメの動きまでプレビューすることが出来ます。これ便利。すごく便利。

動かすにはmodel.cfgが必須です。
ビューア画面を開いたらミドルマウスボタンを押します。
左上にcfgmodelsで定義したアニメの名前が出てきます。その状態でマウスホイールを転がすとアニメが動きます。
ミドルマウスボタンを再度押すと次のアニメを選択することが出来ます。

car46.JPG

車を作ろう? ジオメトリ及びcfgmodels

Filed under: Armaアドオン製作支援,  ─車編 — gachopin @ 16:39:17

ARMAのアドオンでは必須のアニメの定義を扱います。

まず準備として、memoryLodに点を置きます。
o2で新規にLODを作成し、propatiesでMemoryを選択します。このMemoryLODは点のみを置く必要があります。
個々の点はアニメの軸や光の位置、銃口の向き等、機能を働かせるのに必要な基準点になります。
このLODにBISのサンプルモデルの車等から点をコピペしておくと楽です。
点にはそれぞれ名前がついており、機能を持った点のほとんどはチェコ語で書かれています。
bisのwikiに英訳があるので詳しく知りたい方は参考にしましょう。
ArmA:_Selection_Translations

サンプルモデルのmemoryLodを見れば大体意味が分からなくても機能がわかるのですが、
重要な点を一つ。Pは右、Lは左を意味します。
例えば”P svetlo”は右のライト、”konec P svetla”は右のライトの終端を意味します。”zamerny”はカメラの中心点です。
“pos driver”は乗り込む際、get in ○○ as driverとアクションメニューに表示される点です。
これらは全て自分で定義することが出来ますが、非常に面倒なのでコピペしたほうが楽です。それらの点に加え自分の定義する点もあとで置いてゆきます。

サンプルモデルからmodelLodにコピペしたら位置を調整します。
car42.JPG

最初に車の走行に必須の定義を行いますがその前にジオメトリを作っておきます。
ジオメトリに関しては建物を作ろう?で解説しています。
今回私の車のジオメトリはARMAのサンプルモデルの車のジオメトリをそれっぽく整形しました。
car43.JPG
上の図で、私は左前輪のセレクションにdamp_flと名付けました。(任意の名前でOK)
dampとはダンパー、つまり車のショックを吸収するやつです。OFPで戦車のキャタピラが地面に合わせて傾いていましたが、あれと同じ挙動をします。
ほかの3輪も似た名前をつけておきます。

MemoryLodに戻ります。
それぞれのタイヤの位置、地面に接する部分に↑で名付けた名前と同じ名前の点を一つずつおきます。
car44.JPG
この点が車のダンパーの基準点になります。

今度はモデルのLODです。作成したタイヤを選び、それぞれにタイヤの名前をつけます。
私は左前輪にleft_front_wheelと名付けました。
car45.JPG

ここまできたらいよいよmodel.cfgの作成です。
新規テキストを用意し、model.cfgと名付けてください。それをメモ帳等で開きます。
model.cfgの中にはCfgSkeletonsとCfgModelsを定義していきます。
Cfgskeletonは文字通り骨を定義します。人間で言うと、肩を動かしたら腕が一緒に動きますよね。そんな関係を作ります。
説明に必要な部分だけ下に書きます。実際は他の定義が必要です。

class CfgSkeletons
{
class Vehicle;
class Car: Vehicle {};
class car_stepvan : Car
{
isDiscrete=1;
skeletonInherit=””;
skeletonBones[]=
{
“damp_fr”,””,
“right_front_wheel”,”damp_fr”
};

—解説—
isDiscrete=1;はとりあえず1にしておきましょう。私は意味がワカランです。
skeletonInheritは骨の定義を継承できる?らしいのですがエラーが出るのでこのように書きました。
“damp_fr”,”” ←これは、damp_frは単独でアニメするという意味です。
“right_front_wheel”,”damp_fr” ←これは、右前輪が、damp_frと対(ボーンの関係)になって動くという意味。
———-

class CfgModels
{
class Vehicle;
class Car: Vehicle {};
class car_sedan: Car {};
class mycar : car_sedan
{
sectionsInherit=””;
sections[]=sectionsにはmemoryLodの点以外の、稼動するセレクションを定義します。(ここではダンパーと右前輪)
{
“damp_fr”,”right_front_wheel” 
};
skeletonName=”car_stepvan”;
これは上記で定義した骨をアニメに使いますよ、という意味です。
class Animations {
class FrontWheelR
{
type = “rotationX”;
source = “wheel”;
selection = “right_front_wheel”;
axis = “”;
axisは軸を意味するのですが空欄になっています。これは、type が “rotationX”だからです。X軸を軸にするので、定義する必要がありません。

memory = 1;
sourceAddress = “loop”;
minValue = 0;
maxValue = 1;
angle0 = 0;
angle1 = “rad -360″;
普通角度は円周率の値で定義するのですが、radを使用することで角度で定義できます。360はつまり1回転です。
};
class FrontWheelRTurn
これは前輪の横回転。曲がるときの動き。
{
type = “rotationY”;
source = “drivingWheel”;
selection = “right_front_wheel”;
axis = “”;
memory = 1;
sourceAddress = “clamp”;
minValue = -1;
maxValue = 1;
angle0 = “rad 25″;
angle1 = “rad -25″;
};
class Wheel_Damper_rf
ダンパー。minValueがマイナスです。地面に接していないときにタイヤがその値まで沈み込みます。ダンパーとタイヤは”骨”なのでタイヤもその動きに追従します。
{
type=”translationY”;
source=”damper”;
selection=”damp_fr”;
axis=””;
minValue=-0.090000;
maxValue=1;
memory=1;
};
};
};

model.cfgのサンプルを置いておきます。
model.cfg

2008/8/18 月曜日

車を作ろう? 窓、ミラー

Filed under: Armaアドオン製作支援,  ─車編 — gachopin @ 14:20:12

窓やミラーの表現で、ARMAから導入されたRVMATを使用すると「反射しているように見える」エフェクトを使用することが出来ます。
窓は既にポリゴンで用意したので、ミラーの面を作ります。
ミラーの面は前面のポリゴンをコピペ、0.9倍にして作成しました。テクスチャはまだ必要ありません。
car36.JPG

反射に使うテクスチャはコレ。ARMAで使っているファイルを抜き出してきたものです。
car37.JPG

拡張子rvmatで以下のようなファイルを作ります。

ambient[]={1,1,1,1};
diffuse[]={1,1,1,1};
forcedDiffuse[]={0,0,0,0};
emmisive[]={0,0,0,1};
specular[]={1,1,1,1};
specularPower=32;
renderFlags[]={“NoAlphaWrite”};
PixelShaderID=”Glass”;
VertexShaderID=”Glass”;
class Stage1
{
texture=”#(argb,8,8,3)color(0,0,0,1)”;
uvSource=”none”;
};
class Stage2
{
texture=”mycar\env_co_pac.paa”;
uvSource=”none”;
};

Stage2でミラー用テクスチャを指定。

ミラーの面を選んで面のプロパティでrvmatファイルを指定します。
ここでテクスチャの指定は「無」になっていますが、例えば青色のテクスチャだと青っぽく反射します。
car38.JPG

これで視点によって見え方が違うテクスチャができます!
car39.JPG

窓は半透明のテクスチャ(paa形式)を貼り、
上記のRVMATのstage1のアルファ部分を0.3にします。
texture=”#(argb,8,8,3)color(0,0,0,0.3)”;

ここでいくつか注意。
半透明テクスチャはpaaのみです。pacでは透明度が0か1しかありません。窓には使えません。
また、paaには優先度があります。優先度が低い物は表示されません。
car40.JPG
この画像では後ろの窓が前の窓から見えます。
これ、優先度を上げる前は後ろの窓は見えませんでした。
窓の外側の面はfaces→move to topで優先度を最大にする必要があります。

ノーマルマップとスペキュラマップを作成。以前のチュートリアルで解説しています。
car41.JPG

これで9割方はモデル完成。

車を作ろう? テクスチャ

Filed under: Armaアドオン製作支援,  ─車編 — gachopin @ 1:41:15

1024×1024のbitmapを作成、
必要な部分のモデル線をコピペして下地を作ります。
car30.JPG

car31.JPG
選択した部分にFrontviewにて、下地テクスチャをおおまかに貼ります。(ずれてもOK)

その後serface(サーフェース)→UVエディタを起動。
Filter→新しいテクスチャをブラウズ(browse new texture?)を選択し、下地テクスチャを読み込みます。

先ほどfrontviewでテクスチャを貼った付近をマウスで囲むと、貼った面が出てきます。
下の図の黒い四角をドラッグして、大きさを調整しましょう。リアルタイムにテクスチャマッピングが反映されます。
car32.JPG

同じようにして全体に貼っていきますが、ここでテクニック。
選択した面を選んでselectionウィンドウて右クリック→new(新規作成)で名前をつけておきます。
下の図では右の面、左の面を分けてセレクション名をつけ、ctrlを押しながら左右のセレクションをクリックし、
左右同時に面を選択しています。
car33.JPG

外面を貼り終わったところです。
car34.JPG

貼ったら下地を元に塗ります。
テクスチャを描いた後テクスチャマッピングの位置を変えることも出来るので、気楽に、気長にやりましょう。
car35.JPG

2008/8/12 火曜日

車を作ろう? タイヤ等

Filed under: Armaアドオン製作支援,  ─車編 — gachopin @ 21:25:39

タイヤを作ります。
円柱を点を置いて作るのは難しいので、
create(作成) ->cilinder(円柱)で円柱から作ります。
赤い線で示しているアイコンがピン。これの中心に円柱が作成されます。
car26.JPG

car27.JPG
3つに分割した円柱を作成、端を0.9倍にしました。
大きさは三面図に合わせます。

ハンドルは円柱を作成して大きさを調整し、
外周をコピペ、それを0.9倍してドーナツ状に円をつなげました。
運転席部分は「内装LOD」から取ってきた赤く囲った部分の点を元に作成。
car28.JPG

装飾品等を作成。図面に細かい装飾品は載っていないので、
写真を見つつ目測で作成しました。
car29.JPG

2008/8/11 月曜日

車を作ろう? モデリング?ドア

Filed under: Armaアドオン製作支援,  ─車編 — gachopin @ 22:31:31

ドアをモデリングします。まずは横から。
車をつくろう?で使用した点のうち、ドアで使う点を新しいLODにコピペします。
car20.JPG

点を全部選んでDボタンで面を削除。
car21.JPG

三面図を参考に、片面の点だけ残して、ここから作っていきます。
car22.JPG

外枠の点を大事にしつつ、ドアの面を作成、全体をコピペして内側に移動させ、「厚み」をもたせます。
car23.JPG

後ろのドアも同じ要領で。
car24.JPG

窓の枠の点を別のLODにコピペ、厚さを薄くして窓も作っちゃいます。
car25.JPG
*後部ドアの解説は割愛します。手順は同じです。

2008/8/10 日曜日

車を作ろう? モデリングその2

Filed under: Armaアドオン製作支援,  ─車編 — gachopin @ 18:12:27

ドアを除いた横部分を片方だけ作り、反対側にコピペします。
両側を同時に作るより合理的です。
car12.JPG

後ろもドアを除いて作成。
car13.JPG

次に、内装をちょっと作っておきます。
いままで作ったLODを複製。外枠から、内側の点だけを残してあとは削除。
car14.JPG

今↑でコピーしたモデル、コピー元と大きさが同じなので、この点を元に内側に厚みをつけてモデリングし、
最後に先ほどの外装モデルにコピペすることで、ピタリと重ねることが出来ます。
分かりやすい例えで言い換えると、「型にゼリーの元を流し込んでゼリーを作る」ということです。
型通りのゼリー(内装)を後で型(外枠)に戻す。これが最終段階になるわけです。

ドアとドアの間の柱の部分の点をコピーし、内側に移動させて、内側だけ面を貼ったのが以下の図です。
外枠とあわせるとキッチリ合わさっているのが分かると思います。
car151.JPG

後ろも同じように厚みを持たせます。
下の図で青い線で囲った点は窓枠に使うので必要な点です。
赤い線で囲った点は必要ない点なので消してしまいます。
点をコピペして面を貼っていくと、その中でどの点が必要でどの点が不要か分かってきます。
car16.JPG

コピーして、動かして、必要な部分はまたコピーして・・・を繰り返して後部を作成しました。
何度も最初に作った外枠と見比べて、「どの点が外枠に接しているか」を意識しながらモデリングします。
car17.JPG

前のほうを続けて作ります。
窓の厚みを作り、運転席の空間を確保するため、少し前に点を置いてつなげました。
この空間にハンドルやダッシュボードを将来置くためです。結構難しいです。根気よくいきましょう。
car18.JPG

うまく合わさるとこうなります!!
car19.JPG

車を作ろう? モデリング

Filed under: Armaアドオン製作支援,  ─車編 — gachopin @ 16:32:44

三面図からモデリングします。
三面図はTexview2を使い、
128×128 256×256 512×512 1024×1024等の大きさに変換し、paaかpacにしておきます。
私の場合三面図の縦横比を変えたくないので画像に余白を追加し縦横を同じピクセル(=正方形)にしてから、
1024×1024にしてpacファイルに変換しました。(texviewで拡張子pacとして保存)

まずFront Left Topにそれぞれaボタン→loadtexture(テクスチャをロード)で三面図を読み込みます。
car2.JPG

create(作成)→box(箱)で箱を作成、テクスチャの位置を変更したり、右クリック→右に回転 などのコマンドを駆使し、
モデルとテクスチャの位置を合わせ、箱とテクスチャの大きさを合わせます。
car3.JPG

特定の面を選んでBボタンで貼る。これを繰り返して以下のように箱にテクスチャを貼ります。
car4.JPG

この箱は大きさの比較で使っていくことにします。

さて、前面から作っていきます。
先ほどの箱の前の2点をctrl+cでコピーし、Leftの図に合わせて点を置き、
その点をFrontの図に合わせて横移動させます。横移動はXを押すと横以外の動きが無くなるので便利です。
同じようにYを押すと縦のみの動きになります。
car5.JPG

置いた線を4箇所づつ選んでF6で面を貼り、Bボタンでテクスチャを貼ります。
先ほどの箱の面をWボタンで反転させてプレビューしたものが以下の図になります。
car6.JPG

前のほうができたら、丸ごとコピペして後ろの形に合わせます。不要な点を削除。
Top図の位置とも合わせておきます。
car7.JPG

横にF6で面を貼っていきましょう。
3Dプレビュー画面で点を選択して面を貼ると楽です。
alt+右クリックで視点の角度変更、alt+左クリックで視点移動。
car8.JPG

同じように点をコピー→三面図で点の位置を合わせるを繰り返し、前面を少しずつ作っていきます。
今まで置いた点の位置も都度見比べて調整しましょう。
car9.JPG

こんな感じで前面部を作りました。
insertボタンで点を1つずつ置くことが出来ます。ある程度窓の形に添って点を置き、半分形が出来たらctrl+c ctrl+vでコピペ。緑色の三角矢印アイコンで左右対称に反転させて作成しました。
三面図がキチっとしてないと、ずれます。なるべくずれないようにしつつ、
後のモデリングを考えて点を置いていきましょう。
car10.JPG

三面図の矛盾を乗り越えてここまできました・・
car11.JPG

次ページへ »

HTML convert time: 1.776 sec. Powered by WordPress ME