ZBrushへのアップグレード価格は?



ZBrush Coreを使い始めてZBrushに興味を持つようになって気になるのは、ZBrushCoreからZBrushにアップグレードできるのかです。

せっかく、ZBrush Coreを持っているのですからその分新規で購入するより価格がお安くなれば嬉しいです。ちょっと、Pixologicのサイトで確認してみました。

結論は、ZBrush 4R8がリリースされた後から可能だそうです。気になる割引価格は、定価より100ドル分が割引されるようです。(PayPalでの支払いも可)

現在、ZBrush 4R7の定価は795ドルなのでZBrushCoreユーザーなら695ドルで購入できるということですね。おそらくこれは、Pixologicの公式サイトから直接ダウンロードで購入する場合であって日本の代理店ではどう扱われるかはまだ分かりません。(はたまた、R8の価格はR7と同じなのかもまだ分かりませんが)

アップグレードしてもCoreの使用継続は可能であるが、他の誰かに使用権を譲ってはいけない、Coreからのアップグレードではシングルユーザーライセンスのみでボリュームライセンスとフローティングライセンスは対象外とのこと。

しかし、ZBrush 4R8のリリースは結構前から発表されていたみたいですが、いつリリースされるんでしょうね。その時だけでも円高になってくれたらとか願ったり。(^^;)





スポンサーサイト
テーマ: CG ジャンル: 日記
ZBrush Coreでリアル系スカルプト



ZBrush Coreでリアル系女性モデルのスカルプトにチャレンジしてみました。今回は上半身までということで。




球体から捏ね始めて、大体丸一日でこのぐらいに仕上がりました。総ポリ頂点数は何と1,673,000です。(@o@;)




髪は雑ですがこれぐらいにしておきましょう。本家ZBrushだと髪用のブラシも色々あるようですがZBrush Coreでは本家ZBrush用のブラシを使うことは出来ません。でも、ZBrush Coreの基本ブラシだけでもやろうと思えば色々出来ますね。




まつ毛もあった方がいいと思ったので一本一本独立した形状で作ってみました。普通はこういうのは透過テクスチャなどで表現するところですがZBrushCoreだとそういうのは出来ません。意外にも、ZBrushでも頂点一つだけを動かす事もできるのでローポリ形状をちまちま編集しました。








昔、本気で絵の勉強をしていた頃もあり、人体解剖学の勉強もさんざんやっていたのですが(定価で一万円もする医学生向けのネッター解剖学図譜も購入したぐらい^^;)、知識として知っていても絵ではなかなかうまく表現が出来ませんでした。それで、満足出来るレベルに至ることが出来ず、ずっと好きだった絵を描くことをいつしか諦めてしまったのでした。

それでも、絵がうまく描けなくても3DCGスカルプトでならうまく表現出来るかもしれないとか思わせてくれます。

ポリゴンモデリングでリアル系はあまりやる気も出なかったのですが、スカルプトで形を作ってリトポロジーすればものすごく時間短縮と効率化ができそうですね。可能性が広がります。

今まで3Dモデリングはポリラインの流れを考慮に入れつつしないといけませんでした。それは結構な制約を抱えながらモデリングをしなくてはなりませんでした。しかし、ZBrushではポリラインなど意識しなくてもよく、本当に自由に絵を描く様にモデリングが出来ます。

ZBrush、想像以上に3Dモデラーにとっては夢のようなツールですね。はじめはZBrushは難しそうで買っても使いこなせないかもとか思っていたのですが、その心配はなさそうです。本家ZBrush使ってみたいなぁ。

しかし、ZBrushはだいたい10万円ぐらいですかぁ。すぐにポンと出せる金額ではありませんが、やれることと比べたら安いぐらいなのかもしれません。今すぐ必要というわけではありませんが、将来的には購入したい気になってきました。

ZBrush4R8が近いうちにリリースされそうな感じですね。その時、セールでもやってくれれば飛びつくかもしれません。(^^;)

久しぶりにうごイラにしてみました。







テーマ: CG ジャンル: 日記
ZBrush Coreでフィギュア捏ねてみた



さっそく、入手したZBrush Coreで何か作ってみようと思いました。スカルプトで作るのならリアル系にチャレンジしてみたいところですが、まずZBrush Coreの操作に慣れるために作り慣れているアニメ調のフィギュアにしてみようと思いました。




で、こちらが初めてZBrush Coreで作ってみたフィギュアです。下描き無しで直感で捏ねてみました。




ZBrushの操作は独特だと聞きますが確かにそうですね。今までポリゴンモデリングで3Dフィギュアを作る時は、メッシュラインの貼り方とかポリゴン数とか気にしながらポリ頂点を増やしてひたすら調節してという感じです。

ZBrushではポリゴン数とかそんなに気にしなくてよくて、ほんとに粘土感覚で捏ねてヘラで切れ込み入れたりとポリゴンモデリングとはまるで感覚が違いますね。どちらかと言うと絵を描く感覚に近いかもしれません。




本家ZBrushは触ったことはありませんが、ZBrush CoreのUIはとてもシンプルで使いやすいようになっています。ZBrush入門者でもすぐ慣れますね。マニュアルには「ZBrushCoreで学んだ知識はZBrushにそのまま適用できます。」と書いてあります。ほとんど変わりないのでしょうかね。




ポリゴンモデリングは込み入ってくると途中で大きな修正とかやり直しとか厳しくなってきますが、スカルプトだと大胆に全部投げ捨ててまた最初からやり直すというのも心置きなくできます。(笑)




体は何やら宇宙服っぽいですが、これはまだZスフィアの状態です。ZBrushでは身体のような形態を作ろうとする時はZスフィアというものをつなぎ合わせたり伸ばしたりしながら大まかに形作ってからスカルプト可能なダイナメッシュに変換してスカルプトするのが一般的のようです。(ようするに、まだ体は作ってません^^;)




色を塗ってみるとこんな感じです。しかし、このテクスチャーはエクスポートは出来ませんが。

ちなみに、このローポリ風キャラクターの頭の部分だけでポリ頂点数は合計423,150にもなります。見た目に反して超ハイポリとなっております。しかし、これだけの頂点数を扱ってもサクサクとモデリングできるしフリーズすることもない、噂通りZBrushすげえです。

(そう言えば今までZBrushは32bitで、現在64bitはプレリリース版で使えるようになって次期バージョンで正式に64bitに対応するようなことだったような気がしますが、このZBrush Coreは64bitフォルダーにインストールされているということは64bit版みたいですね。)




