スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    ロケータできた!

    ■カスタムロケータ
    locator.jpg
     ようやっとカスタムロケータが出来ましたぁ~! ばんざ~い\(^o^)/

    今回ロケータを作成するにあたって、色々な方のHPを参考にさせて頂きました、ありがとうございました!
    ↓今回参考にさせて頂いた方々のHP一覧。今後の自分へのメモも込めて・・・
    • たっきゅんのガ☆チンコ開発日記
      C++の準備から各種プラグインの作成方法まで詳しくのせて下さってます。ほとんどこのサイト様の教えにそって作った感じですw
    • memlog
      とにかく色々なことを検証されてる情報ブログ。プラグインにかかわらず色々参考にさせて頂きました 。
    • pythonを使ったmayaプラグインの作り方 -Locatorノード編
      デジタル・フロンティアさんのコラム。Pythonでのロケータの作り方を詳細に説明して下さってます。
    • OpenGL入門
      OpenGLの描画に関して詳しく段階を追って説明して下さってます。描画関係はかなり参考になりました。



     それにしてもワシ自身C++まともに触ったことなかったんで、C++の基礎レベルでつまづきまくりでした。
     特に今回、意外な部分で躓いたのが、形状のスイッチ。上記画像のロケータは1種類のロケータで、プリセットアトリビュートによって形状が変わります。これらをスイッチする時に、draw関数の中でswitch文で振り分けるワケですが、caseの中にダラダラ描画命令をかくのはカッコ悪いので、それぞれのshapeを描画するクラスを作りました。
     それらは一つの基底クラスからの派生クラスで、switch文で各形状を描画するクラスのインスタンスを変数に割り当て、描画メソッドを呼べばOKと言う形にしたかった訳です。
    (例えば描画メソッドを持つRootクラス、Rootクラスから派生した球を描画するSphereクラス、箱を描画するCubeクラスみたいな感じ)

     が! Pythono場合、変数にインスタンスを入れる際動的に変わってくれるので問題なかったのですが、C++の場合は変数を宣言する際にあらかじめ型も宣言しとかないといけない、しかし入れたいオブジェクトはSphere型だったりCube型だったりで、型が一致しないワケです。
     どうにもこうにもならず、通りすがりの天才プログラマに教えを請い、ようやく解決しましたので、メモを残しときます。
    (基底クラスをRoot、球描画クラスをSphere、箱描画クラスをCubeとし、それぞれdrawメソッドを持っていると仮定)
    //基底クラスのポインタを作成
    Root *drawer;
    
    switch( drayStyle ){
        case 1: //Sphereの場合
            drawer = new Sphere();
            break;
        case 2: //Cubeの場合
            drawer = new Cube();
            break;
    }
    
    //描画メソッドを呼ぶ
    drawer->draw();
    
     ポイントは、最初に基底クラスの”ポインタ”を作成すること、振り分け時にはポインタ変数にnewを使用してインスタンスを渡すこと。
     うん、こらわからんわ・・・w
     ありがとうプログラマさま


    C++勉強の道のりは長そうです
    スポンサーサイト

    コメントの投稿

    非公開コメント

    No title

    天才プログラマーも何気なく通り過ぎるもんなんですねw
    新しい分野にも取り組まれてて素晴らしいです!
    俺は最近、リトポしたもののリトポをするという
    ことにチャレンジしましたw もはや意味がわかりません

    リトポのリトポ?

    最近はSkypeとかSNSとかあるんで、結構通り過ぎてくれますヨw
    リトポのリトポとはまた面白いですね~、一体何に使うのか気になります・・・

    そろそろひと段落してきたんで、そろそろZBrushでもアップグレードして、遊びたいこの頃です(^^)
    プロフィール

    Eske

    Author:Eske
    萌えイラストレーターを目指す3DCGイラストレーター。
    現在ポケモンカードゲーム、ガンダムトライエイジ、ガンダムコンクエスト、妖怪ウォッチとりつきカードゲームなどで3DCGを使用したイラストレーターとして参加中。

    主にここでは日々気づいたメモなんかを残してます。
    イラストのお仕事も受け付けております。ココのメールアドレスからご連絡できますので、お気軽にご相談下さい。

    最新記事
    最新コメント
    カテゴリ
    最新トラックバック
    月別アーカイブ
    検索フォーム
    リンク
    QRコード
    QR
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。