Poly to Poly | |||||
Main/History |
GraphiX |
LScript |
Plugin |
Knowledge |
Blog |
本末転倒 LScript。LightwaveのLScriptを配布しています。 ご利用は Lightwave 7.5/8.5/9.x向け、Lightwave 7.5c/dのLScript 2.6では未テスト。 (6.5B:2.1、7.0B:2.4、7.5:2.5/2.51、7.5B-D:2.6、8.x:2.7、9.0:2.8、9.2:2.9、9.3:2.11)。 LWが日本語(2Byte文字コメント)に対応出来ず、*.lsのままではプラグイン追加は出来ないかもしれません。 その場合、コメントを削除するか、LSコンパイラでLSC化すればプラグイン追加出来るようになります。 ご意見ご感想ご質問ご要望、うごかねぇぞヽ(;`д´)ノバーヤなどなど、掲示板にでも書き込んで下さい(´ω`) ●Include/Exclude Light/Item0.114 (LScript2.5〜) ライトの照射対象の有効無効を複数選択一括処理で切り替えるもの。 [Include]で有効、[Exclude]で無効。 [Select All]でリストボックス内を全選択、[Deselect All]で全選択解除。 通常のリストボックス同様にCtrl/Shift+クリックでの選択増減も可能です。 任意数のMesh/Nullを選択して実行すると、シーン内のLightがリストされたウィンドウ(左側)が出ます。 選択したアイテムから対象にしたライトがInc/Excされます。 任意数のLightを選択して実行すると、[Mesh][Null]がリストされたウィンドウ(右側)が出ます。 リスト内で[Mesh]を選ぶと全てのMeshオブジェクトが、[Null]を選ぶと全てのNullが、両方なら両方が対象になります。 選択したライトから対象にしたアイテム種がInc/Excされます。 アイテムからライトを除外する、ライトからアイテムを除外する、そういった観点から使い分けるとよさげです。 数百に及びうる個別のMesh/Nullの列挙は操作上のメリットが感じられないのであえてしてません。 でも改良の余地ありまくり('A`) (100712)バグ取り。 ●InfoWpos 選択アイテムのワールド座標をパネルに表示するだけ。 実行時はレイアウトで一番目に選択されてたアイテムが表示されています。 複数選択時はリストボックス内から選択すると座標表示部が適宜変わります。 (071006)string()の使い方がナニだったのを修正。 ○遺産 DLLプラグイン版に置き換えたもの ●TargetingItem0.33 (LScript2.5〜) 複数選択一括処理でTargetItemとH/PControllerをPoint at Targetに変更します。 ターゲットを外す際場合は、H/PControllerがKeyFramesになります。 選択用リストがアイテムタイプ別になっているので、タイプとアイテムを選ぶ形になります。 アイテムを選択すると自動的にアイテムタイプが切り替わります。 スクリプト内の「 @define DEFAULT_TYPE 6 」を指定の値に変える事で、動作対象の初期選択を変更出来ます。 (071006)parse()のセパレータがスペースを含んでると、そのスペースのみがセパレータとして扱われ、名前のインスタンス()表記等に引っかかり不都合になっていたのをFIX。 ●Keying World Position0.335 (LScript2.5〜) 任意アイテムのWorld座標値を取得して、Local値として任意軸へキーを打つだけです。 Typeボタンがアクティブなアイテムを参照先として、XYZボタンのON/OFFで必要な軸のみにキーが打たれます。 (070919)LS2.11の判別対策 ●Grid Spread0.101 (LScript2.5〜) アイテムを指定平面上に格子状に並べるもの。 一番目のアイテムの座標を原点として指定間隔に並べます。 [_ Num]は列に並ぶ数です。 選択数と同じ場合は一列に並ぶ事になります。 列の伸びる方向は間隔が+なら+方向、−なら−方向になります。 便箋に文を書く要領で1st[_]が横方向、next[_]が縦方向と思って下さい。 31個選択し、[_ Num]を6にした場合、一列6個で5行、6行目に端数の1個が並びます。 原点 ------------ X+ |01 02 03 04 05 06 |07 08 09 10 11 12 Z+ (080427)調整 ●Plugins Enable/Disable0.1 (LScript2.9〜) 選択中のアイテムに付いているDisplacement/MotionプラグインをON/OFFする為の物。 処理内容の選択の幅の為にlsファイルが大量に増えるのが嫌なので纏めただけ。 パネルでDeformかMotionか両方か、DisableかEnableを指定します。 DeformではNULLを無視するようにしてます(54行目をコメントアウトすればNULLも対象に含むようになります)。 (071106)初出 個別のバラ版。 ●MotionPlugin Enable (LScript2.9〜) ●MotionPlugin Disable (LScript2.9〜) ●DeformPlugin Enable (LScript2.9〜) ●DeformPlugin Disable (LScript2.9〜) DeformではNULLを無視するようにしてます(22行目をコメントアウトすればNULLも対象に含むようになります)。 ●Add_Nulls0.203 (LScript2.5〜) Nullをまとめて作ったり(スライダ操作では999個迄)、プロパティを事前指定して作る為のもの。 [PreFix][PostFix]は作成する数に応じた数値を名称の前後に入れたい場合に指定します。 接続記号にアンダーバー、スペース、無しの三通りが選べます。 [n]の場合、無加工の数を付与します。 [nn]の場合、最大二桁を維持する形で隙間を0で埋めます。 100個なら01〜99と100になります。 [nnn]の場合、最大三桁を維持する形で隙間を0で埋めます。 100個なら001〜099と100になります。 プロパティ部はプロパティと同じです。 LW7.5では「AlphaChannel」がニ値選択に変わります。 LW9.3では「UnseenByRadiosity」が加わります。 [Vis]は表示スタイルです。 HiddenとVerticle以外は意味が無いので選択肢にしてません。 [Col]は表示色です。[LW Setting]の場合はLW(シーンエディタ)でNull色に指定している色が使われます。 13行目の「@define INIT_ALPHA 2」を1〜3にする事でAlphaの初期値を変更出来ます(LW8以降のみ)。 ●Add_Bones0.101 (LScript2.5〜) Boneをまとめて作ったり(スライダ操作では999個迄)、プロパティの一部を事前指定して作る為のもの。 選択中のアイテムが複数だった場合、それぞれを根にして同名のBoneが作成されます。 名称指定部とItemCol部はAdd_Nullsと同じなので省略。 Boneプロパティもそのまま。 選択中のアイテムがMesh/Nullだった場合は第一Boneは原点から作成されます。 Boneだった場合はそのBoneの(RestLengthによる)先端を原点として作成されます。 基本的にはAddChildBone()で足してるだけ(;・з・) ●HPB Controller Type Set0.23 (LScript2.5〜) HPB Controllを複数選択一括処理で変更します。 LW8.5以前とLW9.xでは選択肢が異なります。 [forHPB]のボタンで一括してHPBの各項を変更出来ます。 [---]は変更無しと同じで、選択されていても何もしません。 実行後の選択状態を維持します。 LW8/9はモーションプロパティから複数対象を一括変更出来るのでボタン派以外には不要かと(;´〜`) ●SetRestLengthByChild0.1 (LScript2.5〜) 選択しているボーン各々の最初の子アイテムのZ値を参照し、ボーン各々のRestLengthに設定します。 それだけ(w (071006)選択順を保持するようにした。 ●SetRestLength0.1 (LScript2.5〜) 選択しているボーンのRestLengthを一括して設定します。 入力パネルには最初に選択したボーンのRestLengthが初期値として入ってます。 それだけ(;・з・) (071010)パネルの調整。 ●RecordPivotRotate+ (LScript2.5〜) 中心点回転記録を複数選択一括処理します。 PivotRotateが<0,0,0>以外の時は何もしません。 BT_RecordPivotRotateを複数実行させてるわけでも、素のRecPivotRotateを素直に実行させてるわけでも無いので多少癖があります。 LS2.5ではAutoKey(自動キー)に触れないので、事前にAutoKey ONにしてから実行しないと不幸になります。 LS2.6以降では適宜切り替えて処理するのでON/OFFどっちでもいいです。 (071009)AutoKey対策。 ●ReturnPivotRotate0.22 (LScript2.5〜) 7.5以降用(7Bでは無用)。 複数選択一括処理でPivotRotateをRotateに還元します。 PivotRotateが0以外の状態でRotateを変更し、再度Recordすると不幸な結末になるので、それを回避する為に一度PivotRotateを還元しようという物。 LS2.5の場合、HPBがロックがされている状態では正常動作しません。 適宜ロック解除をする必要があります。 また、AutoKey(自動キー)はONの状態である必要があります。 LS2.6以降ではHPBロック状態やAutoKeyを適宜変更して動作します。 Frame 0以外の時間で実行すると不幸になるので、強制的にFrame 0に移動してから実行します。 PivotRotateToolが選択された状態でPivotRotateを<0,0,0>にしないと、値はRotateに正しく還元されない。 Toolが選択された状態でPivotRotate()で変更しても還元処理はされない。 唯一Reset()を使う事で解消出来るけど、Reset()は0クリアではなくRestRotationを読み出すっぽいので、0以外だと不幸になると思う。 さらにReset()はHPB Lock状態の影響を受けるから、それらがロックされてると正常動作しない。 LW8で同様な機能が追加されてるけど選択無視で全ボーンに適用される優れもの・・・(・x・)チネ さらに何故かXYZにも作用する優れもの・・・(・x・)チネ (071009)AutoKey OFFの場合、Rotate()/Reset()はキーに作用しない為に問題があった。Channelを直接弄るようにした。AutoKeyフラグを操作するようにした(2.6以降)。 アイテムの表示関係 (LScript2.4〜) ●Item Visibility Hide ●Item Visibility Bounding-Box ●Item Visibility Verticle ●Item Visibility Wireframe ●Item Visibility Front Wireframe ●Item Visibility Sokid ●Item Visibility Texture ●Item Visibility Textured WireFrame (要8.3(?)) アイテム自体の表示の切替え。 複数選択に対し一括処理します。 選択状態は保持します。 Bone/Light/Cameraに対してはHIDEで非表示、他は何を使っても表示になります。 ●We will Lock you0.325 (LScript2.5〜) ●We will Lock you0.435 (LScript2.6〜) 通常のItemLockと、数値入力欄横のHPB/XYZ/ScaleのLockを複数選択一括処理で出来ます。 LS2.51版の軸ロックはトグル動作しか出来ません。 ボタンで変更対象とした軸のLock/UnLockが切り替わります。 LW2.6版は軸のロック状態として最初に選択されたアイテムの設定状態が表示されます。 アイテムの現在状態に関わらず、変更指定した通りの状態になります。 2.6版はLW75dでの確認をしていません。 カメラ/ライトのScaleは無い事になってるので、軸ロックのScale設定処理をしません。 ●AxizLock Position (LScript2.5〜) ●AxizLock Rotation (LScript2.5〜) ●AxizLock Scale (LScript2.5〜) LS2.5ではXYZ、HPB、Scaleのロック/アンロックをトグル切替えします。 LS2.6ではロックします。 複数選択に対し一括処理します。選択状態は保持します。 ●AxizUnLock Position (LScript2.6〜) ●AxizUnLock Rotation (LScript2.6〜) ●AxizUnLock Scale (LScript2.6〜) 複数選択に対しXYZ、HPB、Scaleのアンロックをします。 選択状態は保持します。 ●Item Active Deactive (LScript2.5〜) 複数選択に対しアイテムのアクティブ/非アクティブをトグル切替えします。 選択状態は保持します。 ●LockItems (LScript2.4〜) ●UnLockItems (LScript2.4〜) ●UnLockItems(LW9以降) (LScript2.8〜) 複数選択一括処理に対応させたアイテムロック/アンロック。 選択状態は保持します。 ●SubPatch Divide Level Set0.351 (LScript2.5〜) 表示&レンダンリングのレンダーレベルを変更します。 標準機能は数値入力なので、ボタンで指定するタイプにしただけです。 各0−6迄。 ●SubPatch分割数変更。数値決め打ち。 Disp0/Rend0 Disp1/Rend1 Disp2/Rend2 Disp3/Rend3 |