« 2009年6月 | トップページ | 2009年8月 »

2009年7月

C4D C.O.F.F.E.E. クラスを使うには…_03

クラスのアクセス権:public/private/protected のテスト。

前回にprotectedを加えて3つあります。
違いは?

続きを読む "C4D C.O.F.F.E.E. クラスを使うには…_03"

|

C4D C.O.F.F.E.E. クラスを使うには…_02

クラスの継承/派生…?

続きを読む "C4D C.O.F.F.E.E. クラスを使うには…_02"

|

C4D C.O.F.F.E.E. クラスを使うには…_01

クラスを自作…

今まで、全く触れていませんでしたが…
でも、クラスは使っていますよね。

続きを読む "C4D C.O.F.F.E.E. クラスを使うには…_01"

|

C4D C.O.F.F.E.E.SDK GeModalDialogの頁の誤

C.O.F.F.E.E.SDK GeModalDialogの頁は以下

Gemodaldialog_01

GeModalDialogクラスの親クラスが、GeUserDialogクラスになっていますが…
GeDialogクラスですね。

class GeModalDialog : GeDialog

多分、気付いていた方もいるのでしょう。
既に修正された方もいるのでしょう…

Maxonで現在公開されているC.O.F.F.E.E. SDK 9.5は、先ほど確認しましたが間違ったままですね。
まだSDK11は、9.5の差分ですか…

今頃言うな!
って、思ったかも知れませんが…
自分も先ほど気付いたばかりで…

|

C4D C.O.F.F.E.E.Undo…

なんて事だ…

今まで、Undoの解釈を間違って覚えていたなんて…
Undoを参考にされた方、ごめんなさい…

賢い方は、気付いていたかも知れませんが…

続きを読む "C4D C.O.F.F.E.E.Undo…"

|

C4D C.O.F.F.E.E.のグローバル変数

アプリケーション等のグローバル変数は、プログラムが起動して終了するまで、使える変数ですが…

C.O.F.F.E.E.は?

続きを読む "C4D C.O.F.F.E.E.のグローバル変数"

|

このブログを読んでくれている方は?

たまたま別件で検索して、たまたまクリックして訪れた1回限りの人も沢山いらっしゃいます。
でも、頻繁に訪れている方も…

ありがとうございます。

頻繁に訪れていただいている方は…
グラフィックにも興味はあるけど、プログラミングやスクリプト等にも興味がある方だど…
勝手に思っています。
「興味」と書いてしまいましたが、仕事でしぶしぶC.O.F.F.E.E.を使っている方も…

知っての通り、このブログのネタはC.O.F.F.E.E.を中心にしています。

ユーザスクリプトやC.O.F.F.E.E.エクスプレッション、XPressoのC.O.F.F.E.E.ノード、それからC.O.F.F.E.E.プラグイン(プラグインには、あまり触れていませんね…)に興味のある方が読んでいただいていると思います。

「C++使い」の方には、このブログの内容は低レベルなので、読んでいる人はいないとは思いますが…

世の中には色んな人がいるので、決め付けてはいけないのですけどね…

さて、このブログを読んでいる方の中で、もうそろそろC++を始めてみようかと考えている方はいませんか?

C++は難しそうだから…
そう思って手を出さない方も中には…
C++のソースを読み書きはできるけど…知識は有るけど実際に何かを作った事が無い人とか…
コンパイラの使い方とか、設定とか、面倒くさそうで…
公開されている情報が少ない…
躊躇する理由はいくらでもあるんですけどね…
C.O.F.F.E.E.で間に合ってるとか…

C++でプラグインの作成を始めるとなると、まずは情報集めから始まるんですけどね…
まぁ、少ない情報でも、情報通りに事が進めば何も悩まずにスタートラインに立てるのですが…
情報通りに行かないで、途中でうんざりして長期保留、もしくは半永久保留。
スタートラインにも立てずにいる人もいると思います。
まぁ、スタートラインに立った人でも、スタートラインにたどり着いて安心して、一時保留で…
気が付くと長期保留という人も…

と、ここまで書きましたが、大体が自分の事だったりします。照れますね…

このブログの本当の目的は、C4Dの知り得た物凄く狭い範囲の情報を可能な限り、日本語で出す事です。

続きを読む "このブログを読んでくれている方は?"

|

C4D C.O.F.F.E.E. 変数の宣言と初期化

