PR

OpenVSPにおける胴体のモデリング

OpenVSPで胴体のモデリングをする方法について、公式のチュートリアル動画を引用しながら説明する

スポンサーリンク

はじめに

OpenVSP ground schoolでは、胴体のモデリングに関するチュートリアル動画が多数公開されている

この記事では、胴体のモデリングに関する動画を項目ごとに整理し、それらを引用しながら胴体のモデリングのやり方について説明する

それではいってみよう

モデリングの流れ

OpenVSPの胴体のモデリングは、以下の手順で行う

モデリングの基本手順
  1. 背景の設定
    • 参考となる図面やスケッチを準備する
    • 背景画像を設定し、追加したFuselageと位置やスケールを揃える
  2. 断面の作成・編集
    • 必要に応じて断面を追加し、断面の位置、高さ、幅、傾きを設定する
    • 断面の形状を設定する
  3. スキニングの調整
    • 断面間をつなぐ特徴線の形状を設定する
  4. 端面の処理
    • 機首と胴体後端の閉じ方を設定する
  5. 仕上げ
    • 2~3を納得いくまで無限に繰り返す

モデリングの流れについて説明している動画は以下の3つ

  • Fuselage: Introduction
  • Basic Modeling: Shaping the Fuselage
  • Basic Modeling: Creating the Fuselage

それぞれの動画とその要点を以下に示す

「Basic Modeling: Creating the Fuselage」が一番詳しくてわかりやすいのでおすすめ

Fuselage: Introduction
  • 胴体コンポーネントはVSPの基本要素のひとつ
    • 特に「全長(nose~tail)」が分かっている場合に便利。
    • 三面図を使ったモデリングがやりやすい
      • 三面図には機体の全長が載っていることが多い。
      • 胴体の全長を入力し、断面を前後に調整することで形を合わせられる。
  • 断面位置は全長に対する割合で決まる
    • 各断面は全長に対する割合で配置する。
    • 全長を変えると、断面の位置も自動的にスケールされる。
    • Monotonic設定(デフォルト)
      • 断面を前後に動かすとき、隣接する断面を超えて動かすことはできない。
      • → 断面の順序が乱れない。
  • メッシュの細かさ(Tessellation)の調整
    • 「General」タブ → 胴体周りの細かさ(W Tessellation)を変更できる。
    • 「Cross Section」設定 → 断面間の細かさを増やせる。
  • 断面形状の種類を変更可能
    • Cross Section Controlから様々な断面形状に切り替えられる。
    • 断面のY・Z位置、回転角度も調整可能。
  • スキニング(Skinning)の制御
    • 単に断面位置や角度を変えるだけでなく、スキニングで全体の形状をなめらかに変形できる。
    • 「Hidden」表示にすると、胴体に走る特徴線が確認できる。
Basic Modeling: Shaping the Fuselage
  • 動画の流れ
    • 胴体の形をより正確に再現するために、断面(cross-section)を1つまたは2つ追加する。
    • パラメータを調整して、滑らかなモールドライン(外形線)を作る。
  • 断面の追加方法
    • すでに断面0と断面1が存在する。
    • 「断面0」を選んで「Insert」を押すと、「断面0」と同じパラメータの断面が隣接する断面との中間に挿入される
    • 新しく追加した断面はひとまず楕円(ellipse)に変更し、幅(width)と高さ(height)を設定する。
  • 断面の調整
    • 機体の機首(nose)を背景画像と揃える。
    • 断面の中心が背景画像の胴体の中心とずれている場合は、断面をZ方向にシフトして調整する。
    • 調整範囲が大きすぎる場合はパラメータのスライドバーのレンジを縮小して微調整する。
    • 例)断面1を「コックピット前の屈曲点」に合わせたい。
      • X方向に少し後方へ移動。
      • 高さを減らして位置を微調整。
      • 高さを約6.5フィートに設定し、Z方向を小さくして調整。
  • 背景画像の調整
    • 「Background」タブで背景画像のアスペクト比やスケールを調整できる。
      • 例)胴体モデルの細かい調整をしたい場合は、背景画像のスケールを3倍に拡大して作業する。
      • 胴体のモデルの拡大率や位置を再調整し、胴体モデルと背景画像を正しく一致させる。
      • 機首の先端などを基準点とし、それに合わせて再調整すると精度が高まる。
  • 外形線の微調整
    • 胴体全体を滑らかにするために、さらに断面を追加して遷移を自然にする。
    • スキニング(skinning)を調整して胴体モデルの形状を背景画像に合わせていく。
    • スキニング調整は難しく、時間がかかる
