« C.O.F.F.E.E. SDK R12は、ドコが変わったんだい… | トップページ | C4D R12 ダイナミクスって… »

C.O.F.F.E.E. SDK R12は、ドコが変わったんだい…2

C.O.F.F.E.E.SDK R11からR12への変更点SDKより

  • 全ての基本色(WPREF_..._COL)がVIEWCOLOR_...へ変更。
  • BaseDocumentクラスのInsertRenderData()のパラメータにparentが追加されました。
  • BaseList4Dクラスは、BaseList2Dクラスに統合されました。
  • BaseList2DクラスのSearchNext()が廃止されました。
  • VariableTagのタイプThermite2DがTangentへ変更。
  • BaseTagのタイプTanchor、Tkinematic、Tfixexpression、Tikexpressionは削除された。
  • SplineObjectクラスのInitLength()、FreeLength()、GetLength()、UniformToNatural()は、新しいSplineLengthDataクラスへ移行した。
  • VolumeDataクラスのlhitは削除された。
  • BaseObjectクラスのOhypernurbsは削除され、代わりにOsdsを使用する。
  • BaseSequenceクラス、BaseKeyクラス、BaseTrackクラスは削除され、代わりにCCurveクラス、CKeyクラス、CTrackクラスを使用する。
  • Markerクラスは、GeMarkerクラスへ変更。
  • AnimationPlugins(PluginTrack、 PluginKey、 PluginSequence)は、もうサポートしていない。
  • C.O.F.F.E.E.はもう、アニメーションキーにオーバーロードができない。
  • PLAKeyクラスは削除された。
  • UNDO_…が、UNDOTYPE_…へ変更。
  • KinematicTagが廃止されたので、例題のIkrecord.cofを削除した。
  • DA_Flags_…は互換性を維持するために残してあるが、将来的には廃止される予定なのでDRAWFLAGS_…を使用してください。
  • GeModalDialogとGeDialogの派生階層は訂正された。
  • C4D R12の「軸のゼロ化(デュアルトランスフォーム)」の為の、BaseObjectクラスに新しいメンバーが追加:GetAbsPos, SetAbsPos, GetAbsScale, SetAbsScale, GetAbsRot, SetAbsRot, GetFrozenPos, SetFrozenPos, GetFrozenScale, SetFrozenScale, GetFrozenRot, SetFrozenRot, GetRelPos, SetRelPos, GetRelScale, SetRelScale, GetRelRot, SetRelRot, GetFrozenMln, GetRelMln, GetRelMl, SetRelMl, CopyMatrixTo

残りの半分の大半は、削除された項目なのでサラッとね…

BaseSequenceクラス、BaseKeyクラス、BaseTrackクラスは削除され、代わりにCCurveクラス、CKeyクラス、CTrackクラスを使用

CTrackクラス、CCurveクラス、CKeyクラスの使い方
http://villager-and-c4d.cocolog-nifty.com/blog/2009/07/c4d-r11-coffe-1.html#more

Markerクラスは、GeMarkerクラスへ変更

Markerは使ったことないなぁ…

BaseList2DクラスのGetMarker()で取得ができます。
オブジェクトを特定する為に、各々オブジェクトには唯一のMarkerが割り当てられている。
Markerは、プログラムが実行中のみ有効…

比較するオブジェクトから、GetMarker()でGeMarkerを取得し、IsEq()で比較する。
返り値がTrueなら同一オブジェクト、Falseなら別のオブジェクト。

UNDO_…が、UNDOTYPE_…へ変更

UNDOTYPE_…は、BaseDocumentクラスのAddUndo()へ渡す定数です。

Constant Description
UNDOTYPE_CHANGE Any change to an object, including hierarchy modifications; modification in positioning (object has been moved from A to B), substructures etc. (Needs to be called BEFORE action.)
UNDOTYPE_CHANGE_NOCHILDREN Same as UNDO_CHANGE, but without child modifications. (Needs to be called BEFORE action.)
UNDOTYPE_CHANGE_SMALL Change to local data only (e.g. data container), no substructures (e.g. no tags on an object). Also no childs. (Needs to be called BEFORE action.)
UNDOTYPE_CHANGE_SELECTION Change to point/poly/edge selection only. (Needs to be called BEFORE action.)
UNDOTYPE_NEW New object/node/tag etc. was created. (Needs to be called AFTER action.)
UNDOTYPE_DELETE Object/node/tag etc. to be deleted. (Needs to be called BEFORE action.)
UNDOTYPE_ACTIVATE Automatically managed by SetActiveObject()/Tag()/Material() etc. No need to use manually.
UNDOTYPE_DEACTIVATE Automatically managed by SetActiveObject()/Tag()/Material() etc. No need to use manually.
UNDOTYPE_BITS Change to object bits, e.g. selection status.
UNDOTYPE_MULTISELECTIONAXIS