C.O.F.F.E.E.を使っている人は、基本的な事なので、飛ばしてください。

始めたばかりの人へ…

変数は次のように、宣言しますね。

var 変数名;

例えば、こんな風に…

vra a;

var 一つで複数の変数を宣言する場合は、コンマで区切って宣言します。

var 変数名1[, 変数名2[, 変数名3[, 変数名4...]]];

例えば、こんな風。

var a , b , c;

続きを読む "C4D C.O.F.F.E.E. 変数の宣言と初期化"

|

C4D ユーザスクリプト ID と Plugin ID

C4D のコマンドやツール、Plugin、ユーザスクリプトもIDで管理されています。
自らPluginを開発する人は、開発時の為のID1000001~1000010の使用が許されているのを知っていますよね。

Pluginが完成(動作確認も含め)したら、正規のIDをPluginCafeで発行してもらうのだ…

自分の作ったPluginのIDが、他のPluginのIDとの衝突を防ぐ為に…

開発中の確認ならば、10個もあれば十分だろう。が…

続きを読む "C4D ユーザスクリプト ID と Plugin ID"

|

ポリゴンオブジェクトを1フレームごとにobj形式で保存

実際には…
artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-08
と、いう事なのですが、artist side/C4Dコミュニティでは解決積みなので、タイトルから[atist side]を外しました。

前回の記事
[artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-04]の解決法
http://villager-and-c4d.cocolog-nifty.com/blog/2009/07/artist-sidec4-9.html

を書いたので…

その前の記事、
artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-07(簡易obj形式エクスポーター)
http://villager-and-c4d.cocolog-nifty.com/blog/2009/07/artist-sidec4-6.html

との続きを…

続きを読む "ポリゴンオブジェクトを1フレームごとにobj形式で保存"

|

[artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-04]の解決法

artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-04
http://villager-and-c4d.cocolog-nifty.com/blog/2009/07/artist-sidec4-3.html

の解決法です。
ただし、記事の解決であって、artist sideの質問の解決ではありません。

[bool]BaseDocument::SetTime([BaseTime]tm);

を使ってスクリプト内でタイムライン上を時間移動してアニメーションの結果を得る事に失敗しましたが…
ただ、SetTime()を実行する前に、ある事をすると…

続きを読む "[artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-04]の解決法"

|

C4D レンダリング設定のアンチエイリアス設定を操作するスクリプト

レンダリング設定のアンチエイリアスの設定値(なし/ベスト)を操作するスクリプトです。
必要だろうか…?

前回の自動照明の操作と、ほぼ同じです。
http://villager-and-c4d.cocolog-nifty.com/blog/2009/07/c4d-00-71a1.html

続きを読む "C4D レンダリング設定のアンチエイリアス設定を操作するスクリプト"

|

C4D ポイント数を操作するC.O.F.F.E.E.ノード

XPressoには、スプラインやポリゴンオブジェクトのポイント数を操作するノードがありません。

だから、C.O.F.F.E.E.ノードで作ってみました。
一応、ポリゴン数を操作するC.O.F.F.E.E.ノードも作ってみました。

ポリゴンオブジェクトのポイントを増やしても、新しいポリゴンを設定できなければと…、更に…

続きを読む "C4D ポイント数を操作するC.O.F.F.E.E.ノード"

|

C4D R11 C.O.F.F.E.E.からアニメーショントラック内のキーを取得しアクセス

アニメーショントラックのキーにアクセスするには、トラック(CTrack)を取得し、そのトラックからカーブ(CCurve)を取得します。
更に、カーブからキー(CKey)を取得、と言うように段階を踏んでいきます。

続きを読む "C4D R11 C.O.F.F.E.E.からアニメーショントラック内のキーを取得しアクセス"

|

C4D R11 C.O.F.F.E.E.からアニメーショントラックの属性にアクセス

R9.5ではアニメーションのトラックの中に、いくつかのシーケンスが格納され、そのシーケンスにもいくつかのキーが設定されています。
BaseTrack/BaseSequence/BaseKeyと言う3つのクラスでアニメーションにアクセスできました。

R11では、もうアニメーショントラックの中にシーケンスと言う構造ではないようです。

続きを読む "C4D R11 C.O.F.F.E.E.からアニメーショントラックの属性にアクセス"

|

artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-07

