akeytsu test

akeytsu

f:id:cignoir:20161113233548g:plain:w300

試用期間を利用してリギング、スキニング、アニメーションをakeytsuだけでやってみました。

動きがカクカクしてるのはアニメーションスキルの問題です。腕周りどうした?

とにかくドキュメントが無いので、英語の動画見ながらなんとか……

アニメーションをミラー反転する機能を使ってるため、この歩行アニメーションは右半身だけしか作ってません。便利。

あとは前のキーフレームのモデルの状態をゴースト表示出来るのが便利でした。他のツールでも当たり前に出来るものなのかもしれませんが。

Unity

f:id:cignoir:20161113233601g:plain:w300

アニメーションがbakeされたfbxを出力して、Unityにimport test。てかりどうした?

Mecanim

f:id:cignoir:20161113233646p:plain:w300

Mecanim用のセットアップもすんなりいきました。ボーンの階層構造が適切だと設定せずに自動検出してくれる?ボーン名のおかげかもしれませんが未検証。

Metasequoia

f:id:cignoir:20161113233607p:plain:w300

久しぶりにメタセコ(我が家感)触ったらいつの間にかPMD(HLSL)というシェーダが。akeytsu で出力したfbxを読み込んで、スキンウェイトがのっていることを確認しました。

所感

ZBrushと3D-CoatとMarvelousDesignerでローポリモデルを作成してakeytsuでリギング&アニメーション してUnityにimportという流れを一通りやってみました。アニメーションを手作業でやるのは初めてなので新鮮で楽しかったです。これまた深淵なる沼を感じましたが。

akeytsuは操作方法やモデルに問題があったのかもしれないですが、akeytsuにかけた時間の7割はcrashしない方法を探す時間ってぐらいcrashしまくりでつらかったです。とは言えやはり、リギングからアニメーションまでをひとつのソフトで統合的に作業出来るのは素晴らしいと思ったし、UIも洗練されていて好きなので使い続けるつもりです。

アニメーションを少しやるとこういう服にするんじゃなかった!とかもっとモデルを凝りたいとかやりたいことが出てきたのでまたモデリングに戻ろうと思います。無限に手直ししてる気がするけど、やっとワークフローが確立して、これからは後の工程を意識しながら作業出来るので個々の作業が最適化されていくでしょう。

手探りで時間かかりますが試行錯誤を続けます。

試行錯誤

Twitter の #5000poly というハッシュタグで、 さくらもちさんの作品を筆頭に高品質なローポリモデルが上げられていて憧れの目で見ながら いつか自分もここに上げられるような作品を作れるようになりたいと思っています。

それを踏まえ、自分のスキルやツールセットからどうすれば実現出来るのか手順を模索しているのが現状です。 ここ最近試行錯誤していた内容を書いておきます。

現状のツールセット

  • ZBrush 4R7
  • Metasequoia 4.5.x
  • [New] MarvelousDesigner 6 (体験版)
  • [New] 3D-Coat (体験版)

ひとまずZBrushを使うことでハイポリモデルに関しては質はともかく一応作れるようになってきました。 問題はスカルプトで作ったハイポリモデルをどうローポリモデルに加工していくかです。

主に3つの障害が考えられます。

  • リトポ
  • UV展開&テクスチャ作成
  • アニメーション(リギング・スキニング・モーション)

リトポ

単純に5000poly以内におさめたいだけならZRemesherでリトポすればいいと思うんですが、 その制約の中でアニメーションもさせたいとなると自動リトポではエッジループや密度の調整の面で限界を感じました。

ZBrushの手動リトポ関連の機能を触ってみたのですが、操作性につらみがあったのでリトポ機能が便利と評判の3D-Coatを使ってみたところ噂に違わぬ便利さで気に入りました。 リトポはハードサーフェイスのモデリングにも応用ができそうですね。 安価なので購入予定。

UV展開

過去の手順

  • MetasequoiaでUV展開→そのUV展開図を下書きに画像編集ソフトで色塗り

さすがにこれはつらいし、みんなこんなことやってなさそうと思って調べたら polypaintをbakeする方法が見つかりました。

  • Tool > Texture Map > New From PolyPaint