ZBrushでは独立したメッシュパーツのことを「ツール」と呼ぶようです。各ツールは「サブツール」というかたちでそれぞれ独立させて管理が出来ます。また、同一ツールであっても「ポリグループ」というかたちで独立させて扱うことも出来ます。

ZBrush Coreには日本語マニュアルが付いていますが簡単な操作の解説で30ページぐらいしかなく、各機能などの解説は載っていません。




でも、親切なことにZBrushでは各アイコンにCtrlキーを押しながらポインターを合わせるとその機能の説明が表示されるようになっています。

これはデフォルトでは表示されませんが、「環境設定」タブの「クイックインフォ」をアクティブにして、「言語」の「オプション」の「ノート表示」をアクティブにすると表示されます。これで、マニュアルがなくてもなんとかなるかもです。

今までためらっていたスカルプトですが、これは思っていた以上に革新的ですね。自由度が高く人物モデリングなどはポリゴンモデリングより簡単かもしれません。しかし、ポリゴンモデリングなら簡単に出来ることがなかなか出来ないという歯がゆさもあります。

大幅に機能が制限されているはずのZBrush Coreですが、それでもBlenderと併用すれば十分3Dモデル作りには重宝しそうです。本家ZBrushだともっとすごい機能が満載で更に自由度が高いモデリングが出来るんでしょうね。結構興味が湧いてきましたが、当面はZBrush Coreでスカルプトの練習を積みたいと思います。




テーマ: CG ジャンル: 日記
Intuos 3Dの購入とZBrush Coreの入手



思わず、Wacomのペンタブレット「Intuos 3D」を購入して、バンドルの「ZBrush Core」を入手してしまいました。




きっかけは、Yahoo!Japanの期間固定Tポイントの期限が迫っていたことでした。期間固定ポイントはTポイントなのですがコンビニなどでは使えず、Yahoo!Japanでしか使えません(知らなかった)。とりあえず、ポイントが無駄にならないように何か探すことに。

そしたら、今月中は会員ポイント13倍のチャンスとかやっているわけです。こうなったらこれを機に奮発してペンタブを買い替えてみようかなと思ってみたのです。(まんまとポイントに釣られてしまいました^^;)

せっかくペンタブを買うのなら気にはなっていた「ZBrush Core」がバンドルされている「Intuos 3D」にしてみようかなと思った次第であります。購入価格は\19,200。




私の使っていたペンタブレットは14~15年前から使っているWACOMのET-0405A-Uという年代物でした。Windows2000時代、4:3モニターが主流の頃のものです。もう保護フィルムなど削れ過ぎて使い物にならず外してしまっています。(^^;)

これを16:9サイズに領域を狭めて1920x1080サイズのモニターに対応していました。しかし、その後マルチディスプレイにしたときサブモニターに出るサブパレットなどを選択するのが不便で2画面に対応するマッピングにしたのですが、Sサイズをさらに半分の領域で使わねばならなくなっていました(上の画像の赤の枠線の左側がメインモニター用(約6cm)、右がサブモニター用。黄色が本来の領域)。

これは、とても狭いです。(--;)

さすがに、これはもう買い替えねばならないと思ってはいたのですが、きっかけもなくズルズルと使い続けていました。それで、このTポイントをきっかけにすることにしました。




こちらがニューペンタブ「Intuos 3D」。作業領域はMサイズでET-0405Aの2倍近くあります。このパッド部はタッチ対応で指のジェスチャーでスクロールさせたり回転、ズームもできたりします。ペンタブでこんなことも出来るとは時代はこんなに進んでいたのですね。(^^;)




あと、4つのファンクションキーやマッピングサイズはアプリケーションごとに設定することができます。例えば、Blenderなら左上のキーに「Shiftキー」と「マウス中ボタン」を割り当てれば3Dテクスチャペイントをペンタブですることも容易になりますね。

モニターの選択も「マッピング画面切り替え」をファンクションキーに割り当てておけば、ちょっとサブモニターに用があるときもマッピングを切り替えれば対応できます。これで、安心してタブレットの広さをフルサイズで使うことができます。

一応書いておきたいと思いますが、はじめこのペンタブの設定をしようと思いワコムタブレットのプロパティを開こうとすると、「タブレット ドライバが見つかりません」とメッセージが出て開くことができませんでした。どうもUBSハブ経由でつないでいたことが原因だったようで、PCのUSBに直接つないだら解決しました。




このような感じで、「ZBrush Core」を入手してしまいました。インストールしてみてのファーストインプレッションは、これまた独特なUIですねぇ。Blenderだって初めは驚きましたが今では慣れましたから大丈夫だとは思いますが。

本家「ZBrush」と比べ「ZBrush Core」の自分的に主だった制限といえば、

・リトポロジー機能(ハイポリゴンをローポリゴンにリメッシュする機能)がない
・エクスポートはOBJ、STL形式で出来るがUV情報は含まない

でしょうか。

とりあえず、これらはBlenderで補えるとは思えます。使わせてもらっているBlenderのアドオンの「Mira Tools」にもリトポロジー機能はありますし、「RetopoFlow」という強力な有料アドオンもあります。他にもリトポではグリーンペンシルを使った方法とかもあるようです。

これまで、手を出すのをためらっていたスカルプトですが、これを機にちょっと取り組んでみようかなと思います。





テーマ: CG ジャンル: 日記
POSER 11 SR6リリースと小ネタ



意外にもPOSER 11のSR6がリリースされていました。いつもならSR5ぐらいまでだったような気がしますがそれだけPOSER11に気合いを入れているということでしょうか。




ダウンロードしてインストールしてみると日本語とドイツ語のマニュアルが入ってました。しかし、POSER 11ではなくPOSER 10のマニュアルでした。でも、いずれはPOSER 11の日本語マニュアルを準備してくれる可能性もあるということでしょうかね。

毎度、リリースノートとか付いていないので何が改善されているのか分からないのですが、とりあえずFBXのインポートに関しては改善は見られないようでした。

しかし、とりあえず一つは自分にとっては嬉しい機能が使えるようになっていたことに気付きました。それは、「アニメーショングラフ」を簡単に複数展開出来るようになっていたことです。

マニュアルには「アニメーション編集パレット」でAltキーを押しながらエレメントをダブルクリックするとエレメントごとにウィンドウを複数展開することが出来ると書いてありました。

