タグ「claptaps project」が付けられているもの

claptaps project[4]

lightwaveで単位プリミティブのcubeを
作ってflashへ移植。

ball同様、uv反転したので
オブジェクトをz軸で上下逆にしてobj書き出し。

マッピングするテクスチャのサイズが
ある程度の高さと幅がないと
描画が荒れる。

一面のサイズが等倍より少し小さいくらいだから
いけるかと思ったが、全然綺麗さがちがった。

右の方は、photoshopでむりやり引き延ばしているので
少し緩いのはそのため。

img_150121_3.jpg

claptaps project[3]

lightwabeからobjファイルを書き出してflashで再構築。
planeはうまくいったけど、ballでいきなり問題発生。

lightwaveでテクスチャマッピングしたら
オブジェクトから見て、正面と左面のマッピングが
左右逆になってる。

img_150121_1.jpg


flash上では、そのままその2面だけ逆になって
素直に描画されているので
lightwave上でその部分のテクスチャマッピングを
反転すれば良いと考える。

1、lightwaveで単位プリミティブなballを作る
2、マップの新規UVテクスチャ アトラスでUV作成
3、色・質感編集のTでUVと画像を選択。
(この時点で左右逆になっている)
4、詳細の結合(統合)解除で反転させる部分の結合を加除
5、ポリゴン選択して該当部分をUV反転
(この時点でlightwaveできれいに表示される)
img_150121_2.jpg



で、ここからまた問題発生。
flashへ持っていくと、上下が逆になってる。
(z軸で180°回転してる)

うそーーーーーーーー。。。。

なんか、UV反転か結合解除した時点で
こうなる事が判明。obj内の順番が代わるのだろうか?
結合解除した部分を再結合してみたりしたが
一回解除するともうダメみたい。

UVが回転してるのではなく、オブジェクト自体が回転してるので
しかたなく、lightwave上で上下逆になるようにz軸回転させてflashへ。

無事表示されました。

objファイル内のくくり方が代わるんだろうけど
これはどうにもならない気がするので、
しばらくは上記対応にするか。。。






claptaps project[2]

忘れない為にメモ。

lightwaveからobjファイルを書き出す。
とりあえず一辺500mmのplaneを作った。正面の向きはxz方向。(lw上で回転させてxyにしてません。)

objファイルを分解すると
v:頂点座標
vt:uvt座標(一辺が0〜1で表される)
f:頂点座標/uvt座標/頂点番号
になっている。

fは頂点番号に対応する頂点座標ナンバーと
uvt座標ナンバーとなる・・・気がする。
ちなみに、fのuvt座標はlwでuvテクスチャをつくり
色質感編集でtでテクスチャ編集を立ち上げ、uvtextureと画像を選択してから
objファイルで書き出さないとブランクになった。
・・・lwよくわかってないので・・・すみません。

####
#
#    OBJ File Generated by LightWave3D
#    LightWave3D OBJ Export v2.3
#
####
o a.obj
mtllib a.mtl
g default
v -0.5 0 0.5 ・・・①
v 0.5 0 0.5 ・・・②
v 0.5 0 -0.5 ・・・③
v -0.5 0 -0.5 ・・・④
vt 0.0121951 0.0121951 ・・・①
vt 0.0121951 0.987805 ・・・②
vt 0.987805 0.0121951 ・・・③
vt 0.987805 0.987805 ・・・④
vn 0 1 -0
vn 0 1 -0
vn 0 1 -0
vn 0 1 -0
g Default
usemtl Default
s off
f 2/3/1 3/4/2 4/2/3 1/1/4



vが頂点座標なので図にするとこんな感じ。

img_150120_1.jpg


lightwaveの頂点座標は時計回りに書かれている・・・
といいきっていいのかわからないが、そういう事にする。

次にuvt座標。
これはuvテクスチャを書き出している時の
一辺を0〜1で表した時の座標値。
こんな感じ。時計回りではなかった・・・。

img_150120_2.jpg


ちなみに、書き出していたuvテクスチャ。

img_150120_3.jpg



んでここからが大事。

頂点座標とuvt座標のobjファイルに書かれている順番。
上で図にしているけど

頂点座標   uvt座標
①②     ①③
④③     ②④

のようになっていて、
時計回りや反時計回りなどのルールがない。
ここで登場するのがfです。

f 2/3/1 3/4/2 4/2/3 1/1/4だと、
頂点座標の②のところへuvt座標の③
頂点座標の③のところへuvt座標の④
頂点座標の④のところへuvt座標の②
頂点座標の①のところへuvt座標の①
となっていて頂点座標に対応するテクスチャ座標(vt)の順番がわかる。
あとはdrawtrianglesの時に、順番をうまく入れ替えておけばOK!なはず。
多分こんな感じ。これで時計回りで場所が同期してるはず。
頂点座標②③④①
uvt座標③④②①
頂点番号①②③④

で、f1つで1面を構成している気がするので
f 2/3/1 3/4/2 4/2/3 1/1/4だと
頂点4つで四角形になっている。
多角形の一つの頂点から各頂点に線を引いて
三角形が何個できるかだが
両辺には線が引けないので4から2ひいて
2つ三角形が出来る。

三角形の頂点の結び方は
カリングに関係していて、これは自分で決めれるので
TriangleCulling.NEGATIVEのときに
反時計まわりに三角形をつくると画面に対し
正面で描画されることにする。
裏側は同じパス順で描画すると時計回りになるので描画されない。
TriangleCulling.NONEにしてると両面描画で
裏側は逆回りなので反転して描画される。

POSITIVEだと時計回りで正面を描画。

これで全てがつながった。気がする。
後は細かい部分を、つめてきます。



claptaps project[1]

ふと、子供をわくわくさせる物を作りたいと思い
自分の書いた絵が踊りだす物を作る事にしました。

構想や、仕組みを忘れない為にブログに綴っていきます。

流れとしては・・・
1、3Dソフトでobjファイルとして書き出し。
2、flashで利用できるようにobjファイルを解析。
(アニメーションもつけたい!)
3、drawtrianglesで3D描画。
(planeなどアニメーションさせる場合は、xmlかなんかでタイムライン管理)

4、shapeにdrawしているので、それに対して移動/回転

5、各頂点に対して、各軸周りの回転で調整

6、shapeのz値に応じて、各頂点のパース調整

7、視点(カメラ)と描画物を内包するもの(shape)との距離/角度を計算。4、5、6辺りで反映できるようにしておく。

ちょっと、構想段階なので流れメモ。