UV展開はUVMasterというプラグインが便利そうでした。 しかし、手順がやや複雑で以下の2つの挙動でかなりハマりました。

  • まずサブツールを合成してSubDivLv=1だけの状態にしなければいけないのですが、 SubToolを合成したときに全体のSubDivLvが失われてしまう。うまくいくサブツールの組み合わせもある。

  • 合成してUVを展開したあと「Copy UV」して元のハイポリモデルにUVをpasteしようとするも、 Incompatible(互換性がない)というエラーが出て出来なかった。

これらの挙動の原因は結局よくわかりませんでした。次からはローポリのパーツ構成が決まった段階でディテールを作り込む前に早めにMergeしてUV展開しておくことで対策をしておこうと思います。 今回は仕方ないのでSubDivLv=1で merge して、Divideし直すことにしました。失われたディテールはまた作ります。

あとは頂点色に影や素材のbakeをしたいときはProjection Masterというプラグインが便利でした。

アニメーション

過去の手順: Metasequoiaでリギング&スキニング → CLIP STUDIO COORDINATE & CLIPSTUDIO ACTION

上の手順でも出来ることはわかってるんですが、データの受け渡しにPMDファイルを使わないとうまく受け渡し出来なかったり色々と不満も多かったです。MayaやMaxなしでのこの部分の定石がまだ見つかってないのですが、akeytsuという直感的な操作が売りの新しめのツールが気になっています。

リギング・スキニング・アニメーションをターゲットにしたツールで用途には完全に合致しています。 評判をぐぐった感じでは、機能が足りないからまだ様子見という意見が多く、ドキュメントも少ないため学習コストは高い印象です。用途は合っているし、他に良い選択肢もわからないので一度試してみようと思います。

まとめると、リトポとUV展開に関しては3D-CoatとUVMasterで解決できました。 アニメーションに関しては akeytsu を試してどうかというところです。

MarvelousDesigner

服をパターン(型紙)から考えることがこれまでの人生で無かったため最初は面食らいましたが、 いくつかチュートリアルやネットで拾ったパターン通りに実際に作ってみているうちにすぐに慣れることができました。 Clothシミュレーションも早くて綺麗だったし、プロトタイプを素早く作ることに役立ちました。 衣服のパターンは奥が深くて難しいけど楽しいですね。30日の試用期間を終えましたが購入予定です。します。

覚えたての便利ワード: 折り目・ひだの種類

  • プリーツ(Pleat)
    • 縫い合せ部位に折り畳みがあり、布先まで折り目がある
  • タック(Tuck)
    • 縫い合せ部位にのみ折り畳みがある
  • ダーツ(Dart)
    • 予め三角に縫ってある。縫い合せ部位はフラット

まとめ?

途中経過

  • ポリゴン数 約 4400
  • テクスチャ 512*512 3枚(髪・体・服ほか)

f:id:cignoir:20161024230845p:plain:w300

今のところ右往左往しながらもなんとか目標の水準に近い形で出来てきてはいます。 テクスチャは3枚使っているのですが最終的には1枚か2枚に減らす予定です。 とりあえずはUV展開とテクスチャ作成を一旦終わらせます。

その後、ディテール作成と行きたいところですが、アニメーション周りが未知すぎて怖いのでまずはアニメーションの手順を模索します。アニメーションの手順が確立したら、ディテールを作り込み、アニメーションのパターンを増やす感じで作業をしていきます。今年中には動かせるといいなぁ。

DailySculpt