Basic Modeling: Creating the Fuselage
  • 胴体に使うコンポーネントの選択
    • 機体の胴体をモデリングするときは 「Fuselage」か「Stack」 を選べる。
    • Stack
      • 機体後方に向かって断面を追加する方式。
      • 各断面の間隔(ΔX)が分かっていれば設定できる。
      • 中間断面の間隔を変更すると、他の断面の間隔はそのままで、全長が伸びたり縮んだりする。
    • Fuselage
      • 全体の長さを最初に設定し、中間の断面を追加していく方式。
      • 今回は3面図で 機首から尾まで 124フィート9インチ と決まっているため、Fuselageを使用。
  • ビューの調整
    • View → Adjust View で、作業画面のズーム・回転・パンを細かく制御できる。
    • 背景図面とモデルを正確に重ねるために使用。
    • カスタムビューを保存可能
      • 作業中に元の視点へ即座に戻れる。
      • Shift + F1〜F4:現在のビューをカスタムビューに保存
      • F1~F4:保存したカスタムビューを復元
      • モデルファイルには保存されないため、一度ファイルを閉じると設定はリセットされる
      • 三面図を扱うときに特に便利
  • サーフェスの滑らかさ調整
    • 表面が「ギザギザ」に見えることがある。
      • 黒線 = 特徴線(形状を定義している滑らかな曲線)
      • 青線 = 実際の形状(特徴線から作成されたメッシュ)
    • U cross-sections を増やすと滑らかにできる。
      • どの程度細かくするかは用途次第。
      • 例)今回の形状では21程度が妥当。
  • 背景画像の見やすさ調整
    • サーフェス(青線のメッシュ)が邪魔で図面が見づらい場合:
    • Geometry → Surface → None を選択。
      • サーフェスを非表示にして、黒い特徴線だけを表示。
      • 背景と断面位置を確認しやすくなる。
  • スキニング(Skinning)の基礎
    • スキニング = 断面間の滑らかな接続を制御する機能
    • 調整できる要素:
      • 角度(angle)
        • 正:後方に向かって断面が広がる
      • 角度の強さ(strength)
        • 片側の強さを変更しても、もう片側はそのままで連続性は保たれる。
        • 強さを 0 にすると断面が潰れてしまう
          • CompGeomやメッシュ生成、VSPAERO解析が失敗する原因になる
          • 絶対に避ける。必ず小さな正の値を残すこと。
        • 微調整は時間と試行錯誤が必要。
    • Equal をオフにすると前後を別々に調整可能。

背景の設定

OpenVSPの背景の設定は、以下の手順で行う


  1. 背景の設定
    • 参考となる図面やスケッチを準備する
    • 背景画像を設定し、追加したFuselageと位置やスケールを揃える

参考となる図面の準備

図面の準備の手順を以下に示す

基本手順
  1. PDFを準備する
  2. Acrobat Readerでキャプチャする
  3. 画像を編集して保存する

図面の準備について詳しく説明している動画は以下の1つ

  1. Basic Modeling: Adding a Background Image

動画とその要点を以下に示す

Basic Modeling: Adding a Background Image
  1. PDFを準備する
    • OpenVSPに読み込みたい三面図(Top / Side / Front)をPDFで準備する
  2. Acrobat Readerで画像をキャプチャ
    • Acrobat Reader を開く。
    • メニューから Edit → Take a Snapshot を選択(バージョンによって異なる)。
    • キャプチャする領域を選ぶ:
      • ページ全体を取得したい場合はクリックするだけ。
      • 特定の領域だけを取得したい場合は、クリック&ドラッグで範囲を囲む。
    • 選択後、自動的にクリップボードにコピーされる。
  3. 高解像度でキャプチャする場合の設定(任意)
    • Acrobatの Preferences → General に移動。
    • Use fixed resolution for snapshot tool images」を有効にする。
    • DPIの目安を 150〜600 に設定。
      • 小さい領域を高品質で取得したい場合は高めに設定。
      • この設定により、拡大/縮小による低解像度化を防ぐことができる。
  4. 画像編集ソフトで保存
    • Microsoft Paint など、任意の画像編集ソフトを開く。
    • クリップボードにコピーされた画像を 貼り付け(Ctrl+V)
    • 必要に応じて画像を トリミング(余白を削除)。
    • 保存形式PNG または JPEG を選ぶ(OpenVSPはどちらも対応)。
      • ファイル名は分かりやすく「aircraft_top.png」などにすると管理が楽。
      • VSPファイルから画像までの相対パスが保存されるため、VSPファイルを操作する前にディレクトリ構成やファイル名を整理しておく

ちなみに、若干画像が傾いている場合は、パワーポイントの3D回転(Z軸周り)を使うことで0.1度刻みで傾きを修正できる

背景画像を設定し、追加したFuselageと位置やスケールを揃える

背景画像の基本操作を以下に示す

