ini-T MUSIC SKY [CGのBLOG]


バーチャルシンガー笹星姫歌
Unity



自分のやってみたいことの一つにオリジナルの3Dキャラでバンド演奏をさせてみたいというものがありました。しかし、現在もモデル製作等準備中でメンバー全員を揃えるのはまだまだ先になりそうです。

現在、ギターとボーカルまでは完成しています。そこで、しばらくはボーカルの笹星姫歌(ささぼし ひめか)がバーチャルシンガーとしてバーチャル弾き語りをするところから活動を始めてみようと思いました。

そこで、まずバーチャル弾き語り第一弾として機動戦士ZガンダムOPの「水の星に愛をこめて」の動画を作ってみましたので、よろしかったら観てみて下さい。




この動画はUnityで制作してあります。カメラワークやイベントのタイミングはTimeLineを活用しています。

いちおう、笹星姫歌の原案も載せておきます。


(画像をクリックするとpixivの掲載ページに飛びます)


あくまで、原案であってモデリングしていくうちに色々変更しました。いちおう設定では17歳なので始めは制服も考えましたが、Unityならではのパーティクル等のエフェクト映えも考えて少し近未来的な衣装を考えてみました。今後変更もあるかもしれません。

声はCeVIO ONEを使っています。ギター音源は先日購入したRealGuitar5とフリーのAmple Guitar M II Liteを使用しています。以前はギターの打ち込みはかなり大変なものでしたが、今の音源はすごく進化していますね。そこまで手間がかからず準備できそうです。

何故、このプロジェクトをMMDではなくUnityでやろうとしているかというとストロークのモーションや指板上の動きはIKでリアルタイムにコントロールすればギターの動きに合わせて自然な動きをさせることが出来るというのと、楽器演奏というのは何パターンかの繰り返しで成り立っているので、それらはアニメーションクリップ単位でスクリプトから連結させたりすれば手付でのモーションは最小限で済むという算段からです。

あと、Unityであればゆくゆくは楽器を演奏するようなゲームを製作という方向にも持っていくという可能性も広げられますしね。

ニコニコ動画にも上げてあります。どうやら同じ動画でもYouTubeの方は音量が小さくされてしまうようですね。(気のせいではないよう)




スポンサーサイト
テーマ: CG ジャンル: 日記
PlayMakerでシューティング
Unity



7ヶ月ぐらい前に、試しに2DシューティングゲームをUnityのPlayMakerでノンコードで組んだものをツイートしたのですが、ブログの方にも残しておこうと思います。



結構前のことなので今更全部の解説はしようとは思いませんが、プレーヤーの操作部について実際に動かす時に気がついたことを少し書いてみます。

Playerの遷移状態(FSM)はこの様になっています。



コントローラーの入力値をVector2型のmovment変数に入れてRigidbody 2DのVelocityによって移動させています。

このとき、例えば縦横のスピードを1とすると斜め45度方向に進もうとする時に移動量がMAXで√2≒1.414となり若干速く動くことになります。なんか斜めに移動するときだけ速く動いてしまうのが気になってしまいます。

Unityではベクトルの(x * x + y * y)の平方根の長さを得るためにVector2.magnitudeが用意されています。この値をどの方角でも1(単位ベクトル)となるようにしたい時にはVector2.normalizedが用意されています。PlayMakerではVector2 Normalizeというアクション名になります。

このVector2 Normalizeがある時とない時の動きの違いはこのようになります。



左はVector2 Normalizeが付いているもので、右は付けてありません。左は移動スピードが一定ですが、右は斜めの時速くなっているのが分かると思います。(動きを速くするためにmovmentには5を掛けてあります)

PlayMakerのVector2 NormalizeをUnityスクリプトで書くとこんな感じでしょうか。

void FixedUpdate () {
    float x = Input.GetAxisRaw("Horizontal");
    float y = Input.GetAxisRaw("Vertical");

    Rigidbody2D rigi = GetComponent<Rigidbody2D>();
    rigi.velocity = new Vector2(x, y).normalized * 5;
}


今回、スピードをUI表示するためにアクションを追加してみました。Vector2.magnitudeはPlayMakerではGet Vector2 Lengthというアクションになります。



Vector2型のmovment変数をGet Vector2 LengthでFloat型に変換してvector2valu変数に入れます。それをConvert Float To StringでString型に変換してspeedStringに入れてU Gui Text Set Textアクションで機体右前のTextで表示させています。

Convert Float To StringのところはC#のToStringメソッドで書くと、
string speedString = vector2valu.ToString();
という感じですね。