さて、デフォーマやHyperNURBSの事は、何とかなりそうな感じではあるが…

でも、最大の問題は、C4D標準搭載のobj形式のエクスポーターだ。

続きを読む "artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-07"

|

artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-06

さて、仮に今までの事が全てクリアになったとしよう。
決定的な問題があります。

キャラクタを…と言うことは、単純にポリゴンオブジェクトとは考えづらいのです。
デフォーマやHypreNURBSを使っている事が多い事でしょう。

では、C.O.F.F.E.E.でデフォーマで変形されたポリゴンのポイントを取得する方法は、あるだろうか?
C.O.F.F.E.E.SDKと出会って、今までSDK内を何度も這いつくばって見てきたけど…
出くわしたことがありません。
何度も言うまでも無く、自分の目は節穴なので、すれ違っているにもかかわらず気付いていないだけかも知れませんが…

さらにHypreNURBSを適用し、細分化されたポリゴンの取得もSDKで見た事がありません。

では、変形されたポリゴンの取得は無理なのか?

変形を考慮して、自分で算出すれば良いのです。
デフォーマ毎にパラメータに合った計算方法で…

でも、頂点ウェイトも関係し…
HypreNURBSにもウェイトがあり…

自分で算出するのは面倒です。

続きを読む "artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-06"

|

artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-05

ユーザスクリプトで、実際にフレームを指定して移動し、オブジェクトの座標を直接取得できないとなると…
自分が取得できなかっただけで、もっと優秀な人がやればできるのかも知れませんが…

アニメーショントラックから、時間を指定して数値を取り出せば良いのだ…

で、どうやって?
そう言えば、以前にアニメーショントラックを…
http://villager-and-c4d.cocolog-nifty.com/blog/2008/06/post_56dd.html#more

続きを読む "artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-05"

|

artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-04

XPressoではなく、ユーザスクリプトだったらどうだろう?

続きを読む "artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-04"

|

artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?回答が出た…

ついに、artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」の回答が出ましたね。
さすが、宮田さん。

でも、30日限定で、それ以降は、お金を払わないとだめなのね…

デモ版は、よく期間限定にするけど、たとえ30日限定でも、30日みっちり使った試がないのだ。
だいたいが、インストールしてちょっと使ってみて、「あ、使えるかも」って…
気が付いたら30日過ぎてたりするんだよね…

使用時間にして欲しいよね。

「キャラクタを1フレーム毎にobj形式でXPressoでの保存」は、artist side/C4Dコミュニティで解決したから、このネタもここで終わり…
ではなく、少しだけ続けてみよう。

C.O.F.F.E.E.を使う人の知識として、記憶の片隅にでも置いていただければ…

|

artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-03

ところで、C4Dはウィルス対策のためにC.O.F.F.E.E.エクスプレッションタグ内からのファイル操作を出来ないようにしています。

と、言う事はXPressoからのファイル操作は出来ないのだろうか?

続きを読む "artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-03"

|

artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-02

希望の光も見えてこない状態だね。

質問には、「そんな素敵なツールを知っていれば…」とも言っていますが…
残念ながら、知らないのだ…

でも、どこかで似たような質問が…気のせいか…
今回の逆の、1フレームづつ取り込むんだったけ、か?

続きを読む "artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-02"

|

artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-01

随分、難儀な質問です。
何となく、C4Dで出来そうな気がするのですが…
優秀な方なら、出来てしまうのだろうけど…
正直、自分には無理だろう…
自分には無理だからと言って、C4Dでは無理とは言い切れないし…

自分には無理だからと言って、挑戦しないわけではない。
自分には無理なら無理なりに、何処まで迫れるか…

迫りながら、atist sideC4Dフォーラムに誰かが答えを書き込むのを見守ることにします。

でも、解答を急いでいるのだろうか?
でも、この時点では「自分には無理」としか書けない…

続きを読む "artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」?-01"

|

C4D 全てのライトオブジェクトの明るさを0.0にすると…レンダリング設定の自動照明

アニメーション中に全てのライトの明るさを0.0にして真っ暗にするつもりが…
レンダリング設定のオプションの自動照明の値がOnになっていると、真っ暗になりませんね。

静止画を作成している場合は、全てのライトの明るさを0.0にすることは、皆無に近いと思いますが…

続きを読む "C4D 全てのライトオブジェクトの明るさを0.0にすると…レンダリング設定の自動照明"