背景画像の基本操作
  • 3D Backgrounds で背景画像を読み込む
  • 背景画像をモデルに合うように調整する
    • Scale(スケール):画像の縮尺をスライダで合わせる。
    • X, Y, Z のオフセット(配置):画像を 3D 空間内で前後左右上下に移動させる。
    • Depth(深さ)モード:3D 背景の深さ配置を以下から選択する。
    • 回転(Rotate):読み込んだ画像の向きが合っていない場合は90° ごとに回転させる。
    • 左右/上下反転(Flip):読み込んだ画像が左右や上下に反転する。
    • 参照点(Reference point):画像内で基準にしたい点を指定する。
    • 水平/垂直アライメント:Horizontal(水平)の基準およびVertical(垂直)の基準を選べる。
    • 表示切替(Visibility):図面の表示 / 非表示を切り替える
    • 表示条件(Angle tolerance):視点角度に基づいて表示 / 非表示を切り替える
    • 透明度(Transparency):画像の不透明度を調整する。

背景の設定について説明している動画は以下の2つ

  • 2025 OpenVSP Workshop: 3D Backgrounds
  • Adjust the Background

それぞれの動画とその要点を以下に示す

なお、背景に画像を追加する方法は1つ目の動画で紹介されている「3D Backgrounds」の方が圧倒的に使いやすいので、2つ目の動画で紹介している方法は無視していい

2025 OpenVSP Workshop: 3D Backgrounds
  1. 3D Background ウィンドウから画像を読み込む(Top / Side / Front)
    • メニューから Window → 3D Background を選ぶ。
    • 3D Backgroundの管理UI が表示される。
    • Browse(参照) ボタンを使って、用意した上面・側面・正面の画像をそれぞれ読み込む。
    • 読み込み後、ファイルパスが UI に表示されるので確認する。
  2. 回転(Rotation)・反転(Flip)・参照点(Reference point)・基準を合わせる
    • 回転(Rotate):読み込んだ画像の向きが合っていない場合は回転(90° ごと)で正しい向きにする。
    • 左右/上下反転(Flip):読み込んだ画像が左右逆や上下逆なら、Flip Horiz/Vert 機能で反転する。
    • 参照点(Reference point):画像内で「基準にしたい点」(通常は機首の点や胴体中心線上の基準点)を指定する。
      • UI の参照点マーカーを動かすことで、画像内のどの点を 3D 空間の基準にするか決められる。
    • 水平/垂直アライメント:Horizontal(水平)の基準およびVertical(垂直)の基準を選べる。
      • 例:参照点を機首にしたい → Horizontal=Center / Vertical=Top
  3. 3D 空間内での位置(Scale / X,Y,Z)と深さ設定(Depth)を設定する
    • Scale(スケール):画像の縮尺をスライダで合わせる。
      • 最初にFuselageの全長として三面図に記載されている寸法を入力してから、モデルに画像を合わせる。
    • X, Y, Z のオフセット(配置):画像を 3D 空間内で前後左右上下に移動させ、モデルの原点や基準に合わせて画像を微調整する。
      • Top → Side → Front の順で合わせる
        • まず Top を概ね合わせ、次に Side(左・右)を合わせて Z(高さ)方向の位置を微調整、最後に Front を確認して胴体幅や胴体断面の位置を整える。
        • 各ビューの参照点(nose など)を同じ基準点に揃えるとやりやすい。
    • Depth(深さ)モード:3D 背景の深さ配置を以下から選択する。
      • DEPTH_FRONT:モデルの手前(カメラ側)に固定。
      • DEPTH_REAR:モデルの後ろ(背面)に固定。
      • DEPTH_FREE:指定した 3D 位置に自由配置する(手動で任意の深さに置ける)。
    • 背景は常に 3D 空間内でモデルと一緒に移動するため、ズーム・パンしても位置が崩れない。
  4. 表示条件(Visibility)と透明度の調整
    • 表示条件(Angle tolerance / Visibility):背景が常に邪魔になる場合は「視点角度に基づく表示条件」を使う。
      • 例:「Top view に近いとき(±5° の範囲)だけ表示する」ように設定すると、Top view のときだけ画像が見え、それ以外の角度では非表示になる。
    • 透明度(Transparency):画像の不透明度を調整する。
      • 作業中は 30〜60% 程度にして背景が邪魔にならないようにするのがおすすめ。
  • 注意点:
    • 3D 背景に設定した画像のパスは VSP3 モデル(プロジェクト)に紐づくので、VSPモデルと背景画像の相対パスが変わらないようにする。
    • 画像ファイルの場所を移動するとリンク切れを起こすので注意。
    • 作業途中でもこまめにモデルを保存すること。
  • よくあるトラブルと対処法
    • 画像が黒く表示される/読み込めない
      • → ファイルパスが失われている(元の画像を移動していないか確認)。
      • モデルを保存したパスを基準に相対参照される点に注意。
    • 向きが合わない/左右逆に見える
      • → UI の Rotate(90°)や Flip Horizontal/Vertical を使う。
      • 微妙な回転はパワポの3D回転(Z軸)などで事前に回転してから読み込む。
    • 背景が常に邪魔で見えない
      • → Transparency を下げる、または表示角度(tolerance)を狭めて必要なときだけ表示する。

