Первое что сразу пришло на ум - сделать в максе куб(или пивот) движущийся по сплайну (Animation -> Constraints -> Path Constraint) экспортнуть эту анимашку в B3d. Загрузить в блиц и привязать к кубу партиклы дыма. А чтобы не вылезали за стенки, просто убивать их при столкновении со стенками. или просто в функции патиклов сделать дальность их разлетания равную диаметру трубы
