主砲アニメ-ションを考える


アニメ-ションとテクスチャ-を追加中


後は追加と編集を行いながら考えて行きます、ダイナミック処理も多々あります砲塔カバ-はメッシュでとかメカの動きはこれから考えて行きます(笑い)。さてまずは弾薬を配置して行きましょう、それからエックスプロラーも使いプログラムしてTRXで動きを付けようと思います、またダイナミックで弾丸発射とか砲塔の旋回と上下角度も同じく行います。それから大和に積み込んで行きましょう!ま!兎にも角にもまだ大変です。


砲弾が入りました

いや~びっし入りましたが、まだ足りないのです。部品は大きく分けて七ブロックに分割されています。まだまだ増えそうです。




窓枠をスム-スに修正


ボルト追加

茫漠除けカバ-ボルトを追加しましたリアルさが増加しました。


nダイナミック・メッシュに変更して行きます


砲弾ストックは上下2段に分かれています。


アニメ-ション手順は段階的に

階層関係を確立します、下記の画面の様に個々の部品をメンバ-としてアセット宣言を行います。そうして更に詳細に此処の部品レベルで考慮し行きますがカメラも組み込んで行っても良いですね!基本的に不可能ははないのですから何でも出来てしまいます。但しリファレンスは絶えず綺麗に掃除を繰り返す事が重要になります。

この中で主砲とともに回転しない物は非表示にして置きます、例えば船体側に存在する物は関係ありませんから本来はいらないのですが後で船体と合わせる事になるので合わせが完成するまでは残しておきます。


この様に大きくなると一度に考えるのは不可能です、そこで詳細はブロック(部品毎に)で考えて行きます。上記画面はプラモデルの完成された形であると考えております、そこで最初に部品のマトメとして見てエックスプレションエデイタでメイン制御変数を決めて行きこの変数をグロバル変数として宣言し登録して行きます、この変数をグロバル変数と言います。

例えばこの主砲を旋回させる場合はMainGunを回転します、それで構成する部品メンバ-も一括に回転させる事が出来ますこれがアセットの利点で有りリファレンスエデイタの優れた特徴です、今後この主砲は大和に搭載され更に海に浮かんでもリソ-スは気にすることもしなくていいのです、兎にも角にも思いついた箇所から動きを個別に着けて行きます、修正及び追加は各部品毎に部品レベルで行います、しかしMainGunを開くと更新された部品等は自動的に更新されて表示されて来ます。

部品は現在1~6番まで有りそれらがMainGunで総合的にアセットでまとめられています、このメイン中にッ此処に動かす指示変数を登録していきます、例えば旋回角度とか主砲の発射番号と色々と多数有ります最初は大まかに決めて行けば良いので途中で自由に変更しても構いません、その部品レベルでグル-プ毎に分割を繰り返して行きますが基本として親のグル-プを動かせば子供のグル-プは同時に相関的に動きます。

主砲旋回に必要な指示は何がいるのか?

  • ->旋回開始 Start turning
  • ->方向は右・左?回転 The direction is
  • ->旋回角度は? The turning angle is
  • ->原点に戻す Return to origin
  • <-旋回動作中? During turning operatio
  • ->回転速度は Rotational speed
  • <-現在の旋回角度の値 Current turning angle value

「->」はMainGunからの指示変数で「<ー」は部品からのMainGunへの応答変数。主砲の旋回には上記のグロ-バル指示変数が必要になります。グロバル変数、いや~沢山いりますね!このようにしてアルゴリズム化して行きますこの様にして考慮して行くと他にも沢山いるかも知れませんが旋回に関しては十分と思われます。此処でこれらの日本語は一切MAYAでは使えません!変な話ですよね!日本語は単純にメニュだけなんです。だから日本語でMAYAを覚えては行けないんです!そこで上記項目を英文化して更に略語を考えます。






綺麗に全体が旋回しています

此処で旋回していますが参照中部品には一切影響はないのです、素晴らしいですね!


グロバル変数を追加

  • ->旋回開始 Start turning  ブ-リアン
  • ->方向は右・左?回転 The direction is インテジャ-
  • ->旋回角度は? The turning angle is  float
  • ->原点に戻す Return to origin ブ-リアン
  • <-旋回動作中? During turning operatio ブ-リアン
  • ->回転速度は Rotational speed     float
  • <-現在の旋回角度の値 Current turning angle value float

OldFrameを追加します

此処でこのフレ-ム変数は現在のタイムスライダ-の位置情報が入っています、例えばフレ-ム1で止まっていたとすれば絶えずこの変数値は1を返す、その為に一度だけこのフレ-ム処理を行う必要が有ります。フレ-ム数の値が異なる場合にだけ処理を行う必要が有ります。又関数内部には繰り返し構文は使わない様にプログラムします。処理したフレ-ム値をOldFrameに保存します。


基本は此処から始めます

タイムスライダが1になった場合に一度だけ旋回角度を0に戻すプログラムです。紫色に反転している箇所がプログラミングされている項目である事を明示しています。

旋回用プログラム

//回転速度 1/sec==24.0フレ-ム
float $Rotationalspeed=360.0/(24.0*MainGin.Rotationalspeed);
int   $Startturning=0;
//=======================状態確認と原点リセット==========================
if (frame!=MainGin.Oframe){
        MainGin.Oframe=frame;
        if (frame==1.0) MainGin.rotateY=0;//原点へ旋回
		}
//================================================================
if(MainGin.Startturning==1) $Startturning=1;
if ($Startturning==1) {
        MainGin.Currentturninganglevalue=MainGin.rotateY; //現在の旋回角度
		if(MainGin.Thedirectionis==0){//CCW 左回転
                   if(MainGin.Currentturninganglevalue<=MainGin.Theturningangleis) 
                                    MainGin.rotateY+=$Rotationalspeed;
                   else $Startturning=2;//旋回停止
                   }
        if(MainGin.Thedirectionis==1){//CW  右回転 
                   if(MainGin.Theturningangleis<MainGin.Currentturninganglevalue)
                                    MainGin.rotateY-=$Rotationalspeed;
                   else $Startturning=2;//旋回停止
                   }       
        }
        

nDynanicsを適用

いや~いいですね!布の感じが良く出ています、チョット柔らかすぎるかも知れませんが!後で調整します。


メッシュを扱う場合にはスム-ス化が重要です、でも編集が面倒くさくなりますそこでプロキシを使います、OBJが1個追加されて2個になります。その内訳は1つ目はロ-ポリで二つ目はハイポリになります、メッシュには追加されたハイポリを使います、ロウポリは非表示にして置けば問題は有りません。


こちらがハイポリ


こちらがロ-ポリ

後部には爆風逃がし穴がある!

プラモデルではこうはできないでしょうね!3Dだからこそ可能になります・


手すりの完成

人との比較

いや~大きいですね、人があまりにも小さいですね!


大和に組み込んでみました

リソ-スは気にする必要なしです、これがリファレンスの凄さなんです。船体内部の区分けもしなければ行けなくなりました。ま!面白いですよね!


主砲のモデリング手順の要点