Adjust the Background

断面形状

背景画像を追加し、胴体のモデルと機首・全長を調整し終えたら、断面の作成を行う


  1. 断面の作成・編集
    • 必要に応じて断面を追加し、断面の位置、高さ、幅、傾きを設定する
    • 断面の形状を設定する

断面の追加、位置、高さ、幅、傾きの設定

Cross Sectionsの基本操作を以下に示す

基本操作
  • 操作は 胴体(fuselage)コンポーネントを選択 → Cross Section タブ から行う。
  • 各操作は選んでいる Section に対して実行されるので、操作前に必ず対象セクションを確認する。
  • 断面操作のパラメータ:
    • Insert / Cut:断面の挿入 / 削除
    • Copy / Paste:断面のパラメータのコピー / ペースト
    • X / Y / Z:断面の移動
    • Rotate X / Rotate Y / Rotate Z:断面の回転
    • Spin:特徴線の位置の移動

断面の基本操作について説明している動画は以下の3つ

  • Fuselage: Inserting and Removing Cross-Sections(断面の追加)
  • Fuselage: Positioning Cross-Sections(断面の移動)
  • Fuselage: Rotating Cross-Sections(断面の回転)

それぞれの動画とその要点を以下に示す

Fuselage: Inserting and Removing Cross-Sections
  • Insert(挿入)
    • 現在ハイライトしているセクションをコピーして、そのセクションと次のセクションの中間位置に新しいセクションを挿入する。
    • 挿入時にスキニングパラメータも一緒にコピーされる
  • Cut(削除)
    • 選択したクロスセクションを削除(切り取る)。
    • 削除しても前後の他のセクションはそのまま残る
    • 削除は元に戻せる場合がある(Ctrl+Z)ので、間違えたらすぐ取り消す。
  • Copy / Paste(コピー / ペースト)
    • Copy(コピー):選択しているセクションの形状データと設定をメモリにコピーする。
    • Paste(ペースト):別のセクションに貼り付けることで、そのセクションがコピー元と同じタイプ/形状になる。
    • ペーストすると、貼り付け先のセクションのスキニングパラメータはコピー元のパラメータで上書きされる
Fuselage: Positioning Cross-Sections
  • X:胴体長さに沿った相対位置 を 0〜1 の範囲で指定する
    • 0 が先端側、1 が後端側で、全長に対する割合。
  • Y / Z:胴体中心線からの横(Y)・上下(Z)方向のオフセット を指定する。
    • UI上は通常 −1〜+1 の範囲で扱われる(全長に対する相対値)。
  • 画面では 相対値と絶対値が表示されており、スライダーや数値入力でどちらかを操作すると両方が自動更新される。
  • Monotonic control policyを使っていると、X(長さ方向)は「前のセクションと次のセクションの間」にしか置けない。
Fuselage: Rotating Cross-Sections
  • Rotate
    • X軸回転(Rotate X):断面をロール方向に回転させる。
    • Y軸回転(Rotate Y):断面をピッチング方向に回転させる。
    • Z軸回転(Rotate Z):断面をヨーイング方向に回転させる。
    • 胴体の中心線(翼でいうところのキャンバーライン)に垂直になるように断面を回転させるといい感じになりやすい
  • Spin(スピン)
    • 断面自体は動かさず、特徴線(feature lines)の位置を移動させる。
    • Spinを大きくしすぎると、胴体が雑巾を絞ったようになる

断面形状の設定

Cross Sectionsの断面形状の設定の基本を以下に示す

基本操作
  • 断面形状のTypeを設定する
  • 断面形状に応じてパラメータを調整する

断面の断面形状について説明している動画は以下の9つ

  • Fuselage: Changing Cross-Section Types
  • Cross-Section Viewer Window
  • Circle Cross Section
  • Ellipse Cross Section
  • General Fuselage Cross Section
  • Superellipse Cross Section
  • Fuse File Cross Section
  • Rounded Rectangle Basics Update 3.24 /
    Rounded Rectangle Behaviors Update 3.24
  • Cross-Section Area and H/W Control

それぞれの動画とその要点を以下に示す

Fuselage: Changing Cross-Section Types
  • 胴体の断面の変更方法
    • 胴体(fuselage)コンポーネントを選び、Cross Section タブ → Type(断面タイプ) から断面種別を切り替える。
    • タイプを変えると、OpenVSP はできるだけ「元の断面に近い形」に自動変換しようとする
      • 例:楕円→円なら高さと幅を平均して直径にする
  • 断面間のサーフェスの扱い
    • OpenVSP は各断面の「対応する点・特徴線」を結んでサーフェス(ロフト)を作る。
    • 断面タイプが異なっても、対応するポイント間をスムーズに結ぶ処理を行う。
    • Edit Curve の U(位置)や Spin を使うと、どのように特徴線が断面上を通るかを細かく制御できる。
    • 完全に異なる断面タイプ同士でも OpenVSP はできるだけいい感じににロフトを生成するが、断面を極端に押し込んだり無理な組合せにするとサーフェスの生成が困難になり、自己交差やメッシュ生成エラーなどの問題が出る場合がある

