オブジェクトの中心を操作するアドオン

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー



前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 .6 | 投稿日時 2014/11/2 2:57
もヂャ  新米   投稿数: 16
失礼致します。
Blenderを 始めて まだ日の浅い新参者です。
回転やスケールを含めた中心を別のオブジェクトに移植する機能が欲しい。
数字をスクリプトで移植したら行けるんじゃないの? という軽い気持から、
Pythonも Blenderも まったく理解できていないまま、
まだ3Dで何も作っていないのに、いきなりアドオンから作り始め、
やめておけば良かったと何度も後悔しつつ 毎日コツコツ作っていた
アドオンが最近ようやく使えそうな感じになってきましたので、
この場をお借りしまして 人目にさらしに参りました。

なにぶん浅い知識で作りましたので、おかしな処理をしている所もあるかと思います。
不具合等ありましたら申し訳ないです。

このアドオンは、バージョン2.72で作ってあり、登録すると3Dビューのツールタブに入ります。

ボタン操作で対象となるオブジェクトの中心に選択しているオブジェクトをくっ付けたり
対象の中心を自分にコピーしたりできます。(「一致」が吸着「取得」がコピーです)
対象は、「アクティブ」と「自分の親」から選べます。

あと、親があるものを扱った時に、
階層を通常のグローバル(親が動くと位置がずれるので、微妙にローカルっぽいですが)と、
親からの相対座標(ローカル)に設定するかどうかを選べます。
他にも、中心を操作するため、あったら便利かなと思った機能が加えてあります。

一応ざっと使ってみた感じでは、止まったりせずに動いていますが、
バグが残ってるんだろうな。と思いながら気が付いた所をチマチマ
修正しつつ使って行っております。

そんな頼りない感じですが、よろしければどうぞ。

・・・ありゃ。
うまく貼り付けられない。

>zipで固める
了解です。
ありがとうございます。

<追記>
いくつか機能を追加した更新版を貼り付けておきます。
今のところ、こちらで使っている分には問題なく動いていますが、
想定していない手順とかで見つかるバグが、まだありそうです。
教えてもらえれば、また修正します。
CenterTool ver 1.3.0
:download:CenterTool_130.zip

zipの中に 機能説明のための Readmeが入っています。







投票数:1 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014/11/2 9:35
yamyam  管理人 居住地: そうや、うちはおおさかやー  投稿数: 4403
初めまして。まだスクリプト自体は拝見していないのですが、
引用:
うまく貼り付けられない。
すいません、お手数ですが.zipで固めて上げてください。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014/12/4 13:41
完全無欠猫  長老 居住地: 兵庫  投稿数: 750
すいません、スクリプトを拝見せずに推測で書いてます。
3D CursorにOriginを設定と同じような機能を実現しようとしているのでしょうか?
投票数:2 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014/12/4 17:56
ekakiya  半人前 居住地: 東京  投稿数: 38
座標変換系のツールがまとまっていて、使い易いですね!
Children to Global / Localも、だいぶ助かります。
僕は Children=Globalで運用しつつ、シーン整理の時に手動で Children to Localする使い方になりそうです。


英語でのツール名称で、Originという単語の使い方が 一部Blenderと違うように思いました。
Blenderで Originというとメッシュデータの原点位置で、オブジェクトの位置,回転,サイズ情報はTransformと
呼んでいる感じです。

Match Active_Center は Copy Active_Transform
Get Active_Origin は Copy Active_Origin

Apply Origin は Clear Origin and Keep Transformation
Clear Origin は Clear Origin

だと しっくり来るのですが…長すぎるかもしれません…。


それと、一点エラー終了を見つけたので ご報告させて頂きます。
Blenderではオブジェクトを複製する際、Alt+D (Duplicate Linked) を使用すると
メッシュ情報をインスタンスとして共有したオブジェクトが作れます。
オブジェクトCube1とCube2が、どちらもメッシュデータCubeを使用している状態になります。
この状態でGet Active_Originツールを使用するとエラーが出て止まるようです。
Originはメッシュデータに対して一意なので 動作の正解は無く、警告を出してツールを止めてしまっても
良いとは思うのですが、現状 意図せず止まっているようなので、ご報告します。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014/12/6 6:30
もヂャ  新米   投稿数: 16
>完全無欠猫さま
なんだか紛らわしくてごめんなさい。
えっと、主な機能は Origin の数値を別のオブジェクトに移し替えられる。というものです。
目指しているのは、Origin の位置調整を自在に制御するための機能を きゅっとまとめたツールです。

今想定している使い道として、例えば、
オブジェクトの Originをエンプティに移し替えて、オブジェクトを編集した後、ずれたOriginをエンプティから移植しなおして再生する。とか
ちがう オブジェクトのOriginを 回転や位置だけ別のオブジェクトに移植する。といった事ができるようにしてあります。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014/12/6 6:50
もヂャ  新米   投稿数: 16
>ekakiyaさま
わぁ。メッシュ情報を共有したオブジェクトの使用を想定してなかった!
やっぱり、自分で使う範囲だけだとテストが かたよってダメですね。
ちょっと 今遠出をしていて、ちゃんと修正できないんですが、帰ったら修正に取り掛かります。
ツール的に吸収できるか、エラーで弾くか、修正しつつ決めようと思います。
エラーの報告。ありがとうございます。

