POSER PRO 11 SR8 リリース
POSER



POSER PRO 11のSR8がリリースされていました。まさかSR8までくるとは。




アップデートのリリースノートはSmithMicroのHPではなくフォーラムの方に載っていたのですね。

今回、SR8で気になったのは、
’・PNGs with alpha are now supported.The alpha is discarded, and the PNG is looked as a 24 bit image.’
「アルファ情報を含むPNGがサポートされるようになりました。アルファ情報は破棄され、PNGは24ビットイメージとして見えます。」という記述。

ようやく、POSERもPNG形式の透過グラデーションテクスチャに対応したのかと、早速SR8にアップデートしてDiffuse_ColorやTransparencyに透過グラデーションを付けたPNGをノードリンクして試してみたのですが、特に反映はされませんでした。どういうことなのでしょう??

SR7ではFBXインポートが改善したという記述があったので、今まで試したことのあるFBXモデルで試してみたのですが、前にも読み込み失敗をするものはSR8でもうまく読み込めず、とくに改善したようには感じませんでした。

それでもPOSERはどうもBlenderとは相性が良いらしく、POSERでうまく読み込めなかったFBXモデルもBlenderを介してエクスポートしたものだとうまくいく確率が上がります。

Blenderで作ったオリジナルフィギュアの「まいティーちゃん」はまだPOSERで試したことがなかったので、試しにインポートしてみてチェックしてみようと思いました。テクスチャ等のマテリアルの設定をしていたら、PNGで透過表現をしてあるテクスチャの透過が反映されていました。あれ?




POSER PRO 11にFBXでインポートしたまいティーちゃんです。即席なのでライトをDiffuse IBLにして陰影を無くしてトゥーンマテリアル調にしています。Geometric Edge Linesで輪郭線を付けています。(ちょっと画面が暗かったですね)







PNGの透過で描いてある頬の赤らみがPOSERでも再現されています。ちなみに、目の影もPNGの透過です。

ただ、この直前にPOSERのプリミティブの平面に透過テクスチャをあてがってテストした時は透過は反映されませんでした。

何が違うのか考えてみたら、まいティーちゃんのテクスチャはUV情報を持っています。もしかしたら、そういうことなのか試してみました。




Blenderで平面をUV展開して、そこに赤と透明でグラデーションにしてあるPNGテクスチャを貼り付けてFBXでエクスポートしたものをPOSERにインポートしてみたら透過が表現されていました。

では、何故POSERのプリミティブに直接張った場合は反映されないのだろうと思っていたら、カラクリがわかりました。




この平面に貼ってあるイメージは「red_transparency.png」という名前です。Diffuse_Colorにはその画像がノードリンクされているのですが、Transparencyには「red_transparencyRGB_ZERO」という見覚えがない画像が設定されています。



どうやら、インポートするオブジェクトに透過情報を持つPNGが使われているマテリアルがあれば、PNGの透過情報をグレースケールに変換したRGB_ZEROという語尾が付いたイメージを生成し、Transparency(透明度)に自動的にノードリンクさせるというようになっているみたいです。

そして、Diffuse_Colorにはアルファ情報が破棄された24ビットイメージとして見えるPNGが使われるというという話なのでしょう。ようするに、red_transparency.pngは透過情報を持っていても均一に赤いテクスチャ扱いというわけです。

まいティーちゃんのところにも語尾にRGB_ZEROが付いたグレースケールのテクスチャーが作られていました。

結局、Diffuse_ColorやTransparencyで透過PNGが扱えるようになったわけではないようです。Transparencyは今まで通り黒を使うということで変わらないようですね。もう少し詳しく書いておいて欲しいものですね。(^^;)

ついでに、今回インポートしたマイティちゃんですが一応動かせるのですが、じつは中身が凄いことになっています。