FormatのところでToStringメソッドと同じように書式も指定できます。



0.000と入れれば小数点以下3桁まで表示、eと入れれば浮動小数点表記も出来ます。


久々のブログ更新
未分類



ブログをやっていた人がTwitterを始めるとブログの更新頻度が減るという噂は聞いていたのですが、自分もそうなってしまっていたようですね。(^^;)

Twitterはブログに比べれば手間がそんなにかからずに発信できるので便利なんですよね。しかし、載せられる情報量も少なく、あとは流れていくだけです。

自分がやってみたことで後に同じ問題の解決方法など検索で情報を探す人のためにもその記録を書き残しておくことはしておきたいのでブログも続けていきたいと思っています。しかしながら、HPとブログ2つとTwitterを同時に運営することがちょっと無理があるように思うようになりました(ブログを書くには結構な時間的拘束とパワーが必要だったりします)。

一旦は訪問してくれる方の興味の傾向を考慮してブログを音楽系とCG系に分けることにしました。それで、こちらのブログに書いていた音楽系の記事を「音楽のBLOG」の方へ移しました。しかし、自分のやりたいことは3DCGと音楽の融合した作品であるのと、どちらも自分が表現することには変わりないので、もう分ける必要がないと思うようになりました。

それで、今後はCGと音楽も同じブログで一本化して書いていこうと思います。とりあえず、「音楽のBLOG」に移していた音楽系の記事はこちらに戻しました。これまでのトランペットの日記の方まではこちらに移す気はありませんが、今後はトランペットの話題もすることがあったらこちらでするかもしれません。「トランペット奮闘日記」は「音楽のBLOG」でそのままにしておくか、いずれ前のようにHPの方に戻そうかと考えています。

心機一転、レイアウトを変更して一行あたりの文字数を増やしてみました。今後もよろしくお願いします。


Poser Pro 11.1
POSER



なんだか去年の12月ぐらいにSmithMicroのメールでPoser Pro 11.1のアップデートは50ドルで有料だったような気がして見送ったはずなのに、今日確認してみたら無料でダウンロードできるようになってました。あれ。


You can still enjoy an early Christmas gift to you, our loyal customers. If you have yet to get onto Poser 11.1 (available for both Poser and Poser Pro users), now’s the time to take advantage of this special upgrade opportunity.

Remember, if you’re already a Version 11 user, you’re good to go and you can download the 11.1 update right now at no additional cost. 

But for users of previous versions of Poser, upgrade now for only $49.95 regardless of the version you’re starting from (valid serial number required).


なんか、英語のメールで読み間違えていたようです。POSER 11ユーザーは11.1に無料でアップデート出来て、それ以前のバージョンを持っている場合はどんなに前のものでも50ドルほどでアップグレードできるという内容のだったようです。すごい勘違いをしていました。f(^^;)

とりあえず、11.1をインストールしてみました。SmithMicroのサーバーはいつも重くダウンロードするのに数時間かかるのが当たり前だったのに、今回は5GB分のコンテンツも十数分でDL出来ました。ようやくサーバーを改善したんでしょうか。




とりあえず、POSER PRO11.1にしてみてFBXのインポートをチェックしてみましたが、相変わらず改善はされていないようでした・・・


テーマ: CG ジャンル: 日記
Unity2017.2 FBXインポーター変更点
Unity



少し前のことなのですが、Unity2017.2からFBXのインポーターの仕様が変更されていて結構焦ったことがあったので書いておこうと思います。




とりあえず、説明用に即席でBlenderで4つのプロシージャルテクスチャを付けて、それをベイクしてイメージテクスチャに変換したボックスを用意してみました。これをFBXとしてエクスポートします。




そのボックスFBXをUnityにテクスチャと一緒にドラッグアンドドロップでインポートします。そうすると、Unity2017.1まではインポート時にMaterialsフォルダーが出来てマテリアルがそこに保存されていたのですが、Unity2017.2からはマテリアルがパックされたままなのです。




マテリアルのシェーダーなどを変えようとしてパックされたままのマテリアルを選択してもグレーアウトして変更することができません。




そのFBXをシーンに配置してからメッシュを選択して「Mesh Render」のところのMaterialsの項目を開くと、そのFBXで使用されているマテリアルを変更出来るようになっています。

しかし、梱包されているマテリアルではなく新規でマテリアルを用意しなくてはなりません。こんな方法でシーンに配置していちいち設定していたら面倒くさくて仕方ありません。