|

C4D スクリプトマネージャのメニューの状態。

スクリプトマネージャのメニューの状態を熟知している人は、読み飛ばしてください。

続きを読む "C4D スクリプトマネージャのメニューの状態。"

|

最近、ブログの更新をしていなかったのは…

自分の所有しているC4Dは、いまだにR9.5。
バージョンアップする、お金が無いのだ。

R9.5のスキームをR11のスキームに変更して、R11気分を味わっていたのですが…
http://villager-and-c4d.cocolog-nifty.com/blog/2009/03/c4d-r9r11-bb89.html

C4D R11 DemoのアイコンをC4D R9.5のアイコンにペーストして見ました。
これが、骨の折れる作業で、途中でやめようかと何度思ったか…
でも、これは、やってはいけない事だろうか…?

R9tor11

結局、対応していない統合/廃止されたツールや、メインから外されアイコンを割り与えられなくなったツールがある為、全てを置き換えることはできませんでした。

まずい事に、アイコンを取り替えていたら「欲しい欲しい病」が…
「欲しい欲しい病」って不思議ですよね。
ある程度我慢していると、全く欲しくなくなるのに、でもまた大きく押し寄せてくるんだよね。

|

C4D C.O.F.F.E.E.RenderDataへアクセス…レンダリング設定の取得

C.O.F.F.E.E.SDKのRenderDataで、C4Dのレンダリング設定へアクセスできます。

試しに、レンダリング設定にアクセスしてみましょう。

続きを読む "C4D C.O.F.F.E.E.RenderDataへアクセス…レンダリング設定の取得"

|

10,000アクセスありがとうございます。

こんな滅茶苦茶なブログを読んで頂きありがとうございます。

なんとか10,000アクセスに達しました。
C4Dにも3DCGにも関係の無いアクセス(IEのプログレスバー関連とか)もありますが…

滅茶苦茶ぶりは直りませんが、今後ともよろしくお願いします。

|

C4D C.O.F.F.E.E. 変数の寿命

グローバル変数は、何処からでも使用することができますね。
ローカル変数は…
宣言した関数内と、よく耳にしますが…

続きを読む "C4D C.O.F.F.E.E. 変数の寿命"

|

C4D C.O.F.F.E.E. 定数 const

定数ね。
enumは自動でグローバルな整数の連番を割り振りしてくれる機能でした。

constもグローバルですね。実数も文字列も整数も扱えます。

続きを読む "C4D C.O.F.F.E.E. 定数 const"

|

C4D C.O.F.F.E.E. 列挙? enum

enumって何だ?

このブログでは、全く取り上げていませんでしたが…

obj->SearchNext(BIT_AOBJ);や…
op->Message(MSG_UPDATE);等で使っているBIT_AOBJMSG_UPDATEのような定数の宣言に使います。

このBIT_AOBJは"BIT_AOBJ"と言う文字ではない事は知っている事だろう。

println(BIT_AOBJ);

を実行するとわかります。

コンソールに表示された結果は…

2

要するに、これは文字ではなく決められた数値なのですね。

これは、グローバルな定数なのです。

obj->SearchNext(BIT_AOBJ);

の代わりに、

obj->SearchNext(2);

でも、いいわけです。

でもね。

SearchNext(2)って何だっけ?
確か2はオブジェクトの選択フラグだったかなぁ…違ったっけ?

1個や2個なら覚えていられるけど、覚えなければならない数が増えると、こんな事になるわけだ。

BIT_AOBJの方が、覚えやすいだろう。
覚えやすくするために使うわけではないけれど…
プログラムやスクリプトを組みやすく、わかりやすくする為だね。

続きを読む "C4D C.O.F.F.E.E. 列挙? enum"

|

C4D C.O.F.F.E.E. 関数のプロトタイプ

C.O.F.F.E.E.で関数を作る場合、通常main()関数の前に記述しますよね。

/*
ユーザスクリプト
*/


functionA(p1 , p2)
{
  var res;
    :
    :
  return res;
}


main(doc , op)
{
  var pos = functionA(p1 , p2);//関数functionA()を使用して返ってきた値を変数posへ代入 
}

普通に組むと、この様になるだろう。

続きを読む "C4D C.O.F.F.E.E. 関数のプロトタイプ"

|

« 2009年6月 | トップページ | 2009年8月 »