何故かマテリアルごとにフィギュア扱いになっていて、各マテリアルに全身のボーンが付いてしまっています(汗)。Unityにインポートして使っていたものと同じFBXなのですが、どうなっているのでしょう?

POSERでのFBXはファイルごとに安定感がないですねぇ。いつか、解決する日が来るのでしょうか。


スポンサーサイト
テーマ: CG ジャンル: 日記
XBOX One Controller
OS & 周辺機



先日、GeForce GTX 1060 OCを購入してポイントが5千円ぐらい貰えたのですが、そのうちの半分ぐらいが貰ってから20日ほどで失効してしまう期間固定Tポイントでした。

とくに急いで欲しいものがなかったのですが、せっかくなのでポイントが失効しないうちに何か必要なものはないかと考えてみました。そこで、思い浮かんだのはXBOXコントローラーでした。

じつは、私にはだいぶ長きに渡ってゲームをする習慣がありませんでした。小、中学あたりはそれはもうTVゲームは大好きで当時はファミコンに夢中になってました。

しかし、大学あたりからは音楽に夢中になっていてそれ以外のことには随分疎遠になっていました。ゲーム機はかろうじてPS2だけは持っているのですが、6年前プラズマテレビを購入してから黒帯が画面焼けしてしまうのではないかと言う心配から一度もやってませんね。

去年、Viveを購入してSteamと言うものをインストールしなくてはいけないということで入れてみたのです。だいぶ前からPC用のゲームって店であまり見かけないのでどこで売っているかなと思っていたのですが、こういう感じで売っていたのですね。

Steamでは年に何度か大規模なセールなどやっていて、あまりにも安くなっていたりするのでちょこちょこ買ってみたりするようになりました。しかし、手持ちのコントローラーで操作してみると何かボタンの割当がおかしいのです。

自分の持っているPC用のコントローラーは7、8年ぐらい前にドスパラで購入したELECOMのJC-U2912FBKと言うものでした。確か千円ちょっとでポイントもあったのでいつか使うこともあるかなと買っておいたのですが、今まで使う機会がありませんでした。




ゲームのマニュアルではA・B・X・Yボタンで説明されているのが多いわけですが、どうも単純にこのコントローラーの1234ボタンがそのまま対応していないようなのです。ゲームごとに決定ボタンも違っているという感じです。

「エレコム ゲームパッドアシスタント」というのを使うとアプリケーションごとにボタンの設定変更が出来るので、そのゲームのボタンと一致させようとするのですが、これがまた手がかかるのです(-"-;)。それで、ゲームをやる前に疲れてやめてしまうのです。f(^^;)

じつは、Windows用のゲームはマイクロソフトのXBOXのコントローラーが標準となっていると言うことを最近知りました。どちらもマイクロソフトが作っているのもで当たり前といえば当たり前ですね。Steamで扱っているゲームも標準でXBOXコントローラー対応となっているので、XBOXのコントローラーを使えばいちいち煩わしい設定をしなくても良いというわけです。

しかし、コントローラーに6千円というのは結構ためらうお値段。でも、ポイントならためらう必要はないということで、ヤフーショピングでポイント5千円分に千円足して購入してみることにしました。




Microsoft純正XBOX One Controller、PC用USBケーブル同梱の4N600003と言うもので5,980円。箱は思っていたより小さ目です。




このコントローラーは無線でも使えるらしいですが、電池を入れ替えする手間を考えれば有線で全然構いませんね。

買う前に少し調べてみたのですが、XBOXのコントローラーはボタンの押し心地が悪いとか、何か当たりハズレとかがあるような感でした。使ってみたら自分としては全然気になりませんでした。それより、本当に煩わしいボタン設定無しで普通に遊べることに驚きました。(^^;)

コントローラーの上ボタンとかに機能が割り振られていたりするゲームがあったりしたのですが、そのときは意味が分かりませんでした。なるほど下の十字キーは方向操作ではなく、ボタンの機能としても使えるということだったんですね。ゲームエンジンを触るものなら一つはMicrosoft純正コントローラーを持っていないといけないようですね。

しかし、ようやくPCでゲームを楽しめるようになったのですが、いったんゲームエンジンの勉強やらモデリングやらを始めると、気が付けばゲームをする時間などなくなってしまうのですよねぇ。


テーマ: パソコンな日々 ジャンル: コンピュータ
GeForce GTX 1060 6GB OC の購入
グラフィックカード



メインPCのグラフィックカードをGeForce GTX 660 OCに変えてからもう4年も経ちました。その頃はまだ3DCGも本格的にやっていなかったしゲームもしなかったのでそのグラカの性能でも自分には十分足りてました。

しかし、 去年Viveを購入してVR環境を導入してさすがにもうGTX 660ではムリがあると感じていました。VR環境を快適に楽しむためには「VR Ready」というVR推奨スペックを満たしている必要があるわけです。

自分のPCはCPUとメモリなどは基準を満たしていましたが、グラカだけは足りていませんでした。

現時点で、「GeForce GTX VR Ready」を満たしているグラカは、性能順に上から並べると、

GTX 1080 Ti (現在最高峰)
NVIDIA TITAN X
GTX 1080
GTX 1070
GTX Titan X
GTX 980Ti
GTX 980
GTX 1060
GTX 970 (VR Ready最低基準)

こちらのサイトを大変参考にさせてもらいました)

