« C4D CamMapCalib制作の為のテスト… カメラオブジェクトに画角や方向を適用… | トップページ | C4D CamMapCalib制作の為のテスト…プラグインの形式にしてみる… »

C4D CamMapCalib制作の為のテスト… 背景オブジェクト/カメラオブジェクトを追加してみる…

とりあえず、カメラの画角と方向の算出は、なんとかなりそうで…
背景オブジェクトとカメラオブジェクトを追加する簡単なテストを…

プラグインで、ガイドを合わせ終われば、OKボタンを押してC4Dへ戻るわけだね…
プラグイン終了後には、背景オブジェクトとカメラオブジェクトが追加されていなければいけない…
でも、既に背景やカメラがある場合はどうしようか…
まぁ、それは後々考えるとして…
オブジェクトの追加だけをユーザスクリプトで軽くテスト…

って、BaseDocument::InsertObject()で追加するだけだけどね…

/*
カメラオブジェクトと背景オブジェクトをシーンに追加
2009.9.26
*/


main(doc , op)
{
  //オブジェクトの割り当て
  var bg_obj = AllocObject(Obackground);//背景オブジェクトの割り当て
  var cam_obj = AllocObject(Ocamera);//カメラオブジェクトの割り当て
  var mrl = AllocMaterial(Mmaterial);//マテリアルの割り当て
  var txt_tag = AllocTag(Ttexture);//テクスチャタグの割り当て

  //テクスチャタグの設定と背景オブジェクトへ適用
  txt_tag#TEXTURETAG_MATERIAL = mrl;//テクスチャタグにマテリアルを適用
  txt_tag#TEXTURETAG_PROJECTION = TEXTURETAG_PROJECTION_FRONTAL;//投影法:正面
  bg_obj->InsertTag(txt_tag);//背景オブジェクトにテクスチャタグを適用

  //カメラオブジェクトに数値設定
  cam_obj#CAMERAOBJECT_FOV = Radians(60.0);//画角60°に設定
  cam_obj#ID_BASEOBJECT_ROTATION:VECTOR_X = 0.0;//角度H0.0°に設定
  cam_obj#ID_BASEOBJECT_ROTATION:VECTOR_Y = 0.0;//角度P0.0°に設定
  cam_obj#ID_BASEOBJECT_ROTATION:VECTOR_Z = 0.0;//角度B0.0°に設定

  //オブジェクトやマテリアルをシーンに追加
  doc->InsertMaterial(mrl , NULL);//マテリアルを追加
  doc->InsertObject(bg_obj , NULL , NULL);//背景オブジェクトを追加
  doc->InsertObject(cam_obj , NULL , NULL);//カメラオブジェクトを追加
}

これを実行する度に、シーンには新しいマテリアルとカメラと背景オブジェクトが追加されます。

Guide_26

基本は、こんな具合だろう…
他にも設定すべきはありますが…

今回のスクリプトは、いつもとは違い…new()を使わずに
オブジェクトの割り当てに、AllocObject()
マテリアルには、AllocMaterial()
タグには、AllocTag()
を使ってみました。

カメラオブジェクトの角度もBaseObject::SetRotation()ではなく、
BaseObject#ID_BASEOBJECT_ROTATION:VECTOR_X ※角度H
BaseObject#ID_BASEOBJECT_ROTATION:VECTOR_Y ※角度P
BaseObject#ID_BASEOBJECT_ROTATION:VECTOR_Z ※角度B
を使ってみました。属性マネージャの座標属性からドラッグ&ペーストしました。

いつも通り問題なく動作します。

|

« C4D CamMapCalib制作の為のテスト… カメラオブジェクトに画角や方向を適用… | トップページ | C4D CamMapCalib制作の為のテスト…プラグインの形式にしてみる… »