2012年3月28日水曜日

方針

しばらくは隔週更新程度に変更。

2012年3月26日月曜日

拡張現実11



iPhone4sでのテスト。11000ポリゴンほどの建物とそれぞれ3000、1000、1000、300ポリゴンほどの計五つの物体のアニメーションをマーカーで表示させようとしたらアルファテクスチャを大量に使った1000ポリゴンほどの植物は表示されなかった(テクスチャの問題ではないかもしれない)。アルファテクスチャを使った11000ポリゴンの建物は表示された。


人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

2012年3月25日日曜日

拡張現実10(失敗)






3次元のオブジェクトをトラッキングしたときTrackingManagerではちゃんとトラッキングされたがオブジェクトを配置してビューポートでみて動かすと座標がずれてきてしまった。



人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

2012年3月23日金曜日

拡張現実8



15個のマーカーを設定したらそのうち最初の11個まで(地球の画像をのぞく)が認識された。
どこかで最大個数の設定をしてしまったのか。
順番を変えたら地球の画像以外は認識された。


人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

2012年3月21日水曜日

拡張現実6



Blenderでモデリングした建物をObjファイルで書き出して3DSMAXで読み込んだらうまく表示されなかった。分割して一部ずつ修正して3dsファイルにして合成した。
テクスチャをつけるときスレートマテリアルエディタで不透明度にビットマップのノードを入力したら3DSMAXでは半透明にできるがエクスポートしたものをSatchStudioの3DViewerでみると不透明になってしまった。透明度の設定されたPingファイルhantoumei.pngをGimpで作ってMaterialファイルを以下のようにしたらできた。

material filename/Material15
{
 technique
 {
  pass
  {
   ambient 0.588 0.588 0.588
   diffuse 0.588 0.588 0.588 1
   specular 0 0 0 12.8
   emissive 0 0 0
   scene_blend alpha_blend
   depth_write off

   texture_unit
   {
    texture hantoujmei.png
   }
  }
 }
}

はじめから普通に透明度の設定されたPingを使って不透明度のノードに入力してエクスポートすれば多分できる。


人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

拡張現実5(複数のマーカーを同時に、Particleについて)



まずParticleについてはサンプルコード
http://satch.jp/jp/sample/sample_6_index.html
にあったSmoke.particleファイルをメモ帳で開き以下のように変更した。

particle_system Particle/Smoke
{
 material  Material/Smoke
 particle_width  55
 particle_height 55
 cull_each     true
 quota      500
 billboard_type  point
 sorted   true
 local_space  true
 emitter Point
 {
  angle    30
  emission_rate 5
  time_to_live  10
  direction   0 0 1
  velocity_min  50
  velocity_max  60
 }
 affector ColourImage
 {
  image smokecolors.png
 }
    affector Rotator
    {
   rotation_range_start      0
   rotation_range_end       30
   rotation_speed_range_start -60
   rotation_speed_range_end   60
    }
    affector Scaler
    {
     rate 10
    }
}
angleが大きいほど広がりが大きい。0にすると真上に立ち上る煙突の煙のようになる。
emission rate を低くtime_to_liveを長くして少しずつ長い距離を立ち上るようにした。
velocityは低くゆっくりめに。


複数のトラック方法は(もっと簡単OR効率的な方法があるかもしれない。)
開発ガイドhttp://satch.jp/jp/guide/dev_flow_1_index.html
の流れに沿って製作したファイルを元に
http://satch.jp/jp/guide/dev_flow_1_7.html
にあるようにComputerVisionでモード(mode)は、ライト(Lite)、ユーザーレベル(Userlevel)は、アドバンスド(Advanced)へ設定。
TargetのCreateとKeyframeのCreateを必要なマーカーの数だけ繰り返す。その際のTargetのNameは後で使う。多く扱うときはGenerateClassifiersではQualityは高めに。trackerフォルダに好きな名前(ここではtrackermulti.xmlとする。)表示したいオブジェクトの親になるempty(Tracking_Object2とする)を追加し表示したいシーンなどをその子にする。tracking.luaの
errorStatus, trackingIndex = MLTPlugin:startTracking("tracker/tracker.xml", videoCapture_live:getVidCapID(), camera)