となります。しかし、VR Readyともなるとかなりの性能を求められるためにお値段もそれ相当に跳ね上がります。何が何でもハイエンドというならばGTX 1080 Tiとなりますが、予算はだいたい10万円ぐらいになりますねぇ。

コスパ的に人気があるのはGTX 1070と1060でしょうね。新品市場価格では、1070は5万円台、1060(6GB)は3万円前後。しかし、正直言って比較的に安価な1060でもグラカに3万円でも自分的にはキビしすぎます(-"-;)。

中古で1060が2万円ぐらいなら出してもいいかなと、ちょっとヤフオクでのGTX1060(6GB)の出品をウォッチングしていたんですが、落札価格はだいたい2万6~7千円ぐらいですね。送料を合わせれば送料無料の新品を買ったほうがいい気もします。しかし、やはり3万円はキビしいです。

GTX 970が中古で1万円ぐらいならそれでいいかとも思いましたが、こちらは大体1万7千円前後ぐらい。970のメモリは4BGですが実際は3.5GBと考えていた方がいいらしいですね。何か過去に3.5GBを超えると激重になる仕様が問題になったことがあるらしく中古で1万円台後半でもなんか躊躇してしまいます。

1060の3GBの方は6GBより4千円ぐらい安くなってますが、やっぱりVR対応で新調するならメモリは6GB以上はあって欲しいし、という感じで購入する決め手がなくループしていました。

そんなとき、NTT-X Store Yahoo!店が「MSI NVIDIA GeForce GTX 1060 6GB OC」を新品なのに26,980円で売り出しているではありませんか。

何でも、「ITXミニケース向けに放熱設計されたショート基盤のグラフィックスボード」ということで冷却ファンが一つで全長が小型化されているモデルらしいのですが性能は同じ、というかOCなので若干性能はアップしているよう。

しかも、その日は月末の25日だったのでポイントが18倍で5千円ぐらい付くので実質2万2千円ぐらいで買うことが出来るチャンスでした(送料無料)。もう、これをきっかけにするしかないと思い購入することにしました。



外箱


中身

「MSI NVIDIA GeForce GTX 1060 AERO ITX 6GB OC」です。箱はちょっと小ぶりですね。




ディスプレイ端子は、HDMIx2、DisplayPortx2、DVIx1と5ポートもあります。親切に各端子にはキャップが付いています。使わないところには蓋をしておけば埃を防げますね。

ディスプレイ端子が5ポート付いているのでモニターを5台繋げられるのかと思ったら、同時に使用できるのは4台までみたいです。




このグラフィックカードには何やらマシーンチックな金属のパイプがちらりと見えています。




箱裏の説明では小型でもファンが一つでも効率よく冷却するシステムが施されているようですね。




GTX1060の全長は28cmぐらいあるようですが「MSI GTX1060 AERO ITX」の全長は18cmぐらいです。取り外したGTX660と並べてみたら基盤は同じサイズのようですね。




それでGTX660 OCとGTX1060 OCでベンチマークをして比較してみました。まず、GTX660 OCで「3D MARK Basic Edition」の「Time Spy」で測ってみました。


- 計測PCスペック -
GPU NVIDIA GeForce GTX 660 OC
CPU Intel Core i7 3770
Memory 16GB
OS Windows 10 Pro 64-bit




結果は1377でした。もう、ほとんどカクカクのコマ送り状態でしたね。FPSは平均7前後ぐらいでした。

次はGTX1060(6GB)で測ってみました。


- 計測PCスペック -
GPU MSI NVIDIA GeForce GTX 1060 AERO ITX 6GB OC
CPU Intel Core i7 3770
Memory 16GB
OS Windows 10 Pro 64-bit




こちらは、4060でした。コマ落ちしているようなところは感じなかったですね。終始、滑らかでした。CPUテストの方はグラカに関係なくカクカクになりましたけども。

さて、本題の「VR Ready」です。「MSI NVIDIA GeForce GTX1060 AERO ITX 6G OC」で「SteamVR パフォーマンステスト」をした結果です。




2万円台で得られた性能としてコストパフォーマンス的には十分な合格点ですね。

ちなみに、GTX660 OCでも測っておきました。




まるで息をしていない状態ですね・・・(汗)。バリバリのVR使用不可の烙印です。90fps以下が94%とは。逆に6%は届いていたのかとか思いますけどね。(^^;)

ただ、このグラカでもViveでVRは見れましたし、UnityでもVRで使えました。

ただ、Unityではクオリティの設定がFantasticレベルでアンチエイリアスが「8x Multi Sampling」だと激重で全く無理でした。クオリティの設定はGoodレベルでアンチエイリアスが「4x Multi Sampling」ぐらいであれば軽い開発ぐらいには使えてました。

これでこのPCでも、もうしばらくは時代に付いていけそうです。


テーマ: パソコンな日々 ジャンル: コンピュータ
Unityで揺れモノを風で揺らす表現
Unity


「Unity揺れ物スクリプト」でも揺れモノを風で揺らす表現が出来たらいいなとちょっと取り組んでみました。

ユニティちゃんアセットの「SpringBone」は「RandomWind」というスクリプトで揺れモノを風で揺らす表現をさせることが出来ます。

「RandomWind」も参考にさせてもらい、パーリンノイズを使って「Unity揺れ物スクリプト」に揺れモノが風で揺れる機能を追加する「YureWind」スクリプトを書いてみました。


YureWind.cs
using UnityEngine;

  namespace Yuremono {

      public class YureWind : YureManager {

        [SerializeField, Range(-3, 3)]
        private float WindForceX = 0.0f;
        [SerializeField, Range(-3, 3)]
        private float WindForceY = 0.0f;
        [SerializeField, Range(-3, 3)]
        private float WindForceZ = 0.0f;
        [SerializeField, Range(1, 3)]
        private float WindSpeed = 1.7f;
        [SerializeField, Range(0.001f, 0.01f)]
        private float noiseStrong = 0.004f;
        public bool moreDynamic = false;

        public bool strongWind = false;
        [SerializeField, Range(-3, 3)]
        private float strongWindL = -2.0f;
        [SerializeField, Range(-3, 3)]
        private float strongWindR = 2.0f;
        [SerializeField, Range(1, 2)]
        private float WindCycle = 1.0f;

        float timer = 0;
        float timer2 = 0;
        float wfx;

        void Start() {
            wfx = WindForceX;
        }

        void Update() {
            if (moreDynamic) {
                timer += Time.deltaTime;
                if (timer >= 0 && 3 > timer)
                    WindForceX = Mathf.MoveTowards(WindForceX, wfx * 0.8f, 0.002f);
                else
                if (timer >= 3 && 5 > timer)
                    WindForceX = Mathf.MoveTowards(WindForceX, -wfx * 0.8f, 0.05f);
                else
                if (timer >= 5 && 6 > timer)
                    WindForceX = Mathf.MoveTowards(WindForceX, wfx, 0.1f);
                else
                    timer = 0;
            }
            if (strongWind) {
                timer2 += Time.deltaTime;
                if (timer2 >= 0.0f && 0.1f * WindCycle > timer2)
                   WindForceX = strongWindL;
                else
                if (timer2 >= 0.1f * WindCycle && 0.2f * WindCycle > timer2)
                   WindForceX = strongWindR;
                else
                    timer2 = 0;
            }
        }

        void LateUpdate() {
            float pnoise = Mathf.PerlinNoise(Time.time * WindSpeed, 0.0f) *
            noiseStrong;
            for (int i = 0; i < springBones.Count; i++)
                springBones[i].springForce = new Vector3(pnoise * -WindForceX,
                pnoise * WindForceY, pnoise * -WindForceZ) * WindSpeed;
        }
    }
}
(YureWind.csは、https://yahoo.jp/box/_e4KIDに置いてあります)


「YureWind.cs」を使うためには、nscripter.comさんのところで公開されている「Unity揺れ物スクリプト」が必要です。

この「YureWind」スクリプトは「YureManager」スクリプトと同じところにアタッチして使います。YureWindクラスはYureManagerクラスをスーパークラスとして継承させるかたちにしています。




揺れ方をカスタマイズできるように色々盛ってみました。

「Wind Force XYZ」はXYZ各軸に沿って風の吹く方向を変えることが出来ます。ここの値はグローバル座標なのでキャラクターを回転させれば揺れ方も変わります。

「Wind Speed」はパーリンノイズの周期を変化させることで風速を変えているように見せます。「Noise Strong」はパーリンノイズの値幅を変えることで揺れ幅を抑えたり、より大袈裟な動きにしたい時に使います。

だだ、これだけだと一方向に吹いたきりになり、動きが少し物足りないと思います。それで、2つの風揺れパターンのアルゴリズムを付けてみました。

「More Dynamic」にチェックを入れると、例えば右向きに吹いていた風が左向きに変わってまた右向きに戻るという動きになります。この時、ループさせるために実行前に設定した「Wind Force X」の値をキャッシュしておいて使用しているので実行中はインスペクターから「Wind Force X」の操作は出来なくなります。

「Strong Wind」にチェックを入れると、強風でバタバタと髪や服が左右になびく様な動きになります。「Strong Wind LR」の値で「Wind Force X」を0.1秒ごとに交互させています。この値をLは-1、Rは3などと平行にずらせば斜め前から吹く風も表現できます。「Wind Cycle」を大きくするとバタバタする速さは遅くなります。

「YureWind」を使ったデモ動画を作ってみました。髪の長いキャクターの方が分かりやすいかと思い、カレンを使ってみました。今回はスカートはクロスではなくボーンを使っています。


YouTubeの動画元はこちらです。


ImgurでGIF動画にするには15秒以内にしなくてはならず、そのため時間ぴったりに一連の動作が収まるようにスクリプトから「YureWind」の値を操作しています。




いい機会だったのでカレンの直そうと思っていたところの修正をいくつかしました。何箇所かのメッシュの修正と髪のテクスチャを描き直しました。シェーダーは「ユニティちゃんトゥーンシェーダー」に変えました。透過テクスチャを使わなくても眉が透けて見えるようになりました。




あと、髪ボーンの追加です。はじめ、カレンの後ろ髪のボーンは一列で4本だけでした。それはMMDモデルなら一本のボーンでも板状の剛体を付ければ髪の幅をカバーできると想定していたからでした。




しかし、「Unity揺れ物スクリプト」ではコリダーは球状のみなのでボーン一列では腕にコリダーを付けても届かないので貫通しやすくなってしまいます。

より自然に風でなびかせるためにも髪の束をそれぞれ独立させておいた方が良いかなとも思いました。それで後ろ髪のボーンを大幅に増やしました(4本→44本)。

今回試してみて、よりなめらかな揺れをさせるためには一列8本ぐらい必要かとも思いました(44本→88本ぐらい)。ゲーム用ならこのままで妥協も出来ますが映像用となれば多くするべきでしょうね。

「YureWind.cs」については「Unity揺れ物スクリプト」の製作者様同様、私も権利は主張いたしません。ご自由にどうぞ。


~後日追加~


pixivのうごイラに110フレームほどのショートループ版を投稿していたのですが、こちらの方が画質も良く、揺れ方も15秒版とは違う感じでうまくまとまってくれたので、もし良かったらこちらも観てみて下さい。
テーマ: CG ジャンル: 日記
Unity、クロス、ボーン、試行錯誤
Unity



前回触れました、まいティーちゃんのスカートのUnity上での挙動の件にについて書いておきたいと思います。

とりあえず、MMDでも動かせるようにスカートにはボーンを付けていましたが、クロスシミュレーションの方が自然な動きになってくれそうかなと思い、Unityではクロスコンポーネントを使う予定でした。




まず、スカートにクロスコンポーネントをアタッチして、スカートの頂点にクロスコンストレイントを設定します。そして、足と腰にコリダーを設定して動作テストしてみました。




そしたら、スカートのメッシュがとんでもないことに!?

まさに、メッシュの爆発状態ですねぇ(汗)。前にカレンでクロスを使った時は普通に使えたのですけど。あの時のUnityのバージョンは5.4でしたが今回は2017です。それが原因なのか?

5.4は5.6を入れる時に上書きしてしまったのですが、2017を入れる時は念のため5.6を残して置いたので、そちらでも試してみたのですがメッシュは同じく崩壊状態でした。

それで、もっとシンプルなモデルで試したらどうなのかと、Blenderで簡単なモデルを用意してFBXで書き出して試してみたら、やはりクロスを設定したメッシュは形状が崩壊してしまいます。

まいティーちゃんは一からBlenderで作ってあったのですが、カレンはShadeで作ったものです。まさかそれが原因だったりするのかと、Shade3Dでも同じようなテストモデルを作って試してみたら、そちらは普通でした。




左の緑のがShade3Dで作ったもの、右の青いのがBlenderで作ったものです。それぞれ、アニメーション付きのFBXで書き出したものをインポートしたものです。




GIF動画にしてみました。クロスの設定は3つとも同じです。セッティングは「Stretching Stiffness」、「Bending Stiffness」が共に1。「Damping」が0.5です。

Shadeで作ったものは元の形状を保っているのですが、どういうわけかBlenderで作ったものはメッシュの元の形状を保てず伸びきってしまってます。理由は分かりません。(汗)

FBX形式は何かと相性とかが問題になったりします。一応、Autodesk FBX Converterでバージョンの変換とかも試してみたのですが改善はしませんでした。

では、FBX形式じゃなかったらどうなのだろうと、Blenderから傘の部分だけOBJ形式で書き出して、Unity上で左の青いモデルを複製して、その傘の部分を付け替えてみたものが真ん中の赤いメッシュです。こちらは形状を保っています。

とりあえず、Blenderで作ってあってもOBJ形式のメッシュならメッシュの破綻はないようです。しかし、カレンはShadeで作ってあってもFBXのエクスポートはBlenderからしていました。元のメッシュがどのソフトで作ってあるかが関係しているのか、はたまた自分の環境だけそうなるのかは分かりません。

それでとりあえず、まいティーちゃんのスカートのみをOBJ形式でインポートして取り替えてクロスコンポーネントを付けてテストしてみました。

形状は保てるようになったのですが、今度は黒いノイズが現れる様になりました。




スカートは溝もメッシュで段差を付けて作っておいたのですが、そこの頂点が近すぎるために揺れる時に奥の頂点が表側より前に出たりするのが原因のようでした。




それで、溝の段差を無くして単純なメッシュ構造に変更してみました。モデラーとしては溝も凝ってみたのですが、揺らしてみて不都合となるようなら修正せざるを得ませんね。動き重視です。(あと、若干全体的に膨らませました)




黒いノイズは出なくなりましたが、なんか想像していた動きと違っていました(もっと形状を維持してくれるのかと)。しかも、なんか動作も少し重いような感じもありました。それで、クロスは諦めてボーンでやることにしました。




スカートの前のボーンは始めは一本だったのですが、一本だと横に振られた時に大袈裟に動いてしまうので、ボーンを2本に変更して影響を分散させることにしました。

スカートの場合、複数のボーンの影響を受けた方がより自然になるということでウエイトは自動でやり直しました。こういうのはケース・バイ・ケースですね。

使わせてもらっている「Unity揺れものスクリプト」はシンプルでコリジョンと自然な揺れを表現できる素晴らしいスクリプトです。ただ、剛体形状が球のみなので、ぶつかった角度に対して素直に跳ね返るし隙間も出来やすいので、スカートのように平面的なものを表現したい時に少し考えなくてはならなくなります。

MMDだとスカートには、広がっても突き抜けにくく前後に揺れやすい板状の剛体を使うのが一般的なので少し困りました。




そこで、腿のところと股間辺りの2箇所にコリダーを置いてスカートのボーンをなるべく前に弾くようになるようにしました。片側の足を上げた時、反対側のスカートも前方に動くようにすることでうまくごまかそうという訳です。




股間のところのコリダーが無いとメッチャ左右に揺れてしまうことになり後ろ側に比べると結構前だけ横方向に大袈裟な動きになってしまいます。それよりはまだマシに見えるかなという感じです。

走らせることを前提としているのならば、お椀型のようにスカートの前方をもっと広くして足から離れるようにしたらもう少しすんなりいったかもしれません。ちょっと、このキャラには将来的にはギターとかも持たせてみようかなとか思っていて前面はあまり広がらないようにしておいたのです。

Blenderで作ったメッシュは本当にUnityのクロスシミュレーションと相性が悪いのか気になります。ググっても同じような症状になるという話題は見かけませんでしたので、自分環境なのでしょうかね。

今思えば、スカートをShadeで作ってクロスを試してみれば、また印象が変わるのでしょうか。

先程の傘モデルのように、同じ「Stretching Stiffness」、「Bending Stiffness」が共に1の設定でも、緑のShadeの傘は元の形状を保っていますが、赤いBlenderの傘は垂れてなんか柔らかい感じがします。クロスが垂れないのならShadeで作り直してみる価値もあるかもしれませんが、今すぐには気力が湧きませんね。(^^;)

揺れものは一筋縄ではいきませんねぇ。走らせるのならホットパンツとかならもっと楽だったとは思いますが、何事もやってみないと分かりませんからね。

あと、Unity 2017はインスペクターからは日本語入力が出来なくなってしまいましたね。必要があれば、メモ帳に書いてからコピペという感じです。次のアップデートでは対応してくれるとよいのですが。


~後日追記~

BlenderからスカートのみをFBXでエクスポートしてクロスを試してみたら、OBJと同様でメシュの崩壊はありませんでした。しかし、同じく柔らかくて垂れますね。

関連記事:

Unityでオリキャラのモーションテスト

テーマ: CG ジャンル: 日記
Unityでオリキャラのモーションテスト
Unity



さて、Blenderで作り上げたオリキャラをUnityにFBXでインポートしてみた図です。Unity 2017使ってみました。




そろそろ、このキャラクターの名前を決定しておくことにしました。

その名も『桃実沢まい』。小柄で華奢な割にはけっこう力持ち、チャレンジ精神が旺盛で身体能力も並外れているところから、周りからは「Mighty」をもじって「まいティーちゃん」と呼ばれている、という感じで。(^^;)




シェーダーは「ユニティちゃんトゥーンシェーダー2.0」を使ってます。今回は、前髪に隠れている眉を透けて見えるようにしてみました。ただ、眉と髪が同じ色だと境目が分からなくなってしまうので、より効果的にするために眉のテクスチャに輪郭線を描き足しました。




設定の仕方は、隠れているもの(眉)のシェーダーを「StenciMask系」に、透かして見せるもの(前髪)のシェーダーを「StenciOut系」にすると言う具合です。




「ユニティちゃんトゥーンシェーダー2.0」ではポリゴンの片面表示と両面表示の設定が出来るようになってます。デフォルトで「BACK」になっていてスカートの裏側が黒かったのですが「Cull Mode」をOFFにすると両面表示になりました。




Blenderでモデルを作ってモーションを付けてもUnity上でどう動いて見えるかは実際にUnityで動かしてみないと分かりません。それで、まいティーちゃんにBlenderでいくつかアニメーションを作ってUnityで動作チェックしてみました。


今回もImgurのGIF動画にしてみました。

元のYouTube動画はこちら
https://youtu.be/kiVnTLmzjUc


前に作った動画の画質が悪くてどうしたものかと思っていたらブラウザにもよるみたいですね。普段IE11を使っているのですが、Chromeで見てみたら普通に綺麗でした。なんででしょう?




一応、モーションの解説的なものを。まず、「待機」です。ここから各モーションへ分岐するということに。

キーボードのキーにも各モーションを割り当てていたのですが、動画的にUIボタンも付けてみました。「走る」と「ピース」はボタンを押したら3秒間モーションを再生するとしてみました。




「走る」です。今まで走るモーションはいろいろなソフトでチャレンジしましたがかなり苦戦したものです。意外にもBlenderが一番付けやすかったですね。Blenderだとボーンコンストレイントを簡単に設定できるので今後はモデリングだけではなくモーション付けにも大いに役立ってくれそうです。

髪やスカート等の揺れモノは今回も「Unity揺れものスクリプト」を使わせてもらってます。リボンの動きがちょっとコミカルで面白いですね。やはり、手付けではこんなに自然な動きは付けられません。

ただ、難航したのはUnity上でのスカートの挙動です。結局、かなり試行錯誤と修正が必要でした。これについてはまたの機会に。




「がんばるぞい!」。ではなく、「よし!」です。(笑)




「おー!」。本当は「やったー!」のつもりでしたが思っていたよりモーションが短かったので「おー!」に変更しました。(^^;)

髪用として左右の肩にコリダーを付けていますが、左腕を上げたとき髪が貫通しないように左腕にさらに2つコリダーを追加してあります。うまくいったようです。




「ピース」。実際にピースする時は薬指と小指はぎっちり握ってないんですよね。あと、腰に手を当てるときは腰骨の手を置く方が少し上がるのが自然です。これらも作った後に気がついて修正です。




「ユニティちゃんトゥーンシェーダー」だとリアルタイムでのベタ塗りの影がいい感じですね。逆光の演出も使えそうです。




せっかくなので、「走る」の別角度を「うごイラ」にしてみました。



関連記事:

Unity、クロス、ボーン、試行錯誤

テーマ: CG ジャンル: 日記
カテゴリ
ini-T MUSIC SKY
プロフィール