Undoの使い方
http://villager-and-c4d.cocolog-nifty.com/blog/2009/07/c4d-coffeeundo.html

DA_Flags_…は将来的には廃止される予定なのでDRAWFLAGS_…を使用

DRAWFLAGS_…は、Basic functionsのDrawViews()関数(画面を更新する関数)に渡す定数です。

Constant Description
REDRAW_ALL Forces a manual immediate redraw
DRAWFLAGS_NO_THREAD Disable threaded redraw
DRAWFLAGS_NO_REDUCTION Disable the auto-reduction
DRAWFLAGS_NO_ANIMATION Calculate no animation effects
DRAWFLAGS_ONLY_ACTIVE_VIEW Only the active view (if set in preferences)
DRAWFLAGS_NO_EXPRESSIONS Don't evaluate expressions
DRAWFLAGS_INDRAG
DRAWFLAGS_FORCEFULLREDRAW Redraw everything
DRAWFLAGS_ONLY_CAMERAEXPRESSION Only evaluate camera expressions
DRAWFLAGS_INMOVE
DRAWFLAGS_ONLY_BASEDRAW
DRAWFLAGS_NO_EXPRESSIONS Redraw only highlight pass
DRAWFLAGS_NO_EXPRESSIONS

DrawViews()関数は、C.O.F.F.E.E.エクスプレッションタグ内で使用しない方がいいです。
C.O.F.F.E.E.エクスプレッションはイベントが発生すると実行されます。
画面が更新されるたび実行されてしまうので、C4Dが「応答なし」になる可能性が大きいです。

GeModalDialogとGeDialogの派生階層の訂正

C.O.F.F.E.E.SDK R12以前の表記は…

GeBaseDialog
  └GeUserDialog
     ├GeDialog
     └GeModalDialog

C.O.F.F.E.E.SDK R12で訂正された表記…

GeBaseDialog
  └GeUserDialog
     └GeDialog
        └GeModalDialog

このブログでは、最初から訂正された階層で記事が書かれているはずですので、問題ないかと…
C.O.F.F.E.E.SDKの表記だけが違っています。

C4D R12の「軸のゼロ化(デュアルトランスフォーム)」の為の、BaseObjectクラスに新しいメンバーが追加

BaseObject
[vector]GetAbsPos()
[vector]GetAbsScale()
[vector]GetAbsRot()
[bool]SetAbsPos([vector]p)
[bool]SetAbsScale([vector]s)
[bool]SetAbsRot([vector]r)
オブジェクト絶対
[vector]GetFrozenPos()
[vector]GetFrozenScale()
[vector]GetFrozenRot()
[bool]SetFrozenPos([vector]p)
[bool]SetFrozenScale([vector]s)
[bool]SetFrozenRot([vector]r)
座標変換を固定
[vector]GetRelPos()
[vector]GetRelScale()
[vector]GetRelRot()
[bool]SetRelPos([vector]p)
[bool]SetRelScale([vector]s)
[bool]SetRelRot([vector]r)
オブジェクト相対
[Matrix]GetFrozenMln() 座標変換を固定正規ローカルマトリクス
[Matrix]GetRelMln() オブジェクト相対正規ローカルマトリクス
[Matrix]GetRelMl() [bool]SetRelMl([Matrix]ml) オブジェクト相対ローカルマトリクス
[void]CopyMatrixTo([BaseObject]dest) 絶対、相対、固定マトリクスをdestへコピーします。

残りの半分もザックり書いたので、間違っていたらゴメン…

|

« C.O.F.F.E.E. SDK R12は、ドコが変わったんだい… | トップページ | C4D R12 ダイナミクスって… »