2011年7月28日木曜日

Softimage Tips : HeightMap で地形を作成

テクスチャを利用して、Softimage と、CityEngineで同じ地形のメッシュを作成します。
※下位VerのCEでは、地形のエクスポートが出来ないため
  必要になりそうです。



■PhotoshopなどでHeightMapを作成
・4000pix  x  2000pix 1Pix = 1mと見立てます


■Softimageで地形を作成する
Gridを作成、4000x2000 400x200に分割 10m間隔に



TextureMapを作成
・Property > TextureMap > xz 


 HeightMapを指定
・先ほど作ったTextureMapを選択
・プロパティにて、Photoshopで作った画像を選択

Pushオペレーターを適用
・Gridを選択
・Deform > Push


プラグを選択し、先ほどのテクスチャMapに接続




仕上げに高さを設定
Amplitude に 300を入力
テクスチャの色が0(黒)-1(白)になり、これにAmplitudeかけたものが高さとなります


CEへ、エクスポートをしたり、
SoftimageにCEの道路をインポートしたりしましたが、問題はないようです。

というか、テクスチャを利用した地形の作成って初めてしました(汗
ICE使う必要なかったですね。

8bit 256階調しかないので精度はさほど期待できませんが、
利用できそうですね。



CityEngine:Tutorial02 Street

チュートリアルの2の俺的まとめ

■MapLayer
画像ファイルを元に、地形の基礎を設定する

Obstacle
障害物用のMAP 黒が障害物 

HightMap
2枚使用。高さの設定、色の設定
・elevation Map = 高低さ 白:高い 黒:低い
・texture Map = Color

備考:
CEが一番下位のVerだと、地形のMapは書き出せない。
Softimage側で製作する必要があり。

あわせるには?
同じHightMapを利用し、地形を作成する。高さはCEと共通にしなければならない。
要検証

■Street
ベースの形
・major streets = 主要道路
・minor streets = 副道路
の組み合わせで作られる

要素
・ORGNICK
・RASTER
・RADIAL
サンプル











とりあえずここまで。CEのチュートリアルは良く出来てる。
Ver違いからかちらほら違う所も。それはしょうがない。



2011年7月26日火曜日

CGMovie : CHRONO CRAVIS


うーん凄い ワイバーンに似てるな〜と思ったらさもありなんw
製作初めて1年らしいですが、物作りへの情熱が凄いですね〜
今後の伸びが恐ろしい。

多分旦那さんはいろいろな意味でハラハラだと思うのですw


HP


CityEngine:Import Illustrator

Illustratorをインポートしてみる

1.IllustratorでDXFファイルを書き出す
・レイヤー名がImport時の選択の手段となる(2バイトは文字化けする)
・サイズはピクセルが基準


・書き出しサイズ 1Pix = 10Unit(チュートリアルの指定)
1Pix(10Unit) = 10mとなる

2.CityEngenでDXFファイルをインポート
・Splineは読み込めない、Illustratorのベジェ曲線は、事前に直線化の必要あり


■Illustrator 直線化
・フィルター > ジグザグ > でサイズを0にした後
・オブジェクト > アピアランスの分割

備考
・塗りつぶしの意味はない
・Shapesでのインポートは出来ない?


3.結果
・レイヤーは破棄される
オブジェクトをグループで分けたい場合、段階的にインポートする必要あり
・また、閉じたラインはかならず一部で接する必要がある。
(メッシュが濃いところは、接していないためにブロックが2重になっている)


サイズの検証
1Pix(10Unit) = 10m

2011年7月24日日曜日

SoftimageScript : ObjectBrake v01

1ポリゴン 1オブジェクトに分割するスクリプト

■オブジェクトを選択(複数化)

■実行

CEに渡すときはオブジェクトをポリゴンごとに分割する必要がある。
その補助を行うスクリプト。

オブジェクトごとに名前を持たせ、
CE側でオブジェクトごとに異なるルールを適用できる。

#Python
#ObjectBrake v0.1
#Create By Tera 2011 07 24

app = Application; log = app.Logmessage
oSels = app.Selection
oNames = []
oCounts = []
oColl = XSIFactory.CreateObject("XSI.Collection")

for oObj in oSels:
 oNames.append(oObj.Name)
 oGeo = oObj.ActivePrimitive.Geometry
 oPolys = oGeo.Polygons
 oCounts .append(oPolys.Count)

for i in range(oSels.Count):
 for j in range(oCounts[i]):
  temp = oNames[i] + '.poly[' + str(j) + "]"
  op = Application.ExtractFromComponents("ExtractPolygonsOp", temp, "polymsh_extracted", "", "siImmediateperation", "siKeepGenOpInputs", "")
  newObj = op(0)(0)
  newObj.Name = oNames[i] + "_" 
  oColl.Add(newObj)
oNull = app.ActiveSceneRoot.AddNull("CE_Export")
app.ParentObj( oNull, oColl )

■今後の展開
マテリアルごとに名前を変えたほうが好いかもしれない

2011年7月21日木曜日

Motion : QUMA



コレ欲しい!!!

どうやら、設計に関わった人はMIKU Appendの原型を担当した人みたいですね〜
ブログ

いや、このAppend エロかわいいので、Figma Ver? のやつですが、初見で予約してしまいました。はつふぃぎゅあー。
 もう、戻れない予感デス orz

CityEngine:Import

1Softimage = 1m

.Objでインポート可能
SI側で、ポリゴンごとにオブジェクト化する必要がある。
スクリプトで、ポリゴンを分割する。

メッシュ形状
CEで作られるメッシュ形状は非常にシンプル。角度がついてないところにポイントはない。
したがって、通常のXSIなどで作られたメッシュでは都合が悪いかもしれない。

例:左がポイントを整理してないもの。 右が整理したもの

CE上ではそのままEtrudeされるため、ポイントのある位置がそのままエッジになってしまい、
それがビルの境目と認識されてしまう。

SI側で、ポイントを整理するのは面倒なので、
ブロックごとに書き出してCE側で、分割するほうが吉

2011年7月7日木曜日

Blog : 脳味噌ぶら~ん

脳味噌ぶら~ん
ライブラリの充実したリンク集

Blender : Atmospheric Scattering in Blender Game Engine

Atmospheric Scattering in Blender Game Engine



リアルタイムでの空のシムを調べ直してます。
なかなかボリュームがある雲が作れないのが難点。

というか、Blender凄いですなぁ・・・。

2011年7月6日水曜日

GameDev : SSAO & 西川善司の3Dゲームファンのための「E3 2011」グラフィックス講座

西川善司の3Dゲームファンのための「E3 2011」グラフィックス講座

メモ
SSAO > SSDO(Screen Space Directionak Occlusion)に進化
SSAOはシーンのライトを反映しないが、SSDOはライトの影を付ける事が出来る マジデ?

SSDO > RLR(Realtime Local Refrections)
原理はよくわからん orz
ただ、リフレクションが効果がUPする事。

一つ一つのオブジェクトが、その場に応じたキューブマップを持つって感じかしら???

うぐぐ、SSAOすらよくわかってないのに進化が早過いぜ orz

■SSAO

2011年7月5日火曜日

Mentalray : ◆移植オペ(中巻)◆~Softimage&MentalrayShader~

◆移植オペ(中巻)◆~Softimage&MentalrayShader~
ムッハ、デジフロサンの記事。むちゃくちゃ良い記事じゃないですか。


頭がついて行かないのは別として orz

2011年7月2日土曜日

Tool : 進捗管理ソフト Redmine

Redmine
webベースの進捗管理ソフト。メモ

Makeup : Lady Gaga Bad Romance Look



ガガさんメイク? テクスチャイリュージョンです。
おまけにマーカーを描いて画像加工までしてるんですねー。

コレがリアルタイムに出来るとしたら、もう何も信じれませんね(w

むしろ幻想こそが俺にとっての真実!

2011年7月1日金曜日

SoftimageScripts : DirectObjects v0.1


遠景の背景は板ポリです

カメラに向かって、最大限の面積を確保するため正面に向かせたいものです。
ただ、動かない板ポリの場合、コンストレインまで使う必要はありませし、
特にY軸は固定したいものです。


というわけで、数が大量だったので、
お昼休み作ってみました。
※エラー処理も何もしてないです。

使い方
・向かせたいオブジェクトを選択(複数化)
・ターゲットのオブジェクトを選択(カメラなど)



Python
#DirectObjects
#v0.1
#2011 06 30
from win32com.client import constants as c
app = Application
log = app.Logmessage

def direction(inTargetObj,inObj):
 tPos = inTargetObj.Kinematics.Global.Transform.Translation
 oTrans = inObj.Kinematics.Global.Transform
 oPos = oTrans.Translation
 
 z = XSIMath.CreateVector3()
 y = XSIMath.CreateVector3(0,1,0)
 x = XSIMath.CreateVector3()
 
 z.Sub(tPos,oPos)
 z.Y = 0;
 z.NormalizeInPlace()
 
 x.Cross(y,z)

 m3 = XSIMath.CreateMatrix3()
 m3.Set(
 x.X , x.Y , x.Z ,
 y.X , y.Y , y.Z ,
 z.X , z.Y , z.Z
 )
 
 oTrans.SetRotationFromMatrix3(m3)
 inObj.Kinematics.Global.Transform = oTrans

 
oSels = app.Selection
oPick = app.PickObject()(2)
for i in oSels:
 direction(oPick,i)