英語での名称は、すごく適当に書いちゃってるので、
いまひとつピンと来ない名前が付けてあると思います。
こっちがいい。とか、しっくりくるものを教えて頂ければ差し替えます。
ただ、ボタンの上に表示する都合上、あまり長いと場所を取りすぎて
はみ出てしまうので、できるだけコンパクトな表記だとうれしいです。

Children to Global / Local は、親子関係にあるオブジェクトの中心を
変更した時、妙な位置へ移動する(Globalがずれている)場合があったため、
修正のため加えた機能なんですが、なんだか いい仕事をしているようでよかったです。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014/12/10 13:54
もヂャ  新米   投稿数: 16
取り急ぎ、エラーを修正して データを更新しました。
急いで触ったので ちょっと不安ですが、さっと試した感じ 大丈夫そうです。
( バグが残っていたらごめんなさい )

エラーの原因ですが、スクリプトの中で 原点を初期化する処理を
Object > Apply の 機能を使って行っているのですが、
そもそも Blenderでは メッシュを共有している物に対して
この機能を使えない(2.72での確認)ようになっていました。
( Applyを利用している このツールの「フリーズ」も実行できません )

スクリプトで回避方法を考えたのですが、
この機能を使う以外で、回転やスケールを初期化する方法が解らないため
共有しているものは Getの処理をスキップする。という対処になっています。

修正の過程で見つけたバグ
1 ローカライズのインターフェイス チェックボックスに
  表記の切り替えが反応していなかったので修正。
2 変換をローカルに設定して「マッチ」を行うと
  正しい結果が得られなかったので修正。
3 編集モードで「選択位置に 原点を移動」してからアンドゥすると
  戻る位置がおかしい(編集モードを抜けてからなら正しく戻れる)
  これは修正方法が解らなかったので保留。
としました。


英語での ボタン表記変更についてですが、

まず、Copy〜 という変更要望がありましたが、ローカル変換で実行した場合、
純粋に数値をコピーするという結果にならないため、現状維持としました。

Center > Transform への変更ですが、
よく考えると、どちらもOriginな気がするものの、同じにすると紛らわしいし
Originのツールが少し上にある手前、差別化しやすいよう CenterToolと
名前を付けたので、Centerという表記を残す意味で これも現状維持としました。

Apply Origin の表記ですが、
Object にある Clearと Apply の機能を そのまま移動させて来ているため
英語名は、Blenderに合わせてこのままにします。

結果的に、要望には添えませんでしたが、
使う人がしっくりくる表記で使った方が、道具として使い勝手がよくなるでしょうから
class mes() の英語 表記部分を書き換えて利用される事をオススメします。
左が英語表記。右が日本語表記となっています。

私も「Apply」は、日本語表記なら 本来「適用」になるのですが、
使う時に しっくり来なかったので「フリーズ」と変えていますし。


以上です。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014/12/14 17:25
もヂャ  新米   投稿数: 16
いくつかの不具合を修正して、
新しく バウンディングボックスで 中心を移動する機能を加えました。
( 原点操作 > ボックス中心 )

この状態で、特に目立った バグが残っていなければ、
大きな変更を加えるのは、ひとまず このくらいにしておこうと思います。
( 変更するたびに 小さな不具合が あちこちに増えていっている気がしますし )

今の所、操作する物の種類によって、機能が使えたり使えなかったりしています。
色々な状況の組み合わせで総当りして行かないと、
全部の不具合は洗い出せないのですが、
おおむね 共有しているものとは相性が悪いようです。
( Blenderの原点を設定する機能が サポートしていなかったりして )

色々と細かく気になる部分はありますが、
あとは 使いながら チマチマ手を入れて行こうと思います。

エラーで停止するようなバグが残っていたら、また修正しに来ます。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2015/2/5 9:39
もヂャ  新米   投稿数: 16
最近、できる事が少し増えたので、
いろいろと機能を追加した最新版を貼り付けに来ました。
以前のバージョンで隠れていた不具合もいくつか修正してあります。

もしかすると、新しい機能の追加で、
新たに生まれた不具合が隠れているかもしれません。
一応、しばらく使いながら様子を見ていましたが 今の所問題なさそうです。
投票数:0 平均点:0.00

  条件検索へ


ログイン

ユーザ名:

パスワード:



パスワード紛失

クイックリンク

2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)

●ニュース(英文)
BlenderNation

●Blenderコミュニティ
blenderartists.org

●Blender Q&A
- Blender Stack Exchange

●テストビルド
Buildbot(自動生成)


●開発関連
公式開発サイト
Blender開発blog
Blender Wiki