Попробуй так :
Моделишь фигуру, анимируешь её как хочешь, говоришь ей EmittParticlesFrom Оbject, тип эмиттера ставишь Surface, назначаешь этот же мешь как Goal объект для партиклов, подбираешь себе параметры типа sped, goal weight и smothness b т.д., тип партиклов либо Sprite либо Cloud ну и дальше уже можно извращаться.
Если будешь использовать Sprite тип, то советую крутить партиклы в разные стороны для пущего эффекта клубящегося дыма:
Заводишь атрибут в ParticleShape1 "userScalarPP1", в CreationExpression пишешь "ParticleShape1.userScalarPP1=rand (-1,1)"-это рандом на кручение по или против часовой стрелки на каждый партикл, а в RuntimeExpression пишешь "ParticleShape1.spriteTwistPP=ParticleShape1.userScalarPP1*time*100"- это собственно вращение, 100 - скорость.
если где ошибся - сорри.
удачи.