errorStatus, trackingIndex = MLTPlugin:startTracking("tracker/trackermulti.xml", videoCapture_live:getVidCapID(), camera)
に書き換える。

local trackingObject = Object3D(scene:getObjectByName("Tracking_Object"))
の下に
local trackingObject2 = Object3D(scene:getObjectByName("Tracking_Object2"))
を追加。

local trackingObjectIndex = 0
の下に
local trackingObjectIndex2 = 1
を追加。
この番号はコメントにもあるようにComputerVisionでTargetをCreateしたときの番号。
その他も
trackingObject, trackingObjectIndex ,gtrackingStatus,gtrackingKeyFrameIndex,
という名前のでてくる部分は
trackingObject2, trackingObjectIndex2 ,gtrackingStatus2,gtrackingKeyFrameIndex2,
で置き換えたものを追加する。

(ここではtrackermulti.xmlに全部のtargetのデータが入っているのでtrackingIndexは一つでいい。しかし複数のtracking.xmlファイルを使うこともできそう)

二つの画像を使う場合、最終的に変更されたtracking.luaは以下のようなもの。
http://iphoneasobi.blogspot.jp/#!/2012/03/blog-post.html




人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

拡張現実4



ディスプレイ上の画像のほうがトラッキングしやすかった。3DSMaxでpngのテクスチャをつけた平面をエクスポートしたらなぜか表示できないpngファイルがエクスポートされてた。そのままSatchにインポートしたらエラー。表示できないpngファイルを元のpngファイルで置き換えたらできた。


人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

2012年3月20日火曜日

拡張現実3

サンプル
http://satch.jp/jp/sample/sample_6_index.html
にあったパーティクルをそのままトラッキングオブジェクトの子にする。

開発ガイド
http://satch.jp/jp/guide/dev_flow_1_index.html
で作ったファイルを変形して追加する方法。

Add>Effects>ParticlesでRisourceFileを設定してParticleを追加し、そのParticleをOwnerにして
以下のようなサンプルのスクリプトを追加。

local lParts = Particles(getCurrentScriptOwner())
local lLastTime = os.time()
local lPaused = false
lParts:start()
repeat
if os.difftime(os.time(), lLastTime) > 12 then
if lPaused == false then
lParts:pause()
lPaused = true
else
lParts:resume()
lPaused = false
end
lLastTime = os.time()
end
until coroutine.yield()

そしてTracking_Objectの子にする。


人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

拡張現実2(失敗)



鉛筆の長さとクワガタの体がおかしい。3DSMAXからエクスポートするときにユーティリティのXフォームをリセットを忘れたからか。


人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

2012年3月14日水曜日

タツノオトシゴ




Ambient OcclusionをBakeしたものをEmissionのStrengthに入力。写真のテクスチャーとGlassのMixShaderとMixさせる。そのさいのFacもAmbientOcclusionをBakeしたテクスチャー。これを表側とし内部にGlossyとEmissionのMixShaderのマテリアルを設定した縮小したモデルを配置。

人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

2012年3月12日月曜日



Hairシミュレーションはsegmentsをそれほど多くしなくてもBspline のStepを多めにすれば滑らかになる。Stepが1増えると2倍滑らかになるので増やしすぎるとレンダリングに時間がかかる。

人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

2012年3月5日月曜日




人気ブログランキングへ
にほんブログ村 デザインブログ
JRANKブログランキング

次回レンダリングをするときは以下の修正をしてから。
前方に移動しているように見えるのでこのようなカメラの移動はしない、脚のスカルプト、胴体のスカルプト、眼は横に出す、尾の下のひれの動きできれば修正、殻のマテリアルはもう少し不透明に、顔のパーツの動きはもっと大きく、脚の動きももっと大きく。




人気ブログランキングへ
にほんブログ村 立体アート・造形
JRANKブログランキング