« C4D ChannelShader…10 testChannelPluginクラスの幾つかのメンバ関数にprintln()を取り付けて様子を見る。 | トップページ | C4D 「InsertObject」を検索された方がいたので、「C.O.F.F.E.E.でシーンにオブジェクトを追加する。」 »

C4D 表計算等から吐き出したCSV/TSVファイルをXPresso内で読み込むC.O.F.F.E.E.ノードを作ってみた…

XPresso内から外部のデータファイルにアクセスする必要があるだろうか…
XPresso+外部のデータと言う事は、アニメーションを作ると言う事だと思うのですが…

アニメーションが1フレーム進む度に外部のファイルを読みに行くとなると、レスポンスが悪くならないだろうか?
それならば、データを完全に取り込んでしまった方が良いのでは…?
XPressoでフレーム毎に読み込みを掛けているメリットは、外部データファイルの差し替えが容易に出来るという事だけど…

それだけの為に必要だろうか…?

CSVは、コンマ区切りのデータでアスキーファイルです。
拡張子が.csv

-267.393,118.579,-141.22
-316.504,171.02,-141.854
-273.266,195.928,-82.639
-217.555,202.354,-27.524
-157.661,200.009,24.092
-97.065,195.321,74.402
-35.866,188.764,123.71
25.96,181.762,173.211
87.916,174.584,222.682
149.062,166.398,270.597
210.452,159.671,319.935
271.872,152.57,368.991
283.508,162.77,387.813
291.592,99.648,342.948
300.989,35.282,298.233
303.816,-26.797,249.529
301.503,-86.679,198.044
278.71,-133.125,139.335
237.914,-162.5,78.617
188.598,-180.574,19.608

見辛いけど…

TSVは、タブ区切りのアスキーファイル…
拡張子は特になし…

-267.393118.579  -141.22
-316.504 171.02   -141.854
-273.266 195.928  -82.639
-217.555 202.354  -27.524
-157.661 200.009  24.092
-97.065  195.321  74.402
-35.866  188.764  123.71
25.96    181.762  173.211
87.916   174.584  222.682
149.062  166.398  270.597
210.452  159.671  319.935
271.872  152.57   368.991
283.508  162.77   387.813
291.592  99.648   342.948
300.989  35.282   298.233
303.816  -26.797  249.529
301.503  -86.679  198.044
278.71   -133.125 139.335
237.914  -162.5   78.617
188.598  -180.574 19.608

一応、Winでは動作していますが、Macを所持していないのでテストができません…ダメかも…

今回は、3列のデータをベクトルとして加工しました。

Csvtsv_03

球体と立方体の位置に適用しましたので、アニメーションを再生すると動きます。
動かなければ、読み込みに失敗しています。

Csvtsv_01

filesでファイルを指定します。
numberで使用する行を指定します。
readは読み込みフラグで、上のXPressoでは、0フレームでファイルを読みに言います。
readフラグは、レスポンスが悪くならない様にする為の対策で、常にOnにすると、毎フレームでファイルを読みにいきます。小さいファイルなら問題ないかもしれません。

Csvtsv_02

ファイルの指定は、ユーザデータを使いました。

まだ、全くテストをしていないので、予期しないエラーが出るかもしれませんが…

…ちょっと修正を…

使用するときに、CSVとTSVで使い分けするのが面倒だと思って、1つで両方読める様に変更しました。
ほとんど中身は同じだったので…

Csvtsv_04

最初はC4D R9.5で動作を確認して問題なかったのですが、コマンドの仕様が変わったのだろうか?R11.5Demoで同じものを動かすとC.O.F.F.E.E.エラーが出ていました。
一応修正しR11.5Demoでも動作するようにしましたが…どうなるかわかりません。
とりあえず、Macでも動くように考えましたが…
確認できないので、どうなのかは分かりません。

データは3列を守ってください。数値データ以外も不可です。
行はメモリが許す限り… ただデータ量が多いと処理に時間がかかってモッタリすると思います。

読み込んでいないようでしたら、ユーザデータで指定してあるファイルをリンクしなおしてから試してください。
もちろん、重要なシーンファイルは保存し閉じてから…

「csvtsv.ZIP」

たった今気づきました…
ユーザデータのファイル型は、絶対パスでなくても動作するんですね…
相対パスと言っても良いレベルなのか分かりませんが、c4dシーンファイルと同じフォルダにあれば、ファイル名だけでアクセスできるようで…

Csvtsv_05

|

« C4D ChannelShader…10 testChannelPluginクラスの幾つかのメンバ関数にprintln()を取り付けて様子を見る。 | トップページ | C4D 「InsertObject」を検索された方がいたので、「C.O.F.F.E.E.でシーンにオブジェクトを追加する。」 »