оставить 3 основных класса - эмитер\партикл\групп со своими полями.
И просто тупо пробегаться и обновлять эти поля.
скажем так
Обновление Эмиттера
\\Обновление позиции\ратации и.т.д....
Эмиттер имеет поле указывыающее на группу.
--> подуровень группа
\\Обновление позиции\ротации группы и т.д....
Группа имеет поле указывающее на партикл.
\\Обновление партикла - обновление трансформации партикла + транформация группы + трансформация Эмиттера. = финальная трансформация партикла.
\\Другие обновления партикла (альфа,след,жизнь и т.д....)
Эмиттер может содержать любое кол-во групп, так же как и группа может содержать любое кол-во партиклов.
Думается мне так....надо еще у Тормоза спросить как он устроил свои партиклы.