Cross-Section Viewer Window
  • 選択中の断面プロファイルを正規化表示(normalized representation)して目視確認できるウィンドウ。
    • 画像を背景に読み込んでトレースすることができる。
    • 断面形状が設計どおりか、背景画像に合っているか、特徴点の位置関係が正しいかを確認する。
  • 開き方
    • 対象XSecを選び、Type欄の近くの Show ボタン(または Cross-Section View を開く)をクリックすると専用ウィンドウが現れる。
    • 翼の断面は Airfoil の show と同等の操作になる。
  • 背景画像の使い方
    1. Cross-Section View を開く。
    2. 「背景画像を追加する」ボタンで図面(3-view 等)や写真を読み込む。
    3. 読み込んだ画像のスケーリング(高さ・幅)を、既知の寸法(実機の高さ・幅)に合わせて調整する。
    4. 断面パラメータ(height/width、角丸、tangency strength、m/n 等)をスライダや数値入力で変更し、画像上の輪郭と一致するよう微調整する。
    • ポイント:Viewer は断面をウィンドウ中央に“正規化”して表示するため、表示上の寸法感が見かけ上変わっても「実際のモデルに反映されるスケール」はパラメータ値(Height/Width)で決まる。
  • Tips
    • 背景画像はコントラストの高い線色(赤など)にしておくと視認性が良い。
    • 変更は小刻みに行い、Skin/Loft を随時確認する(特に不連続点や自己交差が起きやすい)。

Circle Cross Section

  • Circle
    • 文字通りの円形断面
  • 主なパラメータ:
    • Diameter(直径)で円を定義する。
  • Tips
    • 元が Ellipse や他形状の場合、円に変更した際の直径がどう決まるか(平均化等)を確認してから微調整する。

Ellipse Cross Section

  • Ellipse
    • Height(Z方向)と Width(Y方向)で定義される楕円断面。
    • 公式ドキュメントで基本的な断面タイプとして説明されている。
  • 主なパラメータ:
    • Height / Width
      • 両方が 0 の場合は Point に相当、片方が 0 の場合は線になる
  • Tips
    • 最初に楕円で大まかに整形してから他タイプへ移行するのが速い。

