Coder Social home page Coder Social logo

nntools_maya's People

Contributors

ichiyonnana avatar

Stargazers

 avatar  avatar

Watchers

 avatar

nntools_maya's Issues

ラティスの独立オブジェクト化とインポートエクスポート

ラティスをデフォーム先が無い状態の単独オブジェクトとしてシーンに保持したい。SI のラティスオブジェクトみたいな感じ。
プリミティブ見たいな一般的なノードにカスタムアトリビュート追加してインポートエクスポートや複製が出来るようにしたい。

裏返ってるシェルの optimize/unfold

表になろうとして崩れるので一回表にして処理した後裏に戻す。
選択UVをシェル選択に変換、多数決で裏なら反転、選択UVのみ optimize/unfold 、また反転。
位置ずれないように 2 回の反転のピボットは同一に。

プロジェクション・レイアウト関連の機能追加

とりあえず以下の2機能
・選択した複数シェルをその複数シェルが存在するバウンディングボックス内でレイアウト (スケール・回転は無し)
・選択シェルをプロジェクションしてサイズをもとのシェルのバウンディングボックスに収めるようにスケールする。複数選択時は現在のシェル分けごとにそれぞれプロジェクション処理

エッジの懸垂線アライン

nnsimplify みたいな使い勝手で指定エッジ列をカテナリー曲線で整列する。
パラメーターは一つにしたい

アトリビュートのみのミラー

法線・頂点カラー・UV等のコンポーネントの値のみをミラーする機能。
頂点オーダー変えずにカジュアルにミラーしたいシーンがよくある。

選択コンポーネントのみを対象とする
+/- 方向はユーザー指定
法線、頂点カラー、UV、XYZポジション(優先実装はローカル)
対向頂点特定は位置 or トポロジー (UV は優先度低)
トポロジーは隣接頂点数等で頂点をベクトル化してベクトルの類似度マッチ
基本は 100% マッチ、オプションでマッチ率下げる
類似度は正規化して内積取るだけで良い
取得はAPI、Set は出来れば cmds。 重ければ API。Undo は snapshot でいい

ボーダーエッジ選択時の setTexcel 対応

ボーダーエッジが選択されている場合は他の選択コンポーネントで所属シェルの多数決をして多い方のシェルのUVが選択されている物として処理する。

接続のない origShape の削除

コードはあるので nnmisc かどこかへ
NNMirror にシーン内全削除 or 選択 Transform 配下削除するボタン付けても (duplicate/extract で出来がちなので)

選択コンポーネント種による処理

エッジ選択時は頂点に変換する。
UV選択時は頂点フェースに変換する。
複数オブジェクトのコンポーネント選択時はオブジェクト毎に処理する。

UV ボーダーの自動直交化

現状ただの矩形化が RectiLinearize になってる。
凹 とか 凸 みたいな UV シェルを自動で直線化する。

UI 整理

他の issue 片付いたら一回整える

独自ヒストリー削除

ヒストリー削除を独自のスクリプトに差し替える。 2022 以降ボーダーウェイトが壊れがち。余裕あれば新点のウェイトも自前で計算する。

スキンクラスターが無ければ通常通りの処理
スキンクラスターがある場合
Orig とトポロジーが同じなら通常通り処理
トポロジーが違う場合
ヒストリー削除前に一時ファイル (or オンメモリ) にウェイトエクスポート
ヒストリー削除
メッシュのボーダーとなっている頂点を調べる
xml 直接読んで nearest でウェイト上書きする
最初に同じインデックスの頂点調べる
位置が 1.0-e7 くらいならそのまま上書き
一致しなければ全頂点eachだけど極近い頂点見つけた時点で切り上げる

範囲でグラデーション

ソフト選択状態で頂点選択してスライダーやボタン操作したら現在の値とソフト選択の強度でブレンドして欲しい。
スライダーはスライダー開始時の値キャッシュして、動かす度に重複ブレンドしないようにして。

Equalize のパラメーターの使い方変更

Equalize パラメーターが n と n+1 の比率になってるけど最初と最後のエッジの比率にする
計算式は変えずに現在スライダーで取っている比率をエッジ数 n を元に log(n, ratio) みたいなので再計算する

ウェイトコピーの自作

セット利用して同一オブジェクト内でのコピーしたい。結合済みスカートの表→裏とか。
単純なオブジェクトからオブジェクトも出来るようにする。
正規表現によるジョイント名読み替え出来るように。

コメント付きシーンバックアップ

ダイアログでテキスト入力してフェーズ毎のバックアップ ("20240202_1500_UV展開前]hoge.ma" みたいなの) を作る。
書き出し先は scenes で良い

形状維持した collapse とデベベル

エッジ collapse 後の頂点位置を、閉じるエッジの左右のエッジの延長線の交点位置 (やその中間) にしたい。
collapse と頂点の移動は別処理にして頂点移動の処理流用してデベベルも作る

ミラー時の**処理

・ミラー境界に近い頂点座標の微細値を 0 にする
・完全に重なった頂点の事前マージ
・ハードエッジの保存・復帰

STUそれぞれに変更ボタン

分割数変更時にSTU単独で変更したい。あるいは入力時に即時適応 (危ないので大きい値ははじく)

独自のレイヤーパネル

Maya 標準のレイヤーパネルが複数選択・複数操作に向かないのでもっとクリック数が少ないやつ欲しい。

微細値設定する手段

スライダーの左に数値エディットボックス付ける。直接入力でボタン押下と同じ振る舞い、スライダーにも反映。スポイト時はスライダーと共に値更新。

テスト作成

最低限 全 .py の import でエラーが出ないか。
discover 用に init.py は全部作成する

頂点版エッジフロー

頂点選択して実行したら隣接エッジの成す角が均一になるように頂点移動させたい。
距離均等にするかはオプション、基本法線方向の直線上のどこかに再配置で良い。

半面削除

カットモードはあるけど片側を自動削除する機能欲しい。
自動削除せず選択だけでも良いかも

インフルエンスを明示的に指定しないウェイトエディター

J1 - J2 - J3 という階層があったとき、バインドポーズと比較して J2 だけが変形していたら基本的に J2 とその親の J1 間でのウェイト調整なのでインフルエンス指定せず [親を強くする] [子を強くする] の2操作で調整できるはず。
inViewMessage とかでウェイトがどんな数値になったのかは表示する。

エッジの始点終点の方向そろえる

選択エッジの 始点-終点 で作成したベクトルと生成カーブの始点-終点から作成したベクトルで類似度取って逆向きならカーブをリバースする。現状向きがバラバラで Equalize しづらい。

nnutil.ui のコンポーネント追加

rowColumnLayout 追加

リストの追加

  • UI作成
  • アイテム追加・削除・置換
  • 選択アイテムのインデックス取得
  • 選択の追加・クリア

頂点座標の部分インポート

setPos, getPos がオブジェクト全体のみなので頂点選択で部分的に使えたい。
同一頂点オーダーにしか使えないのはそのままで良い。

選択 UV シェルから Photoshop のシェープ・レイヤー作成

Maya 側の選択シェルで開いている Photoshop でシェープ・塗りつぶしレイヤー・選択範囲等を作成する。
シェルからシェープレイヤー (マスクとか)
シェルからアイランド塗り分け (IDマップとか)

一時ファイルで jsx 生成して実行中の Photoshop に実行させる。

独自 Gather

標準の Gather 微妙に重い。あと結果は一意なのでわざわざ UV エディタ開きたくない。
コア機能作成済みなので nnuvtk に統合する。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.