Nukeのノードのクローンは使ってはいけない!(という都市伝説?)
- 2023/05/11
2015年に私がNukeを使い始めたとき、たしかバージョン9でしたが、「ノードのクローン(Clone)はファイルが壊れるから使わない方がいい」と先輩Nukeコンポジターに言われました。
特に疑いもせず、それを信じて、今までクローンは使ってきませんでした。
しかし、考えてみると、あの話は本当だったのでしょうか?
そういえば、自分できちんと調べたことはありません。
ひょっとすると、都市伝説だったのではないでしょうか……?
と、いうことで!
今回、Nukeのクローンノードに関するネット上のうわさを調べてみました!
時系列順に紹介していきます。
Nukeのクローンの危険性を指摘する文献は、古いものでは2012年、jrab氏(おそらくCGスーパーバイザー/コンポジターのジョン R.A. ベンソン氏)がNukepediaに投稿した"破損したスクリプトを直すための正規表現(reモジュール)"という記事で登場します。
Nukepedia. regular expressions (re module) to fix broken scripts
http://www.nukepedia.com/python/regular-expressions-re-module-to-fix-broken-scripts
壊れたクローン:
最後に、壊れたクローンはスクリプトを深刻に破壊します。クローンは'clone'と'set'で定義されます。cloneがsetに含まれていない場合、スクリプトが壊れてしまい、手動で直すのは非常に困難です。正規表現を使用すると簡単になります。
Nukeの作業ファイル=Nukeスクリプト(.nk)のデータはテキストの状態になっており、「メモ帳」などのテキストエディターで開くことができます。Nukeスクリプトが壊れて「開こうとするとNukeが落ちて開けない」「開けるが一部のノードが消えてしまっている」といった問題が起きた場合は、テキストを編集して(ある程度)解決できることが知られています。jrab氏は「正規表現」という文字列を扱うプログラミングの手法を利用して、壊れたNukeを直す方法を紹介しています。
2014年9月、Foundryの掲示板においてNukeのエラーで相談している質問者に対し、"letin210"という人物が「クローンノードを使用すべきではない」とアドバイスしています。結局、質問者のトラブルはクローンが原因ではなかったようです。
Foundry Community. blank error message
https://community.foundry.com/discuss/topic/100544/blank-error-message
letin210 :
Nukeでクローンノードを使用しないことを強くお勧めします。ほとんどの場合、この種の問題はある時点で発生します。
テキストエディターを使用してスクリプトを開き、クローンノードを置換または削除するのはどうでしょうか。
少なくとも、スクリプトを破損前の状態に戻すことは役に立ちます。
2015年11月、同じくFoundryの掲示板においてコンポジターのアンドリュー・レア氏が「スクリプトを開こうとするとクラッシュする」と相談したところ、クローンの話題になります。
Foundry Community. Tips for Nuke scripts that crash on load
https://community.foundry.com/discuss/topic/117934/tips-for-nuke-scripts-that-crash-on-load
アンドリュー・レア:
開こうとするとクラッシュするスクリプトをデバッグする方法について何かヒントを持っている人はいますか?
ダン・スタイン:
テキストエディターからすべてをコピーし、空のNukeスクリプトを開いて、ノードグラフにペーストできます。破損がある場合はスクリプトの一部のみがペーストされるため、通常はすぐにわかります。そこから破損箇所を特定できます。クローンはしばしば犯人となるため、とにかく避けるべきです。もしそのようなものがあれば、テキストファイル内でクリーンアップできます。
アンドリュー・レア:
クローンはファイルが壊れると聞いていたので、いつも避けてきました。なんでこんなものがNukeの機能にあるのでしょう?
(略)
数年前にDNEGのシニアコンパーによる講演に参加したときもNukeで避けるべきトップ10リストの中にクローン作成がありましたし、それに関するいくつかの警告をネットでも読みました。
ダン・スタイン:
ええ、アーティストがクローンを使って、1日後とか1週間後にスクリプトを開いて、自分の作業がすべて「無くなった」ことに気づいてパニックになった後、私がレスキューしなければならなかったスクリプトは数えきれませんよ...。
あるスタジオで働いていたときは、世界中から(DNEGも含めて)何百ものVFXコンプが定期的に送られてきました。幸いなことに多くの人がクローンを使わないことを知っていましたが、念のために必ず事前処理を通していました。このステップが省略されてクローンが通過した場合は、ほぼ確実に破損が発生しました。
クローンはおそらく特定のシステム上で特定の作業を行うことは安全で、ほぼ必ず復旧できるのだと思いますが、私にとってはリスクを抱えてまで使う価値のないものです。その機能が必要な場合、私はいつもノードをエクスプレッションでリンクしています。
2018年1月、コンポジティングスーパーバイザーのベン・マキューアン氏は自身のブログにおける"原点に戻ろう:効率的なコンポジティングでNukeスクリプトを高速化する方法"という記事内で、クローンノードを使うな、と言っています。
Ben McEwan's Compositing Blog. Back To Basics: How To Speed Up Your Nuke Scripts By Compositing Efficiently
https://benmcewan.com/blog/2018/01/22/back-to-basics-speed-up-your-nuke-scripts-by-compositing-efficiently/
同じプロパティを持つ2つのノードを使用する必要がある場合は、値をエクスプレッションでリンクさせ、1つのノブを変更するだけですべての複製も更新できるようにすべきです。クローンノードは使わないでください。クローン作成は一見便利そうに見えますが、次の理由から欺瞞的です。
・多くの場合、キーフレームがタイムラインに正しく表示されなくなります。
・別のアーティストがスクリプトを開く必要がある場合、エクスプレッションにリンクされたノード/ノブほど明確ではありません。
・Nukeスクリプト全体を破損させることがあります!
CGWORLD.jpの「NUKE プラクティカル・ガイド」の連載でも知られるコンポジターのテラオカマサヒロ氏は2020年4月、自分はクローンを使わない、とツイートしています。
周りには使ってる人結構いますが笑 ボクは、クローンはつかわないです。代わりに自前の全てのknobにexpression貼るやつ使ってます。groupノードはつかえないとか完璧ではないんですが。まぁまぁつかえます。https://t.co/12c6HiaIeC
— masahiro.teraoka (@tiraoka) April 24, 2020
2021年6月、シニアVFXコンポジターのコンラッド・オルソン氏が掲示板Redditで「ノードのクローンは今は大丈夫なのか?」と問いかけました。
Reddit. Is Cloning Nodes OK Now?
https://www.reddit.com/r/NukeVFX/comments/o0glrh/is_cloning_nodes_ok_now/
コンラッド・オルソン:
私がNukeを使い始めた12年前のv5では、スクリプトの破損の原因になるのでノードのクローンは絶対につくらないというのが一般常識でした。その後、クローンノードを使ったスクリプトが破損するのを何度か見かけましたが、それがクローンのせいだとは断言できません。しかし、私の脳裏では言われてきたことを裏付ける感覚があり、私はキャリアを通してクローンの作成には慎重になりました。自分では絶対につくらないし、クローンノードが入ったスクリプトを受け取ったらクローンをエクスプレッションに置き換えています。
しかし、ここ数年、他の人のスクリプトでクローンノードが使われているのを見ることが多くなってきて、いつも不安になります。
で、どうなんでしょう?最近のクローン作成は安全なのでしょうか?昔からいつも安全で、私は愚かな迷信を学んだだけで、今やただ古風な考えを持つおじいちゃんコンポジターになってしまったのでしょうか?すでに修正済みの問題でしょうか?それとも、まだこの問題は存在していて、若者たちが警戒していないのでしょうか?
gerardmpatience :
私が思うに、ノードのクローンを作りたいと思う状況というのは、スクリプトの中で一つのことを何度も繰り返したいときで、それがペイントノードや他のメモリを食うヤツと無造作に組み合わさって、メモリの問題が生じてクラッシュして、それでスクリプトが破損するのではないかと。
コンラッド・オルソン:
私が見た2つの破損は、クレイジーなスクリプトではありませんでしたが、大きなものでした。ある日、それらを開くと、ノードの半分が消えていたんです。
Ckynus :
ここ3年ぐらいはずっと直っています。でも、ノードツリーの半分が消えてしまうというあなたのエラーは覚えていますよ。あれは致命的で、クローンを避けてきたあなたを責める気になれません。
lucky0511 :
スクリプトの破損ってどういう意味? ?開くことができないのか、ノードがジャンプして乱れてシャッフルされるとか?
コンラッド・オルソン:
私が見たケースでは、スクリプトを開いたときに、ノードの半分が欠けていたり、接続されていなかったりしました。
クローンは問題ないという声も多数あります。
Bones_and_Tomes :
クローンは少なくとも過去4年は問題ないかな。
kudzu007 :
11と12を使ってるけどノードのクローンは特に問題ない。
raresteakplease :
クローン作成は私の7年間のキャリアでずっと機能しています。
future_lard :
ここ10年クローン作成に問題があった記憶がない。私は「つねに」クローンを作成している。
kbaslerony :
Nuke6からずっとクローンを使っています。頻繁ではなく、ときどき、ですが。何ら問題なく使えますよ。クローンノードの危険性については、その間ずっと耳にしてきましたが、クローンノードによって引き起こされる問題というのを誰ひとりとして再現性をもって実演できませんでした。なので私は、これは極めて稀に起きる問題が大げさにされた都市伝説か、あるいは最初から間違いだったという結論に至りました。
一方で、安全ではないという声もあります。
mm_vfx :
9000ノードのスクリプトを失う必要があるのは1回だけさ。ファック、クローンども。
Majestic_Tea_9712 :
クローンは悪
StilettoMafiosa :
Nuke13ではクローンノードによる破損が再導入されたっぽい。Nuke13はバグが多いので、流行りに乗るのが早すぎたのかも。
不穏な声もありつつも、クローンノードは問題ない、という意見が多数です。
質問者のコンラッド・オルソン氏は、クローンを使うようになるのでしょうか?
2022年2月、コンポジティングスーパーバイザー/シニアNukeコンポジターのトール・アンドレアセン氏は「Nukeのメニューから標準のクローン機能を消し、代わりにエクスプレッションを使用したノード複製機能を追加する」というPythonをNukepediaで公開しました。
Nukepedia. fxT_cloneViaExpressions
https://www.nukepedia.com/python/nodegraph/fxt_cloneviaexpressions
ツール内の説明文において、クローンを使用する危険性は依然として残っていると述べています。
クローンはNukeの優れた機能ですが、クローンに伴って発生するランダムなバグにより、Nukeスクリプトが破損する可能性があります。
The Foundry社は、このバグはもう存在しないと主張しています。しかしながら、複数のアーティストがそうではないと報告しています。
このバグはある時点で除去されたものの、Nukeの一部のバージョンで誤って再び導入された可能性があります。
そのため、バグがまだ存在するのか、それともNukeの将来のバージョンで意図せず再発する可能性があるのかが分からないため、クローンを使用するのは危険です。
このスクリプトは、エクスプレッションに置き換えることにより、クローンを再び安全に使用できるようにします。
このスクリプトを使用すると、すべてのノブにエクスプレッションをクローンのように設定できます。唯一の違いはクローンの双方向機能の代わりに親と子のノードがあることですが、Nukeスクリプトがクローンのためにある時点でランダムに破損することはありません。
2022年5月13日、Youtubeの動画チャンネル、VFXforFilmmakers.comは「Nukeのクローンはファイルを破壊するため絶対に使うべきではない、かわりにエクスプレッションリンクを使うべきだ」と主張するショート動画を公開しました。
Nuke Tips #15 - Cloning In Nuke
https://youtube.com/shorts/xs0xE9D01Es?si=f1tlJI-605PqO77o
概要欄には "Never use Cloning." のひと言が記載されました。
2022年11月、掲示板Redditで「スクリプトが頻繁に破損する」という相談が上がります。
Reddit. Scrips frequently corrupting
https://www.reddit.com/r/NukeVFX/comments/yja7ez/scrips_frequently_corrupting/
アドバイスをする人々の中に、あのコンラッドの姿もありました。
コンラッド・オルソン:
スクリプトにクローンノードが含まれていますか? 以前はクローンがスクリプト破損の通常の原因でした。 そして私はまだ彼らを信用していません。
コンラッドは、結局クローンを疑っていました。
もっとも、コンラッドのような人は少なくないのかもしれません。
mchmnd :
コンラッドのように、私も何年にもわたるトラウマとスクリプト破壊の後、もう二度とクローンを使用することはできません。
これはつい先日の出来事ですが、2023年4月、コンポジターの作田謙伸氏はNuke13でクローンを使ったスクリプトが壊れたことを教えてくれました。
去年の忙しい時期にNuke13でクローン使ってたスクリプトがぶっ壊れて(前のバージョンも全て)最悪な目にあった苦い思い出があるので、同じ値のノード使いたい時はリンクさせて使ってます…😢
— Kenshin Sakuta (@39vfx) April 26, 2023
ここまでが、私が聞いた、Nukeのクローンノードにまつわる話のすべてです。
いかがだったでしょうか・・・。
Nukeの都市伝説・・・。
信じるか信じないかは、あなた次第です。
- 関連記事
-
- 10分で分かるNUKE*4 (ブラー&デフォーカス編) (2024/05/26)
- 10分で分かるNUKE*3 (Rotoノード編) (2023/11/06)
- さまざまなグレイン・ワークフロー(Nuke) (2023/09/14)
- Nukeのノードのクローンは使ってはいけない!(という都市伝説?) (2023/05/11)
- NukeのTCL入門!さまざまな情報を取得して活用する方法 (2023/04/18)
- スクリーンクリーン: Nukeでグリーンバックを均一にするテクニック (2023/04/04)
- 10分で分かるNUKE*2 (2020/12/15)
- 10分で分かるNUKE (2020/12/01)
- NukeにおけるOCIOを使ったACESシーンリニアワークフロー (2019/05/08)
- NUKEのスピードを速くするためのTips集 (2016/12/19)
- Nuke Pythonを使ってノードの設定を一括変更する (2016/12/03)
- NUKEのエクスプレッション(Expression)の便利な使い方 (2016/10/18)
- NUKE初心者におすすめのショートカット (2016/10/11)
- NUKE入門! 画像サイズをマスターする10項目のルール (2016/07/15)
- NUKEのノードツリーを整理してワンランク上の合成作業を目指す (2015/11/17)