C4D C.O.F.F.E.E. クラスを使うには…_03
クラスのアクセス権:public/private/protected のテスト。
前回にprotectedを加えて3つあります。
違いは?
| 固定リンク
クラスのアクセス権:public/private/protected のテスト。
前回にprotectedを加えて3つあります。
違いは?
| 固定リンク
C.O.F.F.E.E.SDK GeModalDialogの頁は以下
GeModalDialogクラスの親クラスが、GeUserDialogクラスになっていますが…
GeDialogクラスですね。
class GeModalDialog : GeDialog
多分、気付いていた方もいるのでしょう。
既に修正された方もいるのでしょう…
Maxonで現在公開されているC.O.F.F.E.E. SDK 9.5は、先ほど確認しましたが間違ったままですね。
まだSDK11は、9.5の差分ですか…
今頃言うな!
って、思ったかも知れませんが…
自分も先ほど気付いたばかりで…
| 固定リンク
なんて事だ…
今まで、Undoの解釈を間違って覚えていたなんて…
Undoを参考にされた方、ごめんなさい…
賢い方は、気付いていたかも知れませんが…
| 固定リンク
たまたま別件で検索して、たまたまクリックして訪れた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の知り得た物凄く狭い範囲の情報を可能な限り、日本語で出す事です。
| 固定リンク
C.O.F.F.E.E.を使っている人は、基本的な事なので、飛ばしてください。
始めたばかりの人へ…
変数は次のように、宣言しますね。
var 変数名;
例えば、こんな風に…
vra a; |
var 一つで複数の変数を宣言する場合は、コンマで区切って宣言します。
var 変数名1[, 変数名2[, 変数名3[, 変数名4...]]];
例えば、こんな風。
var a , b , c; |
| 固定リンク
C4D のコマンドやツール、Plugin、ユーザスクリプトもIDで管理されています。
自らPluginを開発する人は、開発時の為のID1000001~1000010の使用が許されているのを知っていますよね。
Pluginが完成(動作確認も含め)したら、正規のIDをPluginCafeで発行してもらうのだ…
自分の作ったPluginのIDが、他のPluginのIDとの衝突を防ぐ為に…
開発中の確認ならば、10個もあれば十分だろう。が…
| 固定リンク
実際には…
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
との続きを…
| 固定リンク
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()を実行する前に、ある事をすると…
| 固定リンク
レンダリング設定のアンチエイリアスの設定値(なし/ベスト)を操作するスクリプトです。
必要だろうか…?
前回の自動照明の操作と、ほぼ同じです。
http://villager-and-c4d.cocolog-nifty.com/blog/2009/07/c4d-00-71a1.html
| 固定リンク
XPressoには、スプラインやポリゴンオブジェクトのポイント数を操作するノードがありません。
だから、C.O.F.F.E.E.ノードで作ってみました。
一応、ポリゴン数を操作するC.O.F.F.E.E.ノードも作ってみました。
ポリゴンオブジェクトのポイントを増やしても、新しいポリゴンを設定できなければと…、更に…
| 固定リンク
アニメーショントラックのキーにアクセスするには、トラック(CTrack)を取得し、そのトラックからカーブ(CCurve)を取得します。
更に、カーブからキー(CKey)を取得、と言うように段階を踏んでいきます。
| 固定リンク
R9.5ではアニメーションのトラックの中に、いくつかのシーケンスが格納され、そのシーケンスにもいくつかのキーが設定されています。
BaseTrack/BaseSequence/BaseKeyと言う3つのクラスでアニメーションにアクセスできました。
R11では、もうアニメーショントラックの中にシーケンスと言う構造ではないようです。
| 固定リンク
さて、デフォーマやHyperNURBSの事は、何とかなりそうな感じではあるが…
でも、最大の問題は、C4D標準搭載のobj形式のエクスポーターだ。
| 固定リンク
さて、仮に今までの事が全てクリアになったとしよう。
決定的な問題があります。
キャラクタを…と言うことは、単純にポリゴンオブジェクトとは考えづらいのです。
デフォーマやHypreNURBSを使っている事が多い事でしょう。
では、C.O.F.F.E.E.でデフォーマで変形されたポリゴンのポイントを取得する方法は、あるだろうか?
C.O.F.F.E.E.SDKと出会って、今までSDK内を何度も這いつくばって見てきたけど…
出くわしたことがありません。
何度も言うまでも無く、自分の目は節穴なので、すれ違っているにもかかわらず気付いていないだけかも知れませんが…
さらにHypreNURBSを適用し、細分化されたポリゴンの取得もSDKで見た事がありません。
では、変形されたポリゴンの取得は無理なのか?
変形を考慮して、自分で算出すれば良いのです。
デフォーマ毎にパラメータに合った計算方法で…
でも、頂点ウェイトも関係し…
HypreNURBSにもウェイトがあり…
自分で算出するのは面倒です。
| 固定リンク
ユーザスクリプトで、実際にフレームを指定して移動し、オブジェクトの座標を直接取得できないとなると…
自分が取得できなかっただけで、もっと優秀な人がやればできるのかも知れませんが…
アニメーショントラックから、時間を指定して数値を取り出せば良いのだ…
で、どうやって?
そう言えば、以前にアニメーショントラックを…
http://villager-and-c4d.cocolog-nifty.com/blog/2008/06/post_56dd.html#more
| 固定リンク
ついに、artist side/C4Dコミュニティ 「キャラクタを1フレーム毎にobj形式でXPressoでの保存」の回答が出ましたね。
さすが、宮田さん。
でも、30日限定で、それ以降は、お金を払わないとだめなのね…
デモ版は、よく期間限定にするけど、たとえ30日限定でも、30日みっちり使った試がないのだ。
だいたいが、インストールしてちょっと使ってみて、「あ、使えるかも」って…
気が付いたら30日過ぎてたりするんだよね…
使用時間にして欲しいよね。
「キャラクタを1フレーム毎にobj形式でXPressoでの保存」は、artist side/C4Dコミュニティで解決したから、このネタもここで終わり…
ではなく、少しだけ続けてみよう。
C.O.F.F.E.E.を使う人の知識として、記憶の片隅にでも置いていただければ…
| 固定リンク
ところで、C4Dはウィルス対策のためにC.O.F.F.E.E.エクスプレッションタグ内からのファイル操作を出来ないようにしています。
と、言う事はXPressoからのファイル操作は出来ないのだろうか?
| 固定リンク
希望の光も見えてこない状態だね。
質問には、「そんな素敵なツールを知っていれば…」とも言っていますが…
残念ながら、知らないのだ…
でも、どこかで似たような質問が…気のせいか…
今回の逆の、1フレームづつ取り込むんだったけ、か?
| 固定リンク
随分、難儀な質問です。
何となく、C4Dで出来そうな気がするのですが…
優秀な方なら、出来てしまうのだろうけど…
正直、自分には無理だろう…
自分には無理だからと言って、C4Dでは無理とは言い切れないし…
自分には無理だからと言って、挑戦しないわけではない。
自分には無理なら無理なりに、何処まで迫れるか…
迫りながら、atist sideC4Dフォーラムに誰かが答えを書き込むのを見守ることにします。
でも、解答を急いでいるのだろうか?
でも、この時点では「自分には無理」としか書けない…
| 固定リンク
アニメーション中に全てのライトの明るさを0.0にして真っ暗にするつもりが…
レンダリング設定のオプションの自動照明の値がOnになっていると、真っ暗になりませんね。
静止画を作成している場合は、全てのライトの明るさを0.0にすることは、皆無に近いと思いますが…
| 固定リンク
自分の所有している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のアイコンにペーストして見ました。
これが、骨の折れる作業で、途中でやめようかと何度思ったか…
でも、これは、やってはいけない事だろうか…?
結局、対応していない統合/廃止されたツールや、メインから外されアイコンを割り与えられなくなったツールがある為、全てを置き換えることはできませんでした。
まずい事に、アイコンを取り替えていたら「欲しい欲しい病」が…
「欲しい欲しい病」って不思議ですよね。
ある程度我慢していると、全く欲しくなくなるのに、でもまた大きく押し寄せてくるんだよね。
| 固定リンク
C.O.F.F.E.E.SDKのRenderDataで、C4Dのレンダリング設定へアクセスできます。
試しに、レンダリング設定にアクセスしてみましょう。
| 固定リンク
こんな滅茶苦茶なブログを読んで頂きありがとうございます。
なんとか10,000アクセスに達しました。
C4Dにも3DCGにも関係の無いアクセス(IEのプログレスバー関連とか)もありますが…
滅茶苦茶ぶりは直りませんが、今後ともよろしくお願いします。
| 固定リンク
定数ね。
enumは自動でグローバルな整数の連番を割り振りしてくれる機能でした。
constもグローバルですね。実数も文字列も整数も扱えます。
| 固定リンク
enumって何だ?
このブログでは、全く取り上げていませんでしたが…
obj->SearchNext(BIT_AOBJ);や…
op->Message(MSG_UPDATE);等で使っているBIT_AOBJやMSG_UPDATEのような定数の宣言に使います。
このBIT_AOBJは"BIT_AOBJ"と言う文字ではない事は知っている事だろう。
println(BIT_AOBJ); |
を実行するとわかります。
コンソールに表示された結果は…
2 |
要するに、これは文字ではなく決められた数値なのですね。
これは、グローバルな定数なのです。
obj->SearchNext(BIT_AOBJ); |
の代わりに、
obj->SearchNext(2); |
でも、いいわけです。
でもね。
SearchNext(2)って何だっけ?
確か2はオブジェクトの選択フラグだったかなぁ…違ったっけ?
1個や2個なら覚えていられるけど、覚えなければならない数が増えると、こんな事になるわけだ。
BIT_AOBJの方が、覚えやすいだろう。
覚えやすくするために使うわけではないけれど…
プログラムやスクリプトを組みやすく、わかりやすくする為だね。
| 固定リンク
C.O.F.F.E.E.で関数を作る場合、通常main()関数の前に記述しますよね。
/* ユーザスクリプト */ functionA(p1 , p2) { var res; : : return res; } main(doc , op) { var pos = functionA(p1 , p2);//関数functionA()を使用して返ってきた値を変数posへ代入 } |
普通に組むと、この様になるだろう。
| 固定リンク