Superellipse Cross Section

  • Superellipse
    • 超楕円(https://ja.wikipedia.org/wiki/スーパー楕円)。
    • 以下の式で表される一般化された楕円
      \begin{align}
      \left|\frac{x}{a}\right|^m+\left|\frac{y}{b}\right|^n=1
      \end{align}
    • パラメータ m, n が 2 のときは通常の楕円になる。
    • m,n を変えることで角が鋭くなったり角丸になったり、楕円〜矩形に近い形まで作れる。
  • 主なパラメータ:
    • Height / Width(高さ・幅)
    • m / n:Surperellipseの定義式の m, n
      • MaxWLoc:上下方向の最大幅位置
      • T/B symmetry:上下対称を切ると top/bottom で個別にm, nを設定できる
    • Tips
      • m, n の値の例:
        • m, n = 1 → 直線(菱形)
        • m, n = 2 → 楕円
        • m, n > 2 → rounded-rectangle に近い形(ただし、側面は完全には垂直にならない)
      • MaxWLoc の値の例:
        • -1 <MaxWLoc <1:通常の範囲
        • MaxWLoc = -1, 1:断面の底部や上部が完全にフラットになる
        • MaxWLoc < -1、1 < MaxWLoc:断面曲線の一部が Height で設定した高さを超えて上下に張り出す
      • パラメータの端域で特異挙動が出ることがあるので、スライダで値を確認しながら作業する。

      General Fuselage Cross Section

      • General Fuselage
        • Edit Curve よりはパラメータ数が少なく、いくつかの形状制御が用意された高機能な断面。
      • 主なパラメータ
        • Height / Width:高さ・幅
        • Max Width Location:最大幅位置(垂直方向の位置を中心から上下へ移動)
        • Top / Bottom Tangent Angles:最大幅位置における上側と下側の接線角度
        • Corner Radius:最大幅位置で上下断面曲線を接続するときの半径
        • Top / Bottom / Upper / Lower Strength:接線の強さ/スプラインの張り具合
      • 使い方
        1. Height/Width・MaxWLoc をおおまかに設定して断面の縦横比と最大幅位置を決める。
        2. Top / Boottom Tangent Angles を調整して最大幅位置の上下の接線角度を設定する。
        3. Corner Radius で上下の接続位置の鋭角/丸角を調整する
        4. Strength 値で角の丸みの張りを制御する
        5. 背景画像で比較 → スキニングで 3D 表示確認。
      • Tips
        • 上下で異なる角度を与えると鋭いエッジができるので、角丸(Corner Radius)や strength を使って平滑化する。
        • 過度にパラメータを振ると自己交差やスキニング不良が起きることがある。最初は単純な近似から始め、必要な箇所だけ複雑にする。

      Fuse File Cross Section

      • Fuselage File Cross-Section
        • 外部の FXSファイルを読み込み、その点列にスプラインを適用して断面を作成する。
      • ファイルフォーマット
        • 点列は 正の X 軸交点(+X)から時計回り に並べることが要求される。
        • 最初と最後の点は同一の点(閉ループ)でなければならない(ファイルの先頭と末尾の座標は同じ)。
        • 読み込まれた点群から Height/Width が自動算出・適用される。
      • Tips
        • Fuse File を使うなら、まず小さなテストファイルで読み込み → 3D表示 → 解析まで一連を確認してから本ファイルを使う。
        • Edit Curve を併用して細かい修正を加えると安定する場合が多い。
        • フォーマットが厳密で、点の順序や閉合が正しくないと読み込みエラーが出やすい(過去の掲示板やユーザ報告でも“脆弱”だと指摘されている)。読み込む前に座標順序・先頭末尾一致を必ず確認する。 (OpenVSP Ground School)
        • 外形が正確に必要なケース(計測断面や既存CADデータをそのまま使いたい場合)に有用。
          • ただし後処理(スキニングや空力解析)で問題が出ないか確認する必要あり。

      FSXファイルの例(https://vspu.larc.nasa.gov/training-content/chapter-1-vspfundamentals/cross-section-details/fuselage-file-cross-section/):

      OPENVSP_XSEC_FILE_V1
      1.0  0.0
      0.0  -1.0
      -1.0   0.0
      0.0   1.0
      1.0  0.0

      Rounded Rectangle

      • Rounded Rectangle
        • 角が丸まった長方形。平行四辺形やひし形のようにすることもできる。
      • 主なパラメータ:
        • Height / Width(高さ・幅)
        • Corner Radius(角丸半径) — Top/Bottom/Left/Right を個別に設定可能(対称モードあり)
        • Keystone(上下の相対比率) — 上下どちらを長くするかの比率(0.5 が上=下同等)
        • Skew / Vertical Skew(左右・上下へのずらし)
      • Tips
        • 最大半径は制約され、片側が半円相当(semi-circle)になるとそれ以上角丸が大きくならないよう自動制限される。
        • Keystone を極端に(0 や 1 に近づける等)すると、角丸が 0(鋭角)に戻される等、パラメータ同士が相互作用して思わぬ結果になることがある。
        • VSPAERO(VLM)などで問題になりやすい:完全に垂直な面(左右が真に直線)だと数値的に「点に潰れる」等の退化(degenerate)ジオメトリが生じ、解析に失敗するケースが報告されている。丸めすぎ・直線化しすぎに注意し、必要なら superellipse や edit-curve で近似するのが安全。 (OpenVSP Ground School)
        • まず対称モード(All symmetry)で角丸をそろえ、形が決まってから個別の top/bottom/left/right に切り替えて微調整する。
        • Keystone や Skew は少しずつ変えて、角丸の再計算(radius→0 になるなど)を起こさないよう要注意。 (OpenVSP Ground School)

      Cross-Section Area and H/W Control

      • 2D XSec(superellipse、rounded rectangle 等)に対して Width / Height / Area / Height-to-Width ratio のうち「任意の組合せ(2つを固定)」でパラメータ化できる機能。
        • 任意の「2つの固定パラメータ」を選択すると、残りを内部で反復計算して(iteratively solve)断面の条件(面積 or H/W ratio 等)を満たすようにする。これにより M/N の変更や角丸、スキュー等を変えても総面積が保たれる。
      • 例)断面積(Area)を直接指定しておき、他のパラメータを調整する → 内蔵ソルバが自動的に高さや比を再計算して所望の面積を保つ。
        • 楕円断面で Width と Area を固定 → Width を動かすと Height が自動で変わって Area を一定に保つ。
        • Superellipse や Rounded Rectangle でも同様に、m/n や radius を変更しても面積一定にしたまま高さが更新される。
        • Edit Curve に変換してパラメータ化するとき(Edit Curve に parameterize する際に Area を選択しておく)も同様に、点をドラッグするとリアルタイムで高さがスケールされて面積が維持される(リアルタイム更新)。
      • Tips
        • Airfoil(翼断面)タイプはこの自動面積パラメータ化の対象外(ドキュメント注記)。
        • 極端なパラメータ設定だと内部ソルバが収束しにくかったり期待外の形状になる場合があるため、常に 3D 表示で最終形状を確認する。

      スキニング

      断面の設定が一通り終わったら、スキニングを用いて断面間の特徴線の形状を設定する


      1. スキニングの調整
        • 断面間をつなぐ特徴線の形状を設定する

      Skinningの基本操作を以下に示す

      Skinningの基本操作
      • skinningを用いて複数の断面(cross section)を滑らかに繋ぐ
      • OpenVSPは断面における接線ベクトルをもとにスプラインを解いて特徴線をつくる。
      • 各断面には「before(fore)側」と「after(aft)側」の2方向の制御があり、断面の前後で異なる接線条件を与えられる。
      • パラメータの自動設定・リンク:
        • Set:ONにするとユーザーがパラメータを手動で設定する。デフォルトはOFF(自動設定)
        • symmetry:ONにすると 上下 / 左右 のパラメータが同じになる
        • =:ONにすると断面の前後のパラメータが同じになる
      • 接線ベクトルのパラメーター:
        • angle:特徴線が断面を通るときの接線ベクトルの角度を設定する
        • slew:特徴線が断面を通るときの接線ベクトルを表面法線方向にねじる
        • strength:特徴線が断面を通るときの接線ベクトルのノルム(影響範囲)を設定する
        • curvature:特徴線が断面を通るときの曲率を設定する
        • 基本は angle / slew / strength の組み合わせで欲しい形を作り、curvature は特別な場合のみ使う。
      • 各断面における連続性(Continuity)も設定可能(C0~C2 / デフォルトはC0)

      Skinning について説明している動画は以下の8つ

      • Skinning Introduction
      • Removing Skinning Control
      • Skinning Symmetry
      • Skinning Angles
      • Skinning with Slew
      • Skinning Strength
      • Skinning with Curvature
      • Skinning Continuity

      それぞれの動画とその要点を以下に示す

      Skinning Introduction

      1. OpenVSP でモデルを開き、該当するボディを選択 → Skinning タブを開く。
      2. 断面(cross section)を選択すると、Skinning タブにその断面の設定が表示される。一般的に「左側のカラム=before(fore)」、「右側のカラム=after(aft)」というレイアウトになっている。
      3. 画面レイアウトは 4-view(Isometric / Front / Top / Left)にしておくと分かりやすい。
        • 表面のパネルを隠して特徴線だけ見るモード(“none” view)に切り替えると、特徴線の変化がはっきり分かる。
        • 逆に「hidden view」でパネルのメッシュを確認すると、凹みや不自然な面を見つけやすい。
      4. 各断面に対して、以下のパラメータを調整する
        • Set / symmetry / = をチェックして制御の ON/OFF を切り替える
        • Angle / Slew / Strength / Curvature の値を入力/スライダーで調整する。

      Removing Skinning Control(Set)

      • Skinning タブ内で、Top/Right/Bottom/Left の各パラメータ列(Angle, Strength, Slew, Curvature)に「Set」ラベルがついた小さなチェックボックスやがあり、これをオン/オフする。
      • Set = ON(チェックあり)
        • パラメータ(Angle / Strength / Slew / Curvature)をユーザーが明示的に指定する。
        • UI の入力欄は有効になり、入力値を用いて VSP がスプラインを解く。
      • Set = OFF(チェックなし)
        • 入力欄がグレーアウトして編集できなくなる
        • パラメータを OpenVSP に自動計算させる(VSP が隣接断面等の条件から最適値を決定する)。
      • 最初は Set を OFF(自動)にしておく
        • OpenVSP の自動補間で滑らかな形が作れることが多い。まずは全体の出来を確認する。
        • へこみ、自己交差、ひずみ、背景画像との不一致などの問題箇所が見つかったら、その断面の Set を ON にしてパラメータを修正する。

      Skinning Symmetry(対称設定)

      • top / bottom、right / left の対になるパラメータを等しくする(パラメータのリンク)。
        • 「ボディ全体が左右対称になる」という意味ではない
      • symmetryは断面ごとに設定する
        • 例)断面1は無効、断面2は All Symmetric、断面3は top/right のみ有効、など。
      • 以下の3種類が設定可能:
        • Top-Bottom symmetry:top のパラメータを bottom に反映させる。top を変えれば bottom も同じになる。
        • Right-Left symmetry:right のパラメータを left に反映させる。
        • All Symmetric:top のパラメータを right / bottom / left 全てに反映させる。
      • 注意点:
        • パラメータがコピーされるだけで、ボディ形状そのものが幾何的に対称になるとは限らない。(断面を回転させている場合などは、symmetryにしていても幾何的には非対称になる)

      Skinning Angles(角度)

      • 断面を通る特徴線の「接線方向(導関数ベクトル)」の角度を設定する。
      • 「=」の使い方
        • チェックを入れる:fore と aft で傾きが連続に変化する(基本はこっち)
        • チェックを外す:fore と aft の角度を独立に設定できる(キャノピー付近の段差など)
      • 符号:
        • aft(後側)
          • 外向き(断面を広げる方向)が正(+)、内向き(断面を狭める方向)が負(−)。
        • fore(前側):符号が逆転する。
          • 内向きが正、外向きが負。

      Skinning with Slew(ねじり)

      • 「特徴線そのものを、その断面の表面法線(normal)まわりにねじる」操作。
      • 断面を回転させている場合や、断面の中心線が角度を持っている場合に、特徴線を綺麗に通すために使う。

      Skinning Strength(強さ)

      • 断面を通る特徴線の導関数(接線)ベクトルの大きさ(ノルム)を決定する。
        • angle で設定した傾きがどのくらい「遠くまで伸びるか」を決めるイメージ。
        • strength を大きくすると、その点から伸びる特徴線が「強く押し出されるように」外へ伸びる。逆に小さくすると弱くなる
      • strength = 0 にすると特徴線が別の断面と直接一致する(=断面がつぶれる)ことがあり、面の自己交差や解析上の不具合を引き起こすため絶対に使わない
        • もし調整の中でstrength をゼロにしたくなったら、以下の手法を試してみる
          • 「Set」をオフにしてスプラインをOpenVSPに委ねる。
          • 角度を 0 にして、strength を小さな正の値にする(0.01など)。
        • それでもだめなら、断面の位置を変えてみたり、傾きをつけてみたり、断面を増やしたり減らしたりしてみる。

      Skinning with Curvature(曲率)

      • 断面を通る特徴線の曲率(カーブの強さ)そのものを直接変更するパラメータ。
        • fore/aft 別々に設定可能。
        • プラス/マイナスで曲がる方向が異なる
        • curvature を与えても、angle・strength 条件は満たされるように VSP がスプラインを再計算する。
      • 基本は使わない
        • ほとんどのケースで angle・slew・strength の組合せで十分なので、curvature はデフォルトで無効になっている。必要なときだけ有効にする。
        • 既存の angle/slew/strength で微妙な追従が必要な場合にのみ使う(例:隣断面との接続部だけを滑らかに丸めたい、局所的なボウルを取りたい等)。
        • curvature を弄ると全体のスプライン挙動が変わるため、慎重かつ限定的に使う。
        • まずは angle・slew・strength で解決できないか試す。

      Skinning Continuity

      • skinning のパラメータとして、連続性(continuity)も設定することができる
        • C0:位置(位置ベクトル)が連続であること。特徴線(feature line)が途切れずにつながっていることを示す。
        • C1:1次導関数(接線ベクトル)が連続であること。特徴線に折れがなく、滑らかにつながっていることを示す。
        • C2:2次導関数(曲率ベクトル)が連続であること。C1よりさらになめらかな曲線が作れるが、扱いが非常に難しい。
        • まず C0(デフォルト)→ 必要なら C1(滑らかな接続)→ C2 は特殊用途で慎重に使う、が基本。

      端部の処理

      適当なタイミングで、端部の処理を設定する


      1. 端面の処理
        • 機首と胴体後端の閉じ方を設定する

      端部の処理について説明している動画は以下の2つ

      • Point Cross Section
      • Fuselage: Closing with Caps

      デフォルトではPoint Cross Sectionが設定されており、基本的にこれを使えばいいが、端部を平面などにしたい場合は2つ目のCapを使う

      それぞれの動画とその要点を以下に示す

      Point Cross Section

      • Point
        • 点で定義される楕円断面。
        • Fuselageのモデルを追加したとき、デフォルトで両端の断面に設定されている
        • すべての特徴線が1点に集約される
        • 両端以外の断面にも設定可能
      • 主なパラメータ:
        • なし
        • Tips
          • 基本的に両端の断面にはこれを使えばいいが、両端の断面を平面などにしたい場合はCap機能を使う

        Fuselage: Closing with Caps

        • Designタブ > Tip Treatment から設定可能
          • 両端の断面をPoint以外に設定したときに、両端の断面のサーフェスを閉じるために使用する
        • 主なパラメータ:
          • None:断面を閉じない(デフォルト)
          • Flat:断面を平面で閉じる
          • Round:断面を丸めて閉じる
            • Length / Offset:丸みの奥行や上下位置を変更できる
        • Tips
          • Roundを使えば見た目上はPointを使ったときと同じようなモデルができるが、特徴線の入り方が変わる

        Edit Curve

        (いつの日か追記予定)

        おわりに

        OpenVSPで胴体のモデリングをする方法について、公式のチュートリアル動画を引用しながら説明した

        天下のNASAが開発しているだけあって、かなりいろいろなことができる

        機能はたくさんあるが、使っていくうちに慣れてくるので、練習あるのみである

        ↓関連記事

        OpenVSP
        質問・感想・意見などあれば気軽にTwitterのDMかコメントお願いします!
        スポンサーリンク

        コメント