しかし、これまでは複数開くことは出来ても選択出来るエレメントはどういうわけか一種類だけでした。




これはPOSER10で「アニメーション編集パレット」上でライトの「x回転」、「y回転」、「z回転」エレメントをAltキーを押しながら「アニメーショングラフ」を順番に3つ開いたものですが、どういうわけか3つとも最後に選択した「z回転」エレメントの表示になってしまいます。

これはバグなのか自分の環境だけなのかわかりません。以前から3枚のウィンドウに「x回転」、「y回転」、「z回転」それぞれ別のエレメントを表示させて編集出来たらどんなに便利だろうかと思ってました。




こちらはPOSER PRO 11 SR6です。「アニメーション編集パレット」でフィギュアのChest部の「Twist」「Side-Side」「Bend」のエレメントをダブルクリックしただけで各エレメントを3枚別々に表示できるようになっていました。




これは「アニメーション編集パレット」だけではなくパラメーターのダイアルをダブルクリックして「パラメーターセッティング」ウィンドウの「Graph」ボタンを押してもエレメントを複数展開できます。これはありがたいですね。

せっかくなので、ついでにPOSER 11関連の小ネタでも書いておきたいと思います。

POSER 11の新機能でショートカットを自分で設定できるようになりました。しかし、当初はせっかく設定してもその設定が記録されていなくて心が折れ、それ以降使ってなかったのです。原因はPOSER側なのかWindows10側なのかわかりませんでした。

でも、SR3ぐらいから記録もされるようになったのですが、何か不安感が拭えない(^^;)。そのショートカットを設定したファイルの保存の管理を自分で出来たら安心して活用する気になれます。

ということで、忘備録としてそのやり方を書いておきたいと思います。

POSERの環境設定ファイルはPOSER PRO 11の場合、
C:\Users\ユーザー名\AppData\Roaming\Poser Pro\11
に入ってます。



POSERを起動する時にここにあるユーザー設定ファイルでデフォルトの設定を上書きしているようです。このフォルダーの「Accelerators.xml」というファイルにショートカットの設定が保存されています。




開いてみると、自分でショートカットを設定した分がここに記録されています。上のはデフォルトで1、2、3、4キーに設定されているものをF1、F2、F3、F4キーに移し替え、カメラの選択をテンキーにまとめたものです。デフォルトのカメラのショートカットはキーがバラバラ過ぎて使いにくいですからね。

ショートカットに関してはこのファイルをバックアップしておけば安心です。



あと、勝手に「POSERあるある」だと思っているのですが、コンテンツをインストールディスクではない別のドライブに入れておくとアプデ時に何かをしくじり、Cドライブにある空であるコンテンツフォルダーがデフォルトフォルダーに設定されてしまうことがあります。

この一旦デフォルトに設定されてしまったコンテンツフォルダーはアプリケーション上の「ライブラリ」からは削除できないようになっています。しかし、格好が悪いし必要ないので消したいところです。

じつは、ここの設定は「LibraryPrefs.xml」ファイルで変更することが出来ます。ファイルを開くとコンテンツフォルダーのパスが書いてあります。




上の赤いところを自分のデフォルトにしたいフォルダーへのパスに変更します。




そうすると、Cドライブのフォルダーが消え、自分が設定したコンテンツフォルダーがデフォルトになります。ちなみに、「Downloads」共々Dドライブです。

ライブラリに新たなコンテンツホルダーを追加していくと、このLibraryPrefs.xmlファイルのindex="2"以降に追記されていきます。このファイルをバックアップしておけばインストールするたび登録したフォルダーがリセットされてもすぐに復活させることが出来ます。あと、フォルダーの順番もindex番号を変えれば後から変更するということも出来ます。

ただ注意することは、この書き換え作業はPOSERを起動していない状態で行うということです。そうしないと、POSERを閉じるときにその時点でのフォルダーの状態で上書き保存されてしまい書き換え作業が無駄なことになってしまいます。

あと、「Poser.ini」は「General Preference(環境設定)」、「Poser UI Pref」はUI構成、Poser Pro\11\English\dots\PoseRoomの「uiDot_1_1920x1080.ui2」はメモリドッドの設定が記録されているようです。

とりあえずPOSERをアップデートやらでインストールし直すことになったら一応使いまわしたい設定はバックアップしておけば安心です。そうすれば、バージョンアップする時にすでにある環境設定ファイルを引き継ぐか、削除するかという時にいちいち迷わなくても良くなりますね。

とりあえず、FBXの件は何とか改善してもらいたいところですが、SR7とかあり得るんでしょうかね。(^^;)


テーマ: CG ジャンル: 日記
Blenderでテクスチャーペイント



さて、年も明け中断していたBlenderでフィギュア作りを再開しようと思いました。




フィギュアの土台はほぼ完成させました。衣装はおぼろげにイメージがまとまりつつありますが、その前にBlenderの操作に慣れるためにしばらくこの姿のまま色々試しておこうかなと思います。




下描きの時から大きなリボンがトレードマークという構想でした。




プロポーションも変更。ボディと髪もテクスチャーを付けてみました。アンダーウェアはまだ仮です(とりあえず無いとまずいんでf^^;)。




後ろ髪はシンプルな太めの束にしてリボン共々バネのようにボヨンボヨン揺らせるようにしたら面白いかと思いました。

今回、ボディ部分のテクスチャーは初めてBlenderの3Dペイントで描いてみたのですが、なんて便利な機能なのでしょうか。(@o@;)

今までは3DソフトでUV展開してマップを描き出して、ペイントソフトで色を塗って保存して、3Dソフトに戻りテクスチャーを貼り直す、ズレていたり気に入らなかったらペイントソフトに戻りそれを何度も繰り返す作業となるわけです。

ところが、3Dペイントだとモデルに直接立体的に描けるわけです。鎖骨とか膝小僧とか一発で当てることが出来ますね。このボディ部のテクスチャーを描くのに30分もかかってないと思います。直感的な塗りには3Dペイントの方が断然便利でいいですね。

しかし、一定間隔とか緻密さが必要なところではやはりペイントソフトを使わないといけません。今回は髪のテクスチャーは髪の縁を輪郭線のように一定の太さで描きたかったのです。

それで、Blenderの「External Paint Autorefresh」というアドオンを使わせてもらいました。これは、BlenderとGIMPを連携させるものです(PhotoShopでも使えるようです)。

