суббота, 9 июля 2011 г.

Два пути запуска скриптов в CINEMA 4D

В CINEMA 4D существует два вида запуска скриптов COFFEE. Один статический, другой динамический. Статический, это Script Manager, динамический - Expression Editor. В SM скрипт запускается один раз, исполняется и останавливается, в EE скрипт запускается от каждого события, происходящего на экране, то есть находится постоянно, динамически в работе.
Посмотрим на примере. Вот код:
//******************************************************
//This Script was made by senior 09.07.11
//Manager Script code!
main(doc,op)
{
var a = new(SphereObject);  // creates a Sphere primitive class instance
doc->InsertObject(a,NULL,NULL);  //Add it to the scene
var frst=doc->GetFirstObject();  //Get First object
frst->SetBit(BIT_ACTIVE);  //Set object active
CallCommand(12236); // Make Editable

//Expression code!
var frame = doc->GetTime()->GetFrame(doc->GetFps());// Gets FPS
var obj = doc->GetActiveObject(); //Gets the selected object
var pos=obj->GetRelPos();//Gets position of object
pos.x=5*sin(frame/15)*40;// X position
pos.z=5*cos(frame/15)*40;//Z position
obj->SetRelPos(pos);// Set new position of object
}
//******************************************************
Сделаем Copy-Paste (от звёздочек до звёздочек) в Script Manager и запустим. На экране появится сфера и на этом работа скрипта закончится.
Скопируем теперь этот же код в Expression Editor (за исключением создания сферы):
//**************************************************
//This Script was made by senior 09.07.11
main(doc,op)
{
//Expression code!
var frame = doc->GetTime()->GetFrame(doc->GetFps());// Gets FPS
var obj = doc->GetActiveObject(); //Gets the selected object
var pos=obj->GetRelPos();//Gets position of object
pos.x=5*sin(frame/15)*40;// X position
pos.z=5*cos(frame/15)*40;//Z position
obj->SetRelPos(pos);// Set new position of object
}
//*****************************************************
Чтобы попасть в EE, нажмём правой кнопкой мыши на объект Sphere в Object Manager`е, выберем CINEMA 4D Tags, там выберем C.O.F.F.E.E. Возле объекта Sphere появился значок "чашка с кофе", два раза по нему кликнем левой кнопкой, появится редактор Expression Editor. Скопируем в него код. Нажмём Compile в EE. Код скомпилирован и если всё нормально, то в самом низу появится надпись "No Errors!". Нажмём F8, сфера начнёт двигаться по экрану, то есть каждое изменение позиции FPS запускает код в EE.

Комментариев нет:

Отправить комментарий