ラベル Particle の投稿を表示しています。 すべての投稿を表示
ラベル Particle の投稿を表示しています。 すべての投稿を表示

2015年5月14日木曜日

Unityでゲームつくり23

火と水風の人型キャラクター(3.9MB)

画面をクリックしたら
矢印キーまたはwasdで移動
spaceでジャンプ
ゲームではなくただ操作するだけ

覚書:
・パーティクルをボーンの子にする際は
先にsimulation spaceをworldにすることに注意

・水のマテリアルはStandardAssetsのWaterProDaytimeを使用したが
StandardAssetsのPrefabと同様にWaterのスクリプトを多数のオブジェクトにアタッチしたら重くなったので使用せず

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

2012年3月21日水曜日

拡張現実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ブログランキング

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ブログランキング