どうしてUnityはこんな面倒な仕様にしてしまったのかと思いつつ何か解決策がないものかググってみてもそれで困っている人もいないのかまるでヒットしませんでした。それでマニュアルを見たらあっさり解決しました。




FBXの項目は2017.1までは3つでしたが2017.2からはMaterialsという項目が追加されていて4つになっていました。

パックされているテクスチャとマテリアルを展開するのはオプションになったようです。Extract~を押すとそれぞれの展開先を自分で設定できるようです。







「Extract Materials」を押してmatsというフォルダーを作って展開するとそこにマテリアルが保存されます。これで一安心です。




Locationの項目から「Use External Materials (Legacy)」を選んでApplyを押すと2017.1までと同じくMaterialsフォルダとテクスチャがパックされているならTexturesフォルダが作られて、それぞれそこに展開されます。こっちの方が楽ですね。







確かに2017.2からのインポーターの変更はマテリアルをいじる必要がない場合はスペース的にはスッキリしていい感じがしますけどね。そういう要望もあったということでしょうか。

テーマ: CG ジャンル: 日記
最近の自分的Unity関連のまとめ
Unity



日頃、Unity関連のことは色々試したりはしているのですがブログに書くほどのことではなかったり、まとめるのが大掛かりになりそうなことは後回しに、という感じになってしまいます。

今まで避けていたTwitterですが(^^;)、ちょっと試したことやちょっとした動画を公開したい時などはTwitterだと手軽で便利そうだなと考え方が変わってきました。

YouTubeはちょっとしたものを上げにくいし、Pixivのうごイラは150フレームまでという制限があるので動画で見せたいものを形にしようとすると結構な制限なんですよね。Twitterならそのままそのツイートをブログに貼るだけでいいですもんね。

自分が知らなかった役立つ情報の収集にも役立ちそうでもあります。それで今年からTwitterを始めてみることにしました。

今回は、Unity関連で最近Tweetしたものをまとめてみようと思います。



「SabreCSG Level Design Tools」を試したものをGIF動画にしてみたものです。選択した面ごとに簡単にマテリアルを変更できるのもすごくいいですね。こういうレベルデザインは外部3DCGモデリングソフトではなくて、Unity上で出来ると気分的にも捗りそうです。

GIFは極力サイズを削ったのですが、Twitterではアップロードするとさらに圧縮されてしまうのですね。さらに拡大されて画像がかなり劣化してしまっていますね。(汗)


Unityも慣れてくるとアセットストアで扱われているアセットの有用性が分かってきますね。人気のアセットは有料でもやはり仕入れておきたいものです。じつは、去年はセールの度に有名所を結構購入しておきました。「Play Maker」も半額セールの時に購入しておきました。

最初の使用感想はメソッド名がC#で書くのと若干違っていたりプログラムの組み立て方をいつもと違うアプローチで考えないといけなかったりと戸惑うことも多く、これならコードを書いた方が早いんじゃないの、とか思ったりしたのですが、慣れてくるとどのゲームオブジェクトに何をさせているかが分かりやすく、さすが人気のアセットというのが分かります。本当にコードを一行も書かずにゲームを作ることも可能だと思います。

「Play Maker」のことはいつかブログに書きたいと思ってはいたのですが、後回しになってしまっています。他の購入したアセットもいつかは紹介したいと思っています。

ところで、Twitterで動画をアップする時はYouTubeと違って1コマ目がサムネイルになるんですね。「Play Maker」にはカメラに付けるフェードイン、アウトをさせるアクションがあったので試してみたのですが、そのまま動画にしてアップロードしてしまい気がついたら肝心な部分が真っ黒となっていました。今後は気を付けないといけませんね。f(^^;)



いちおう、動画のキレイなワンカットを貼っておきます。





Unityの「Post Processing Stack」も結構試したりしているのですが、なかなかブログに書く機会がありませんでした。

Shade3Dでレンダリングする時は光源の設定が結構大変で自然に見えるようにするには結構ややこしいい設定をしなくてはならないのですが、Unityでは無限光源1つで窓から入ってくる光を表現出来ます。リアルタイムレンダリングなので光源の角度も確認しながら出来るので楽ですね。ただ、影の設定はベイクとかもうちょっと勉強する必要がありそうです。




ちなみに、この教室は「Shade3Dで学校でも作ってみる」のときの教室です。

あと、一枚目の背景の街並みはShade3Dの付属のものをHDRにしてSky Boxに使っています。机とイスはそれぞれ一つだけFBXでUnityに渡してUnity側で複製して並べてあります。


今回は以上になります。

テーマ: CG ジャンル: 日記
カテゴリ
プロフィール