Replace Mesh Layer
ダウンロード
Replace Mesh Layer
バージョン
v1.0
概要
このスクリプトは選択したメッシュに対し、指定する別のメッシュの中身で入れ替えたり、インスタンスとして置き換えます。
注意
このスクリプトはキット形式になっていますので、MODO 901を起動し、lpkファイルをMODO上へとドラッグアンドドロップしてください。MODOが再起動され、キットはインストールされます。キットをインストールしたらシステムメニュー > フォーム編集を開き、MJG:メッシュレイヤーを置換を右クリックし、キーに割り付けでお好きなショートカットキーに割り当ててください。
ショートカットからこのキットを起動したら、置き換えたいメッシュを選択した上で、スクリプトを実行してください。
解説
仮モデルでシーンを組んだ後で、本番用のモデルへと置き換えたい場合、またシーン内に大量に配置されている大量のメッシュレイヤーをインスタンスで置き換えたい場合に、このスクリプトが有効です。
キットは二つで構成されており、一つはメッシュをメッシュで置き換えるスクリプト:もう一つはメッシュをインスタンスで置き換えるスクリプトです:
メッシュをメッシュで置き換える場合、メッシュレイヤーを一つの入れものと捉え、中身のジオメトリを置き換えることが実現できますが、インスタンスで置き換える場合には、アイテム自体を新規で作成し、そのトランスフォームのチャンネルを転移させる必要が出てきます。このスクリプトではMODO 901から実装されたチャンネルのコピー・ペースト機能を利用して、これを実現しています。ただし、メッシュレイヤーとインスタンスは根本的にアイテムの種類が異なるため、現在情報として引き継ぐものはトランスフォームチャンネルのみとしています。さらに多くの情報を引き継ぎたい場合には、その分をスクリプトへと足すようにしてください。
二つのスクリプトではどちらも実際の処理の前に、置き換え元もしくはインスタンス元となるアイテムをポップアップから選択するようにしていますが、この選択処理を行う際には必ずtry/exceptで例外処理を行うようにしてください。これを外してしまうと、この選択用インターフェイスをキャンセルした時点でエラーが発生してしまいますのでご注意ください。
87:try :
88:
89: lx.eval('user.value mjg_dest_item')
90: dest_item = lx.eval( 'user.value mjg_dest_item ?' )
91:
92:except :
93:
94: sys.exit()