GIMPに読み込んだUVマップに描いたものがBlenderのテクスチャーに即座に反映させることができます。いちいちペイントソフトで保存して3Dソフトに読み込ませてテクスチャーを反映させるという手間が省けます。逆にBlender側で描いたものをGIMPの方に反映させることも出来ます。これもすごいアドオンですね、Blenderの便利なアドオンは他にも探せばまだまだあるんでしょうね。




とくに、髪の束と束の境目の線の抜きのところはこのアドオンのおかげで上手く出来ました。これを3Dソフトとペイントソフトを行ったり来たりするやり方だったらどれだけ手間と時間がかかったか計り知れません。(^^;)




この段階でMMDで表示させるとこんな感じになります。テクスチャーを付けると完成度がぐんと上る感じがしますね。ちなみに、pmxのエクスポートはアドオンの「Blender2Pmxe」 を使わせてもらっています。

次は、Blenderでボーン入れとウェイト付けをやってみることにします。



テーマ: CG ジャンル: 日記
ユニティちゃんでゲーム制作演習



今から一年半ぐらい前にUnityの勉強を始めようと思っていた時、本屋で見つけとりあえずやってみようと初めて買ったUnity本が日経BP社の「ユニティちゃんでゲームを作ろう」というムックでした。

本に書かれている「UnityChanDash」を見よう見まねで実践したら何とかうまくいって動いてくれて、Unityを使えば思っていたより簡単にゲームらしいものが作れるんだなと感心した半面、プログラミングなど無縁だった自分にとってまるで意味が分からないコードや記号が一杯で、こんなのどうやって使いこなせるようになるのだろうかと絶望感にも似た感情を抱いたのも今でも覚えています。(^^;)

それでもUnityを触り始めて一年以上経って、今ではC#もそれなりに理解できるようになりました。そこで、ここまで自分が学習してきたUnityの知識のまとめとして、「UnityChanDash」にいろいろ機能を追加して一連のゲームアプリとしての形式が成り立つようにアレンジしてみたいと思いました。

まず、追加したいことの確認、

・タイトル画面を設けて、スタートボタンを押すとゲームスタート
・プレーヤーが走り出す前にカメラが前方から後方に回り込む
・カメラが定位置に着てから走り出す
・障害物に当たった時、ゴールした時、カメラがプレーヤーの正面に回り、UI表示する
・障害物に3回ぶつかるとゲームオーバー。その都度UIでスペア数を表示する
・ゲームオーバー、ゴール後にリトライ、タイトル画面にもどる、ゲーム終了の選択メニューを出す
・BGMと効果音を付ける
・Escキーで強制終了、メニューから終了でユニティちゃんライセンスを表示して終了する

というような感じです。

それで完成したので公開したいと思います。



「UnityChanDash~arranged~」
Windows版
(19MB)
MacOS版
(22MB)
WebGL版

- WebGL版URL -
http://initmusic.web.fc2.com/games/UnityChanDash_arranged_WebGL/index.html



スタンドアロン版とWebGL版をビルドしてみました。もしよかったら、試してみてください。Win版とmac版はオンラインストレージからzipをダウンロードして解凍して実行してください。制作とビルドはUnity5.4.1でしています。

WebGL版はWeb上のリンクとなっています。WebGL版はFireFoxでしか動作しないようです。ご使用しているブラウザが違う場合はFireFoxを立ち上げてから下のURLをコピペでお願いします。WebGL版では終了したいときはウィンドウを閉じてください。なお、「Unity WebGL」はスマホ等のモバイル端末には対応しておりません。

いちおうお断りしておきますが、ゲーム自体が面白いかどうかではなく、ゲームアプリとして一連の形式を取らせるということが目的ということなのでその辺りはご了承ください。(わざとミスなどして処理を確認していただけたらと思います)







「↑」キーかマウスの「左クリック」でジャンプ、「↓」キーか「右クリック」でスライディングで障害物を避けます。障害物に3回ぶつかるとゲームオーバーです。ゲーム中にPキーを押すたびにBGMのオンオフを切り替えられます。

WebGL版では影の描写をしないようにしています。余興でユニティちゃんライセンス表示中にBキーを押すとユニティちゃんの「バイバイ」ボイスがなります。

せっかくなので、自分の備忘録としてこのゲームで使った自分が追加した部分のスクリプトの解説を書いておきたいと思います。全部は長くなりすぎるので部分的ということで。

・走り出す処理

public class PlayerAnimationController : MonoBehaviour {

    bool RunStartCheck = false;

    void Update() {
        if (RunStartCheck) {
        GetComponent<Rigidbody>().MovePosition(transform.position + 
       transform.forward * Time.deltaTime * 3);
        }
    }

    public void RunStart() {
        RunStartCheck = true;
    }
以下略

まず、走り出すところですが、初めはインクリメント計算処理で一定時間待機にしてみましたが、そうすると初回とリロード後では微妙にタイミングが変わってしまいました。また、この方法では自分のPCでうまく合わせられても違うPCではタイミングが変わってしまう可能性もあります。ここは厳密に同じタイミングでスタートさせたいところです。

それで、bool型のRunStartCheck変数を用意してfalseにしておいてAnimationの方からユニティちゃんが待機状態からRun状態に移るタイミングで仕込んでいるイベントでRunStart()を実行してRunStartCheckをtrueにすることで前に動き出すようにしました。これだとタイミングはバッチリですね。




・スペア数で分岐等の処理


using UnityEngine;
using UnityEngine.UI;//UnityUIを使うための名前空間
using UnityEngine.SceneManagement;//SceneManagerを使うための名前空間
using System.Collections;

public class GameManagement : MonoBehaviour {

    public GameObject Branch;
    public Text mistakeText;
    public Text gameoverText;
    public Text spareText;
    public static int spare = 2;

    void Start() {
        spareText.text = spare.ToString(); //スペア数の表示、更新
    }

