-
-
Notifications
You must be signed in to change notification settings - Fork 1
Plugin Camera Position Setter JP
Camera Position Setter は、3D ビューポートに数値制御パネルを与えるプラグインです。マウスで molecule を少しずつ動かして「それらしい角度」を探す代わりに、カメラ位置・注視点・上方向ベクトルを直接入力できます。標準的な結晶軸方向へワンクリックで移動することも、その結果に名前を付けて保存し、別のセッションから呼び出すこともできます。
| リポジトリ | moleditpy_camera_position_setter |
| 作者 | HiroYokoyama |
| 対応 OS | Windows, macOS, Linux, WSL |
| 対応 Python | >=3.9, <3.15 |
| メニュー位置 | View ▸ Camera Position Setter... |
| 追加依存関係 | なし(MoleditPy 本体の PyVista, PyQt6, NumPy のみ) |
プラグイン全体のカタログは Official Plugins を参照してください。
見回すだけならマウス操作で十分ですが、「先週と全く同じ角度で表示して」という要求には応えられません。数値が必要になるのは次の 3 つの場面です。
- 再現性 — 論文用の図を、数か月後に同じ角度で描き直す。
- 比較 — 2 つの配座異性体、互変異性体、あるいは最適化前後の構造を、完全に同一の視点から撮影する。
- 結晶学的な慣例 — 軸を「ほぼ」見下ろすのではなく、真っ直ぐ見下ろす。
ウィンドウはモードレスです。開いたままエディタでの作業を続けられます。
Standard Views には 9 つのワンクリックボタンがあります。
| ボタン | 視点 |
|---|---|
| +X (Right) / -X (Left) | X 軸方向、Z が上 |
| +Y (Back) / -Y (Front) | Y 軸方向、Z が上 |
| +Z (Top) / -Z (Bottom) | Z 軸を見下ろす、Y が上 |
| Iso (+X+Y+Z) / Iso (+X-Y+Z) | 手前側 2 つの等角投影コーナー、Z が上 |
| Fit to Screen | MoleditPy 本体のリセット&フィット |
いずれも現在の注視点と距離を保持し、見る方向だけを変更します。そのため +X → +Y → +Z と続けてクリックすると、原点に戻ることなく、今見ている対象の周りを回り込みます。
| ボタン | 中心にするもの |
|---|---|
| Center on Molecule | 3D 座標を持つ全原子の重心 |
| Center on Selected Atoms | 3D ビューポートで選択した原子の重心 |
どちらも注視点とカメラを同じベクトルだけ移動させるため、視線方向と距離は保たれます。回転や拡大縮小を伴わずに、分子が画面中央へスライドします。
Center on Selected Atoms は 3D ビューポートの選択を読みます — 3D ビュー上でクリックした原子で、MoleditPy が赤い番号ラベルで示すものです。これは MoleditPy 自身の 3D ダイアログ群が事前選択として読み取るものと同一です。
2D スケッチ側の選択は意図的に使いません。2D キャンバス上での選択は 3D カメラの向き先とは無関係であり、両者を混ぜるとビューポートに見えていない原子の方へ注視点が引っ張られてしまうためです。
v1.2.0 より前は 2D 選択のみを読んでいたため、3D ビューで原子を選択している場合には何も起こりませんでした。ボタンが効かないように見える場合は、v1.2.0 以降かどうかを確認してください。
| 項目 | 意味 |
|---|---|
| Camera Position | カメラの位置(Å) |
| Focal Point (Target) | カメラが見ている点 |
| View-Up Vector | 画面上でどちらを上とするか |
| Dist | カメラから注視点までの距離 |
| FOV | 視野角(度、透視投影時のみ) |
| Projection | Perspective(透視)または Parallel(平行・正射) |
Dist は双方向に連動する派生フィールドです。位置を編集すれば更新され、逆に Dist を編集すると角度を保ったまま視線方向に沿ってカメラが移動します。パーセント指定ではなく厳密な距離を指定したいときのズーム操作になります。
**Parallel(正射投影)**は遠近による収束を完全になくすため、平行な結合は画面上でも平行のままです。構造図では通常こちらが適切で、この場合 FOV は無効になります。
5°, 15°, 45°, 90° から選んだ刻みでの厳密な回転です。
| コントロール | 回転軸 |
|---|---|
| Yaw ± | 上方向ベクトル周り |
| Pitch ± | 画面水平軸周り |
| Roll ± | 視線方向周り |
| Zoom In / Out | 現在距離の ±10% |
刻みが厳密なので、90° の Yaw を 4 回行えば誤差なく元の位置に戻ります。分子を 4 方向から撮影する際にずれが生じません。
Save Current View... はカメラ状態一式に名前を付けて保存します。保存ダイアログには独立した 2 つのスコープがあり、どちらか一方でも両方でもチェックできます。
| スコープ | 保存先 | 有効範囲 |
|---|---|---|
| Global Presets | MoleditPy の設定 | 全セッション・全ファイル |
| Current Project |
.pmeprj プロジェクトファイル |
そのプロジェクトのみ(ファイルと共に移動) |
両方に保存した視点はリスト上で [Global+Project] と表示されます。どこでも使いたい常用の角度は Global、「この図を作ったときの角度」は対象の構造と一緒に保存する価値があるので Project を使うとよいでしょう。
Show Viewpoints フィルタでスコープを絞り込め、下のボタンは選択項目に作用します。Apply Selected(ダブルクリックでも可)、現在のカメラで上書きする Overwrite Selected、Rename...、Delete、そして Clear Filtered です。Clear Filtered はフィルタが現在表示しているものだけを削除するため、グローバル設定に触れずにプロジェクトのブックマークだけを一括削除できます。
プロジェクトのブックマークは File ▸ New で消去され、プロジェクトを開くと再読み込みされます。
Copy (JSON) はカメラ状態を読みやすい JSON でクリップボードに置きます。
{
"position": [0.0, -15.0, 0.0],
"focal_point": [0.0, 0.0, 0.0],
"view_up": [0.0, 0.0, 1.0],
"view_angle": 30.0,
"parallel": false
}Paste はこれを読み戻せるほか、PyVista 自身の [position, focal_point, view_up] 形式のリストも受け付けます。スクリプトで出力した plotter.camera_position をそのまま貼り付けられ、逆に気に入った視点をスクリプトへ持ち込むこともできます。
下部には 2 つのスイッチがあります。
- Live Preview — スピンボックスの編集に合わせてビューポートが追従します。オフにすれば、数値で視点を組み立ててから Apply to View で一度に適用できます。
- Smooth Transition — 新しい視点へ切り替える際、瞬間的に切り替えるのではなく短いコサイン補間アニメーションで移動します。聴衆が向きを見失わないため、プレゼンテーションで有用です。なお Nudge とズームは設定にかかわらず常に即座に適用され、連続クリックの反応性を保ちます。
Read from View は現在のビューポートのカメラを各入力欄に読み込みます。マウスで見つけた角度を微調整する際の出発点になります。
- Official Plugins — プラグイン全体のカタログ
- Using Plugins — プラグインのインストール・管理・信頼設定
- Auto Rotator — 固定視点ではなく連続的な回転表示
- Rotation Giffer — 回転を GIF アニメーションとして記録
このページは Camera Position Setter v1.2.0 について、2026-08-26 に記述されたものです。最新バージョンは REGISTRY/plugins.json を参照してください。