3D-Coat

  • 試用版でリトポの使用感を体験してみました。評判通り便利で気に入ったのでそのうち安いのを買います。
  • [点と面]機能はメタセコプラグイン需要ありそうだなとちょっと考えてました(作るとは言ってない

なぜこれを試していたかというとZBrushでローポリでUVマッピングしたメッシュを別のツールでリトポした後にまたZBrushでハイポリにしてpolypaintして作ったテクスチャを貼るみたいなフローを試したかったからです。プロな方たちとは使ってるツールセットが違う関係でなかなか先例を見つけられずに手探りになりがちだったんですが、結果的にそのフローで問題なさそうだったので、テクスチャ作成はZBrushでやります。

Fibermesh

  • Fibermeshはゲーム用途には使えないので触らなくてもいいかなと思ってたんですが、髪のプロトタイプを作るのにいつも苦労するので試してみました。

f:id:cignoir:20160918044502p:plain:w300

新作の子でやや短冊気味に毛を生やしてみました。粘土をこねるよりは頭の中のイメージに近い形でプロトタイプ作成出来たと思います。髪の幅や関節の量などかなり細かくパラメータをいじれるので工夫次第で色々出来そうでした。上の画像のFibermeshオブジェクトを通常のPolymeshに変換して大体17kポリゴンぐらい。ここからdynameshするなり、3D-Coatに持っていってリトポするなりして目的に合った形式に変えていったり出来ると思います。

髪のテクスチャはノープランなので方法を考えないといけないんですが、ローポリなら短冊状の板ポリを結合せずに貼っていくユニティちゃん方式(?)にしようかと思います。

VR

現状のVRは人体へのフィードバックが希薄で、あまり幸せになる技術じゃなさそうだと思っていて興味が薄いのですが、TGSで色々なゲームの紹介がされていたので動画を眺めていました。予想以上に面白そうで体験したいなと思いましたし自分の想像力の貧困さを恥じました。ただやはり前述のフィードバックの問題があるので、有効な活用方法がARのアプローチ(現実+α)と近い場合に限る気はしてます。

技術面以外の感想としては美少女VRゲームで使われているモデルが可愛くないのが目立つかな、と……。これは多分偶然じゃなくて、VRを使うにあたってリアルを指向した結果が自分の肌には合わなかったのだと解釈してます。そこで、自分はどちらかというとややリアル指向なモデルを作ろうとすることが多いので、本質的なキャラクターや造形の魅力を自分自身の感性でちゃんと作っていかないといけないのだと戒めました。今はまだ技術不足で表現力がそもそも貧しいのですが、それに甘えて深く追求することをしてなかったなと思います。

気になるツール

Marvelous Designer(MD), MARI

気になる。

久々で雑談的になりましたがここまで。

Dynamoid v1.2 の新しいオプションについて

AWSのDynamoDB向けORMで"Dynamoid"というgemがあるのですが、以前投げていた下のPRが無事マージされたので変更点を紹介しておきます。

github.com

強制的に created_at と updated_at カラムが付加されるのを防ぐオプション

これまでレコードを保存する際に、timestamps用カラム(created_at, updated_at)がデフォルトで強制的に付与されていましたが、以下のように設定することで無効化出来るようになります。想定しているユースケースは、既に運用中のDBで使用したいがカラムを増やすわけにはいかない場合や、timestamps用のカラムが既に別の名前で作られている場合などです。

Dynamoid.configure do |config|
  config.timestamps = false
end

masterにはマージされましたが現時点ではrubygemsにはpushされていないので、もし変更を取り込みたい場合は下のように直接gitリポジトリを指定してinstallする必要があります。

gem "dynamoid", git: "https://github.com/Dynamoid/Dynamoid.git"
# または
gem "dynamoid", github: "Dynamoid/Dynamoid"

つい最近メンテナが2人増員されて活発になっているので、近いうちにrubygemsの方のバージョンも上がるでしょう。

追記 2016-09-05

v1.2.1 がデプロイされました

dynamoid | RubyGems.org | your community gem host

強制的にテーブル名にプリフィックスが付与されていたのを防ぐオプション

ついでに次のバージョンで更新予定の以下のオプションも紹介しておきます。強制的にテーブル名に付与されていたnamespaceを無効化できます。こちらも現時点で取り込みたければ同様にgitリポジトリ経由でinstallする必要があります。

Dynamoid.configure do |config|
  config.namespace = nil
end

関連Issue

これらの対策のために施された世のモンキーパッチたちを消し去ることが出来れば幸いです。

モデリング練習ブログなのに技術系の記事を書いてしまって申し訳ございません……

DailySculpt

f:id:cignoir:20160815025619p:plain:w300

f:id:cignoir:20160815025632p:plain:w300

手探りだったので参考になるかわかりませんが、弓作りは以下の工程を繰り返していました。 Dynamesh→SliceCurve→PanelLoop→SmoothGroup→AutoGroup→Inflate(Deformation)→ZRemesher

弓を持たせたことでグッと元絵に近付いた感じがあります。 それと同時に微妙な寸法の狂いや粗が目立ってきました。

ここでクオリティを追求していくのもいいんですが、一旦この子からは離れて、 最小構成の別モデルでテクスチャ作成や軽量化、リギング周りを学ぶことを考えています。

スカルプトの雰囲気は掴めてきた。

精度とスピードを上げていきたい。

DailySculpt ほか

ポケモン

誕生日にリリースされました。現在レベル20です。プレイ中の事故にだけは本当に気をつけましょう……

恐縮ながらポケモン以外の誕生日プレゼントを贈ってもいいよという方はこちらから!

Amazon.co.jp

デッサンをはじめてみました

f:id:cignoir:20160801022206j:plain:w300

おそらく授業以外でやったことがないデッサンをこの歳で始めてみました。まだ3枚だけですが気が向いたときに描いてます。気付きが山程あったので後日デッサンについて考えたことをまとめたいと思います。

マント

円柱を変形して、マスクからExtractして原型を作りました。 f:id:cignoir:20160801021531p:plain:w300 f:id:cignoir:20160801021551p:plain:w300

ハードサーフェイス

ついにやる時が来た。軽くネットを漁ってもこのやり方だけやればOKというやり方があるわけでもなく人によってやり方がマチマチな感じ。ですが、大体下のやり方かその組み合わせになるみたいでした。

  • ZRemesherで削る
  • ZSphereのトポロジ編集
  • トポロジブラシ
  • ポリグループを分けてパネルループ
  • ZModeler

ハードサーフェイスに対してなんとなく恐怖感がありましたが、予想通り通常のスカルプトとは別のパラダイムが求められますね。

超鈍足ですが、実験しながら弓を作っていってます。とりあえず原型はZSphereでシンメトリな骨組みを作って、DynameshかけてClayBuildupで肉付けしました。

f:id:cignoir:20160801020155p:plain:w300

その後にマスクでポリグループを分割して、ZRemesherやパネルループを試してみたんですが、自動でやるにはちょっと複雑だったみたいで、なかなか綺麗なトポロジに出来ませんでした。というわけで地道にZSphereのトポロジ編集でポリゴンを1枚1枚貼っていきました。

f:id:cignoir:20160801020612p:plain:w300

リトポに関しては、普通にメタセコ(プラグイン有)のがやりやすかったなぁという印象。今回は勉強のために、ZBrushでローポリ編集していきます。ざっくりリトポが終わったらExtractやZModelerを使ってディテールアップしていってます。

f:id:cignoir:20160801020707p:plain:w300

しばらくはディテールアップ作業になると思います。カッチリした形状も自由自在に作れるようになりたいですね。

DailySculpt

進捗が芳しくなくて間が空いてしまいました。

花IM

花冠用の花をIMブラシで作っていたのですが、2Dイラストと3Dと実際の花の構造とで 折り合いを付けることがなかなか出来ず何度も作り直していました。

最終的には色んな花の花弁と雌しべとがくを合成しました。

f:id:cignoir:20160711030305p:plain:w300

これを花冠っぽく配置して……

f:id:cignoir:20160711030252p:plain:w300

色を塗るとこういう感じに。

f:id:cignoir:20160711030233p:plain:w300

色塗り

小物をいくつか作り足しました。ハードサーフェイスな金属の小物はうまく作れてなくて課題が残りました。 そして、オブジェクトの大部分が出来てきたので一旦全体の色塗りをすることにしました。

f:id:cignoir:20160711030317p:plain:w300

カラーパレットを作る方法ないんですかね。

f:id:cignoir:20160711030325p:plain:w300

意外とそれっぽくなっていますが、3Dはライトによって結構変わっちゃうのでどこで着地すればいいのかがよくわかっていません。例えばぱっと見陰影が控えめでもうちょっとコントラストを上げてもいいようにも見えるんですが、塗りではなく光源のIntensityで調節するという手もあります。結局は本番(どこ?)の環境下でベストな状態に出来れば良いのかな、と思います。もしかしたらデファクトスタンダードな環境設定があるのかも。

まぁこういう塗りのゲーム用モデルをよく見かけるので、こういう風に塗ってるのかーというのをなんとなく掴めた気がしてよかったです。

次は、マントを先に作っておこうと思います。