    //障害物にぶつかったらSendMessageを受信、スペアの数で処理の分岐
    void spareNum() {
        if(spare >= 1) {
            Invoke("mistake", 0.5f);
        }
        else if (spare == 0) {
            Invoke("gameover", 0.5f);
        }
    }
    //ミスしたとき、テキスト「MISTAKE」を表示させる処理
    void mistake() {
        mistakeText.gameObject.SetActive(true);
        Invoke("OnLoad", 6);
    }
    //ゲームオーバー時、テキスト「GAME OVER」を表示させる処理
    void gameover() {
        gameoverText.gameObject.SetActive(true);
        Invoke("TimeLag", 4);
    }
    //呼び出されたら、4秒後にReGameBranch()を実行
    void TimeLag() {
        Invoke("ReGameBranch", 4);
    }
    //ゲーム後に3つの選択肢を表示させる
    void ReGameBranch() {
        Branch.gameObject.SetActive(true);
    }
    //ミスしたらスペアを一人減らす、シーンを読み直す
    void OnLoad() {
        spare -= 1;
        SceneManager.LoadScene("UnityChanDash2016");
    }
    //選択肢1が押されたら、スペアを2に戻す、ゲームを始めからやり直す
    public void PushTryAgain() {
        spare = 2;
        SceneManager.LoadScene("UnityChanDash2016");
    }
    //選択肢2が押されたら、スペアを2に戻す、BGMを廃棄、タイトルに戻る
    public void PushReTitle() {
        spare = 2;
        bgmloop.DestroyOn();
        SceneManager.LoadScene("UCD_Title");
    }
    //選択肢3が押されたら、ゲームを終了、ライセンス表示シーンに移行
    public void GameQuit() {
        SceneManager.LoadScene("LicenseLogo");
    }
}

スペアの数のspare変数はシーンを読み直しても維持されるようにpublic staticで宣言しておきます。時間差が欲しいとき便利なInvoke()メソッドを多用しましたが、今思えばAnimationのイベントを使えばもう少しスッキリ出来たかもしれません。もう直す気はありませんが。(^^;)

・BGMをシーンをまたいでループで流す

単にBGMを付けたいとき、一曲であればAudioSourceコンポーネントを追加してAudioClipに指定して「Play On Awake」をオンにしておけばノンコーディングでシーン開始時から流すことが出来ます。しかし、この場合はシーンを読み直すと始めから再生されます。



今回の場合、ゲームプレイ中はリプレイしても途切れないでずっとループさせた方が良いと考えました。そうすると、シーンをまたいで再生し続ける必要があります。色々試してみてうまくいった方法を書いておきたいと思います。

まず、空のゲームオブジェクト(名前はMusicBox)にBGM用のAudioSourceコンポーネントを追加して、DontDestroyOnLoadを使ってシーンをまたいでもこのゲームオブジェクトが破棄されないようにしてみました。でも、これだけだとシーンが呼び出されるたびにBGMが重なっていってしまいます。

それで、このMusicBoxをインスタンス化してprefabとしてスクリプトからResources.Loadを使って呼び出せるようにして、BGMを初回のみ再生させ次回以降は再生させないようにして、タイトルに戻るときはDestroy()でゲームオブジェクトを破棄するという方法を取ることでうまくいくことができました。

public class GameManagement : MonoBehaviour {

    private GameObject BGMobj;
    private BGM_Loop bgmloop;
    public static bool musicOn = true;

    void Start() {
        Instantiate(Resources.Load("Prefabs/MusicBox"), new Vector3(0, 0, 0),
        Quaternion.identity);

        BGMobj = GameObject.Find("MusicBox(Clone)");
        bgmloop = BGMobj.GetComponent<BGM_Loop>();
    }
以下略

GameManagementクラスのBGM関連の部分です。Start()で
"Resources/Prefabs/"フォルダに入れておいたMusicBoxを取り出します。そして、GameObject.Find()でBGMobj変数に格納します。ちなみに、このとき呼び出したMusicBoxには(Clone)が付いているのでそれを含めて名前にしておかないと見つけてくれません。

これは、MusicBoxにアタッチしているBGM_Loopスクリプトです。

public class BGM_Loop : MonoBehaviour {

    public AudioSource audioSource;
    public static bool shokaiCheck = true;

    void Start() {

        if (shokaiCheck) {
        shokaiCheck = false;
        DontDestroyOnLoad(gameObject);

        audioSource = GetComponent<AudioSource>();
        audioSource.Play();
        }
    }

    public void DestroyOn() {
        shokaiCheck = true;
        Destroy(gameObject);
    }
    public void BGM_Play() {
        audioSource.Play();
    }
    public void BGM_Stop() {
        audioSource.Stop();
    }
}

bool型で初回チェック用のshokaiCheck変数をpublic staticで宣言しておきます。こうすることによってその状態はシーンをまたいでも保たれます。「Play On Awake」はオフにしておきます。

shokaiCheckは始めはtrueなのでif文の中に入ります。そこでshokaiCheckをfalseに変えておき、"MusicBox(clone)"をDontDestroyOnLoadにします。そして、ここでBGMを再生させます。

これでシーンが呼び直されても次回からはshokaiCheckはfalseなのでBGMは重ねて再生されることはなくなります。タイトルに戻るときはDestroyOn()でオブジェクトを破棄するとBGMは止まります。破棄する前にshokaiCheckはtrueに戻しておきます。こうしておくことで、タイトルに戻って再びスタートボタンを押したときにBGMがまた始めに再生される処理に入ります。BGM_Play()、BGM_Stop()はPキーを押した時用です。

ユニティちゃんの掛け声ですが、同時に再生することはないので一つのAudioSourceに各音声をAudioClip型の配列にそれぞれ格納しておいて、各Animationのイベントからその都度入れ替えて再生させています。



public class PlayerAnimationController : MonoBehaviour {

    public AudioClip[] voice;
    private AudioSource audiosource;

    void Start() {
        audiosource = GetComponent<AudioSource>();
    }

    void slideVoice() {
        audiosource.clip = voice[0];
        audiosource.Play();
    }
    void jumpVoice() {
        audiosource.clip = voice[1];
        audiosource.Play();
    }
    void damageVoice() {
        audiosource.clip = voice[2];
        audiosource.Play();
    }
    void loseVoice() {
        audiosource.clip = voice[3];
        audiosource.Play();
    }
    void goalVoice() {
        audiosource.clip = voice[4];
        audiosource.Play();
    }
    void ufufuVoice() {
        audiosource.clip = voice[5];
        audiosource.Play();
    }

ちなみに、BGMからユニティちゃんボイスもすべてwav形式だったのでmp3に変換して7MBほど軽量化したのですが、ビルドした総サイズを比べると1MBぐらいしか差がありませんでした。それでも、mp3の方が少しは軽くなりますね。

これは最後のライセンス表示シーンで使っているスクリプトです。

using UnityEngine;
using System.Collections;

public class LicenseLogo : MonoBehaviour {

    public AudioSource audioSource;
    private GameObject BGMobj;
    private BGM_Loop bgmloop;
    public static bool musicOn2;

