ベジェ・スプライン曲線の作成

ベジェ曲線の作成


<資料>
高品質チュートリアルサイト「Catlike Coding」の最新チュートリアル

(以下要点の意訳)

このチュートリアルでは以下の事を学びます

  • カスタムエディタの作成
  • シーンビューへの描画
  • シーンビュー経由で編集することをサポート
  • ベジェ曲線を作成し、その背後にある数学を理解します
  • 移動方向と位置により曲線を描画します
  • 曲線を組み合わせることによりベジェスプラインを構築します
  • コントロールポイントの自由配置、整列、ミラーをサポート
  • ループするスプラインをサポート
  • スプラインに沿ってオブジェクトを配置します


<tips>
チュートリアルを進めていて Handles.DrawLine (p0, p1); をコーディングした後もエディタのビューに何も表示されない時はunityエディタウインドウ右上にあるビューモードの変更トグルから「Default」を選択してみてください。これでコードやインスペクタ状態に問題が無ければ表示される筈です。エディタの諸設定でこのようなトラブルが起きる人もいるようです


・・・

  Quaternion handleRotaiton = Tools.pivotRotation == PivotRotation.Local ? handleTransform.rotation : Quaternion.identity;

このコードはunityツールのpivot回転モードを参照して「Local」ならLineオブジェクトの回転を代入している。それ以外の場合は初期値を代入
つまりユーザーがツールをどのように扱っているのかToolsクラスから現在の状態を参照してコードの挙動を変えている

・・・

ハンドル操作をLineクラスに反映させるには結果の値を割り当てる必要があります。ハンドルの値はワールドスペースの座標にあり Line オブジェクトへ割当てる座標はローカルスペースの座標です。従って InverseTransformPoint 関数で座標の値を変換する必要があります。ハンドルの値の変更がいつ行われたか知るには EditorGUI.BeginChangeCheck と EditorGUI.EndChangeCheck 関数を利用します。一番目の関数が呼ばれた後から2番目の関数が呼ばれた時までに変化があれば検出し、Lineクラスの座標を書き換えます





参考資料



メニュー


  • 最終更新:2014-09-29 11:21:11

このWIKIを編集するにはパスワード入力が必要です

認証パスワード