    void Start() {
        musicOn2 = GameManagement.musicOn;
        BGMobj = GameObject.Find("MusicBox(Clone)");
        bgmloop = BGMobj.GetComponent<BGM_Loop>();
        audioSource = GetComponent<AudioSource>();
        audioSource.Play(); //ユニティちゃん「バイバイ」音声の再生
    }

    void Update() {
    //Pキーが押されるたびにBGMの再生と停止を交互させる
        if (Input.GetKeyDown(KeyCode.P)) {
           if (musicOn2) {
               bgmloop.audioSource.Stop();
               musicOn2 = false;
               return;
            }
            if (!musicOn2) {
               bgmloop.audioSource.Play();
               musicOn2 = true;
               return;
            }
        }
    //Bキーが押されたらユニティちゃん「バイバイ」音声の再生
        if (Input.GetKeyDown(KeyCode.B)) {
            audioSource.Play();
        }
    }
    //アプリケーションを閉じる
    void QuitLogo() {
        Application.Quit();
    }
}

ゲーム中のBGMをオンオフ出来るようにしてしまったため、このアプリを終了するだけのシーンのためにスクリプトをこれだけ書く事になってしまいました。本来ならば最後のQuitLogo()だけあればいいところなのですが(^^;)。ちなみに、ロゴがフェイドアウトしていくタイミングでAnimationのイベントからQuitLogo()を実行するようにしています(WebGLでは機能はしません)。

musicOnはGameManagementクラスでpublic staticのbool型で宣言してある変数でBGMの再生状態を格納してあります。それをこのクラスでも引き継がせないと都合が悪いことが分かったのでmusicOn2に代入しておきました。public staticの変数はシーンをまたいで他のクラスに値を渡せるのですね。

という感じで、部分的な解説なのですが、これでもものすごく長くなってしまいましたね(^^;)。しかし、解るようになるとプログラミングは面白いですね。もし、Unityを始めてなかったら自分がプログラミングなど理解できるようになることはなかったと思います。プログラミングの面白さを知ることが出来たのもUnityのおかげです。

来年こそはオリジナルキャラを使ってなにか作品をつくれたらいいなぁと考えています。しかし、そのためにはやることがいっぱいで時間がいくらあっても足りないぐらいですが、めげずに来年こそは!(笑)





テーマ: CG ジャンル: 日記
Blenderでフィギュアを作る



私がメインで使っている3DCG制作ソフトはShade 3Dです。初めて手にした3DCGソフトということもあり、今のところ使い慣れているので一番使いやすいと思っています。が、有料ソフトなので新バージョンが出ると料金を払ってバージョンアップをしないといけません。

イーフロント社が販売代理店の頃はShadeのバージョンアップは早期割引があってProfessionalで1万7千円ぐらいでした。しかし、販売がShade3D社に移管されてから割引が無くなり2万3千円と実質値上がりと言う感じになってしまいました。毎回2万円以上となるとかなりためらいますね。それでまだver.15のままです。

このまま自分が今後もShade 3DのProfessionalを維持するのは少し困難な感じはしています。UnityやUE4など速くて綺麗な外部レンダラが手ごろに使えるようになり、作品作りはそちらの方でと考えつつある今の自分には機能的にはもうStandardで十分と思えます。もっと言えば、Standardからレンダリング機能を制限させたShade 3D for Unityぐらいでもいいとも思えます。最新バージョンをBasicとStandardの間ぐらいの価格設定でラインナップに加えてくれたらいいと思うのですけどね。

2万円ともなれば新しいソフトが買えるぐらいですからねぇ。例えば、最近だとスカルプトツールとして不動の地位を築いているZBrushの廉価版「ZBrush Core」がバンドルされている「ワコム ペンタブレット Intuos 3D」も興味があります。ペンタブも新しいのが欲しいところ。でも、今のところスカルプトが必要なぐらいなリアルなキャラクターを作りたい欲求も無いし、ポリゴンモデリングに慣れてしまえば今すぐスカルプトが欲しいとは思わないのですよねぇ。(でも、興味はあります)

モデリングソフトとして評判の高いMODOの廉価版の「MODO indie」というものがsteamでお安く提供されているのも興味あります。サブスクリプションで一ヵ月ごとなら1,480円、六ヵ月ごとなら6,200円で実質月々1,033円だとのこと。しかし、「MODO indie」についての情報は少ないし、サブスクリプションというものには抵抗あるので乗り気になれないのです。(一括だと3万円ぐらいです)

そうなると、白羽の矢が立つのはフリー最強の3DCGソフトのBlenderです。Blenderの開発進歩は目覚ましいものがあり、しかも今後いくらバージョンが進んでもフリーであることが約束されています。

Blenderについては機能をさらりと把握している程度で、今までBlenderだけでガッツリとモデリングはしたことはありませんでした。

Blenderを初めて触った時、独特の操作性で目の前にある立方体を選択して動かすことすら出来なかった衝撃を今でも覚えています(^^;)。ただ、慣れてしまえばそんなに違和感なく操作できるのですよね。

とりあえず、今後はBlenderを使いこなせるように勉強を兼ねて積極的に使っていこうかなと思います。とりあえず、練習がてらにBlenderのみで新キャラのMMDモデルでも作ってみることにしました。




こちらが自分にとってBlenderで作る初めてのフィギュアとなります。とりあえず、ベースは出来た感じです。ここまで時間的に4日ぐらいでしょうか。

何せ、「Shadeで使っていたあの機能はどうやってやれば??」という感じで右往左往でした。ショートカットなど慣れればもっとスムーズにはかどると思います。しかし、使い方などネットで検索すればほぼ解決しますね。やっぱり、Blenderのユーザー層は厚いからゆえですね。助かります。




顔と目にはUV展開してテクスチャーをつけてみました。こうやって一つ一つ覚えていくことにしましょう。










今のところポリ頂点数は7,500ぐらい。でも、まだミラーリング状態なので実質1,5000ほどですね。

Blenderでフィギュアのモデリングをする際、一番戸惑ったのは髪の部分ですね。Shadeの場合、ペジェ曲線で形を作る自由曲面というのを使っていました。そういえば、今まで髪を始めからポリゴンで作ったことがありませんでした。

Blenderのペジェ曲線はShadeの線形状とは操作性が全く違って自分ではとても扱えそうに感じませんでした。髪だけはShadeで作ろうかとも思ったのですが、やはりここはBlenderだけでやらないと意味が無いと思い解決策を探しました。




そうしたところ、「Mira tools」というアドオンの存在を知りました。このツールの中にメッシュの頂点をペジェ曲線に沿って動かせる機能がありまして、これにより手縫いの短冊型のメッシュをキレイに配置出来るようになりました。このアドオンは髪だけではなくあらゆる部分でポリゴンを滑らかに移動させることができるので重宝しそうです。




現状でミラーを実体化してMMDに持ってくるとこんな感じです。まだ、ボーンは入ってません。アドオンのお陰でBlenderもMMDとの風通しが良いですね。

Blenderのみでも自分なりのフィギュアのモデリングは出来そうです。しかし、まだBlenderでのリギングとかモーフとか未知の領域です。やってみるしかないですね。

作ってはみたのですが、そういえばまだこのキャラの設定を考えていませんでした。衣装とかどちらの方面にしようかも考えないと。


テーマ: CG ジャンル: 日記
VR HTC Viveの導入



今年に入り「Oculus Rift」が製品化、「HTC Vive」、「PlayStation VR」の発売と2016年はまさにVR元年といってもいいでしょう。

Unityであれば自分の作った3Dシーンや3DモデルをVRで見ることはかなり簡単に実現出来そうです。それは、いつものディスプレイ上で見るのとは違う何か大きな刺激を受けるのではと自分もそれなりに興味がありました。

最近話題なのは「PlayStation VR」ですね。販売後すぐに売り切れ店続出で現在まだまだ多くの人が入荷待ち状態みたいです。でも、私はPlayStation4を持ってないので選択肢にはありません。

やはり、「Oculus Rift」と「HTC Vive」のどちらかとなります。VRというと長らく開発者用の「Oculus Rift Kit」という単語に馴染みがあってVRならOculusというイメージがありました。

2つを比べると大きな差といえば「Oculus Rift」は基本的に正面を見回すような感じ、「HTC Vive」は立ったり座ったり対象物に自分自身が移動して近づいたり回り込んだり出来るという感じでしょうか。

購入費は送料・税込で「Oculus Rift」が94,600円、「HTC Vive」が107,784円とViveの方がお高め。(しかし、Oculusの方は近々発売される別売りの「Oculus Touch」を含めるとこちらの方がお高くなりそうです)

設置の方はOculusの方は机の上にセンサーを一つ置くだけとお手軽。Viveはベースステーションを2つ壁に固定設置推奨、動き回りたいのなら障害物のない2㎡ぐらいのスペースが必要。設定等少し複雑そう。

価格と設置の簡単さと知名度からOculusでいいかなと思ったのですが、こちらは注文は海外サイトでおこない、現地からの発送となります。空間を歩いて移動できるという面白さと日本のPCショップで注文すれば翌日に届く手軽さが決め手となって若干お高めでも「HTC Vive」を購入してみることにしました。




ドスパラで注文したら本当に関東から東北の地に注文した翌日に届きました。思っていたよりでかいですね。(iPhoneとの比較)







ダンボールの中に本体の箱が入ってます。




箱の中に入っている本体と付属品。何やらいっぱいあります。




まず、やることは部屋に2㎡ぐらいのスペースを確保すること。久々に大掛かりな掃除をして筋肉痛です(笑)。




次に、壁に「ベースステーション」を取り付けます。高さは2mちょいぐらい、互いの距離は5m以内で。それぞれコンセントからの電源供給が必要です。何か、監視されてる気になりますね。(^^;)




Viveに付属の釘(右)は柱にねじ込むには太すぎて3分の1しか入りませんでした。細いもので代用しました(左)。

さて、ここまできたらセットアップも終わりも当然と思いけりゃ、何とインストールを完了させることができないというトラブルが発生しました・・・

すでに解決したのですが、もしかして今後Viveを購入してインストールしようとする際に自分と同じ状態に陥り頓挫してしまう方もいるかもしれないのでそのことについて書いておきたいと思います。


・ヘッドセットをデバイスとして認識しない 1



ヘッドセットとPCを繋ぐための「Link Box」というのがあるのですが、これには向きがあります。上に小さく「PC」「VR」と書いてあります。最初間違えて繋いでしまってうんともすんとも言いませんでした。

VRの接続は橙色同士なんですね。セットアップの動画は止めながら確認しながら見た方がいいですね。


・ヘッドセットをデバイスとして認識しない 2

「Link Box」の繋ぎ方を直したら色々デバイスのドライバのインストールが始まったのですが、ヘッドセット本体が認識されていないようでした。

まぁ、これは前にも経験があったのですがPCケースに付いているフロントのUSBに繋ぐとHUB経由できないデバイスは認識されない場合があるのです。LINE6のPOD LiveもフロントUSBに繋ぐと認識されませんでした。

この場合、PCの後ろ側、要するにマザーボードに直指しすると改善されます。これで、ヘッドセットのドライバもインストールされました。

しかし、最大のトラブルの山場は次でした。


・トラッキングを確立できない

デバイスのドライバもインストール完了してあとは「ルームセットアップ」で部屋の広さを認識させて、「素晴らしきVRの世界へようこそ!」となるばかりと思っていました。

しかし、どういう訳か「トラッキングを確立する。」というところで止まってしまうのです・・・




デバイスはオールグリーンで認識されているはずで、本来ならこんなところで止まらずスパっと次に進むはずなのですがどうにもならない。ネットで検索しても具体的な解決法が見つかりませんでした。これは非常に稀なケースなのか?PC自体が原因なのか?

とりあえず、もう一度Vive関連のファイルをアンインストールしてインストールしてみようと思ったら今度はサーバー通信エラーで「ルームセットアップ」すら始められない状態に。




気分はもう完全にどん底状態です。もしかしたら、新しいPCを買えば問題なく動くのか?しかし、4年前のPCとはいえ新しいPCに買い換えるほどスペックが足りていないとも思えない。こんなことならOculusにしておけば良かったとも思ったりしました。

しかし、金額が金額なだけに割り切って諦めることもできない。という訳で最後の切り札、Viveのサポートに上の2つの状況とキャプチャー画像へのリンクを付け加え連絡を入れてみました。

それで、返答がメールで着ました。

一度コンピュータOSのUser Nameが英語以外の文字になっているかご確認いただけますでしょうか。 英語以外の文字になっております場合、 誠にお手数ではございますが、 Steam & Steam VRをアンインストールいただきました後、 コンピュータOSのUser Nameを英語に変更いただき、その後、Steam & Steam VRを 再インストールいただくことで 現象に改善が見られるか ご確認いただけますよう お願い申し上げます。

また、OSの再インストール(クリーンインストール)を 行っていただきますことで 現象に改善が見られるかどうかご確認いただけますようお願い申し上げます。~以下略

う~ん、どちらも分かりましたと言って簡単に割り切って出来ることでもありません。どちらにしても慣れ親しんだPCの環境をリセットすることに変わりありません。

しかし、OSのユーザー名が漢字なのは間違いないです。海外製のアプリではパスに全角日本語(マルチバイト)が含まれるとインストールや保存ができなかったりするのは珍しいことではありません。

OSのユーザー名が漢字なのは自分の意志ではありません。マルチバイトが良くないことは知っていてWindows7までは半角英数のユーザー名でした。Win8のインストール時にこういうことになりました。まさか、登録した漢字の本名でユーザーフォルダーを作られてしまうとは思いもよりませんでした。しかも、一度登録されたら後から直すこともできないという。(Win7から直接Win10にアップグレードしたノートPCは半角英数のユーザー名をそのまま引き継いでました)

しかし、今までは漢字ユーザー名のままでも不具合もなかったのでそのままにしていました。仕方ありません、とりあえずこのPCに半角英数の別のローカルアカウントを作って管理者権限を与えて、新たに作られた半角英数のユーザーフォルダに元の環境(ドキュメント、AppData等)をコピペで移し替えることにしてみました。

それで、ようやく引越し作業を終え、再びViveアプリをインストールすると通信エラーは出ずすんなり進み、「トラッキングを確立する。」も何事もなかったよう認識され次へと進み足元の高さ、部屋の広さの計測も終えViveのインストールがようやく完了しました。

今回のViveインストールでのトラブルの原因はOSのユーザー名が漢字だったという結論に至りました。全角日本語など欧米圏の人たちは考えない方が普通でしょうからユーザー名は半角英数の方が無難です。Microsoftはそういうことも考えなかったのでしょうか、疑問です。

今回はインストールはできてもセットアップができないという初めての事例でした。こんなこともあるのですね。でも、困難を乗り越えたどり着いたVRの世界はとても素晴らしく可能性を感じさせてくれるものでした。これは11万円出した価値は十分あると思えました。久々にワクワクものです。

ちなみに現在のPCスペックです。これでもViveは使えてます。

OS: Windows 10 Pro 64-bit
CPU: Intel Core i7-3770
マザーボード: ASRockH77 Pro4/MVP
グラフィックカード: GeForce GTX 660 OC
メモリ: 16GB

このマザーボードは16GBまでしか載せられないんですよね。それよりグラカはさすがにもうキビしいですかね。しかしながら、PC新調はもう少し粘りたいところです。





テーマ: パソコンな日々 ジャンル: コンピュータ
Unityでのトゥーンセットアップ



今回はUnity用のオリキャラ「カレン」をUnityのトゥーンシェーダーを使ってセットアップしてみたいと思います。




今回使用するこのキャラのFBXはShade 3Dから直接エクスポートしたものです。




まず、メニューバーの[Assets >> Import Package >> Effects]にある「ToonShading」をインポートしておきます。これでシェーダーに「Toon」が追加されます。




トゥーン調にしたいマテリアルに「ToonBasicOutline」を割り当てます。目の影は半透明で表現していますが「ToonBasicOutline」では透明度が反映されないので「Standard」のままです。このトゥーンシェーダーだと法線マップも反映されないのでテクスチャーは描き直しました。




Unityでは共通なプロパティーであれば複数選択しておくことで一括で変更できるので便利ですね。




う~ん、何か残念な感じです。このままではちょっと使えませんね。少しスクリプトを弄る必要があるようです。近づけば輪郭線の太さも良さ気に思える時もありますが、離れると線が太くなっていくように見えてしまいます。キャラクターに近づけば太くなり、遠ざかれば細くなるようにしたいです。

そこで、まず「ToonBasicOutline.shader」をエディタで開いてみると、38行目にある
o.pos.xy += offset * o.pos.z * _Outline;
のo.pos.zがカメラからの距離によらず輪郭線の太さを一定にしているところなので、それを消して
o.pos.xy += offset * _Outline;
と書き換えます。

これで、カメラからの距離(Z値)によって輪郭線の太さが変わるようになります。




輪郭線の色と太さはインスペクター上でマテリアルごとに変更ができます。しかし、輪郭線の太さを一番細くしてもまだ太く見えます。これは、スクリプトで最小値が0.002より小さく出来ないように制限されているからのようです。

5行目にある、
_Outline ("Outline width", Range (.002, 0.03)) = .005
という部分がその制限範囲のようです。ですので、Range (.002, 0.03)はRange (0.0, 0.03)と書き直して最小値を0にしてみます。




これで輪郭線の太さをちょうどいい具合の0.0015まで値を小さく出来ました。しかし、輪郭線がギザギザしていて綺麗に見えないのが気になります。

これはアンチエイリアスをもっと強めにかければ解決しそうです。メニューバーから[Edit >> Project Settings >> Quality]と辿って行くと「Anti Aliasing」の設定項目があります。



ここを「4x Multi Sampling」以上にすると綺麗な感じになります。







これは、「Anti Aliasing」を「8x Multi Sampling」にした図です。これで、自然なトゥーン調になりました。あと、白目と口内の輪郭線は無い方が良いので太さを0にしてあります。

MMD用モデルを編集するときに使うPMXEでは輪郭線の設定等はサーフェスグループごとに細かく設定できるのですが、Unityの場合はマスターサーフェスごととなるようです。

白目と口内は当初は顔のパーツのマスターサーフェス(同一テクスチャー)に入れていたので、そのままでは輪郭線を消せませんでした。なので白目と口内は独立したマテリアルにして個々に輪郭線の設定が出来るようにしました。(ちなみに、目の影部もそういう理由で独立してあります)

Unityの標準シェーダーのカリング設定では片面ポリゴンの場合裏面が表示されません、両面表示にしたいときはスクリプトを書き直す必要があります。このキャラの腰巻きなどは片面ポリゴンなのでその作業をする必要があるのかと思ったら、トゥーンシェーダーでは両面表示が標準のようですね。

このキャラクターのボーンとスキンの設定はすでに終えていて、記念にUnity上でアニメーションでもと思っていたのですが、さらに長くなりそうなので、ここで区切りとして次回に持ち越したいと思います。


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