Starlight Ensign » Tips
Starlight Ensign

Boneの親子関係と循環参照

ボーンを弄っていて,これはメモしておいたほうがいいなと思った項目をメモ.

“Ctrl+N”でボーン初期角度の再計算

ボーンを追加すると,下の画像のように勝手に変な角度で設置されることがある.そういうときは,ボーンを選択してCtrl+Nを押す.

Recal

すると,Recalculate Rollメニューが出てくる.例えば,Global +X Axisボタンを押すと,下の画像のようになる.

Recal2

中央のボーンの向きがまっすぐになったのがわかる.こういう風に,変な角度のボーンをうまいこと調整できるので便利だ.単にポーズを付けるだけなら初期角度は気にならないかもしれないが,コンストレイントと組み合わせようとすると,軸方向の調整は必須だ.IKのPole Target設定時や,Copy Rotationをするときは,軸を任意の方向に合わせておかないとうまく制御できない.

循環参照でボーンの位置がおかしくなる時の対応

このふたつに限らないかもしれないが,Parentの親になっているボーンが子のボーンを参照すると,動きがおかしくなる.(循環参照でおかしくならないように,追従にリミットがかけられているのだと思う.)

koshi

例えば上の図において,選択中のCAL.hip.RはCAL.damp.leg1.RのY軸方向に-Zを向けるようにDamped Trackが設定されている.この場合,CAL.damp.leg1.RをCAL.hip.Rの子にしてはいけない.そうすると,ボーン角度の調整に変なラグが出て,うまく制御できなくなる.そのうえ,画面上でズレた様に見える場合はレンダリングされた画像もズレてしまう.おそらく動画作成をした際には大きな問題になるだろう.この問題はConnectedにするか否かにかかわらず発生する.

ずれ

上の図はズレた状態である.親となっているボーンを動かした後にRMBで移動をキャンセルすると,子のボーンだけが取り残されて画像のようにズレる.これを回避するためには,下の画像のように組む必要がある.

z

構成が分かりやすいようにボーン位置をずらしてみると上の図のような感じ.上記の画像では,腰回りのボーンは全てDEF.hipの子になっている.こうしておけば,下半身の動きに脚は追従するし,かといって循環参照にはならずに済む.最悪,ボーンの親子関係を断ち切ってCopy Locationコンストレイントを追加する方法もありかもしれない.

あまり難しく考えなくても,対応策としては他のボーンの位置や回転を参照するボーンは,末端に来るようにする(他のボーンの親にしない)という原則を維持すれば,問題ないだろう.

データブロックを中心としたBlender解説書pdf配布

Blenderの解説は,ネット上に結構ある.時にはブログ記事の形であったり,解説実況動画であったりする.これらの情報は,ある程度Blenderを使い慣れた身からすると,かなり役に立つ.しかし,Blenderに限らずネット上にある情報には結構偏りがあって,3DCGに全く触れたことがないような素人に対する初歩の解説書と,最新機能や知っていると便利な上級者向け機能解説のどちらかに偏りがちだと思う.

自分がBlenderを始めたのはShade,Metasequoiaに次ぐ3つ目の3DCGソフトとしてだった.なので,基本的なショートカットキー一覧は気合で覚えるとして,モデル制作の流れについては把握できていた.乗り換え組なので,最初から中級者だったのだろうと思う.そこで困ったのは,中級者向けの解説があまりないことだった.

自分が考える中級者向けの情報とは,3DCGソフト一般の使い方ではないが,個別のアドオンや機能にまで細分化されていない部分の情報のことである.Blenderにおいては,データブロックの扱いがこの段階に相当するように思う.

というわけで,あんまり解説がないデータブロックについてを重点的に書いた解説書のようなものを作ってみた.下のボタンからダウンロードできるので,読んでみてください.Wordで作ったので,無駄にWordの機能にも詳しくなった気がする.

2014/3/7 誤植修正

Blender中間学習ver1.4

わかりにくいとか,こうした方がいいというご指摘があったら,コメントなりTwitterなりで投げて貰えれば,対応します.

Composite Nodeで横一直線に光るエフェクト

flash

こんな感じになるやつ.RenderLayerのPassesでEmitにチェックを入れて,Emitを設定した表面材質を取り出す.それをGlareフィルターに突っ込んで,横に引き伸ばす.Fade値を1に近づけるほど,無限長の直線に近づくようだ.

同じようなセッティングで,Streaksを4つに増やせば十字に光るようになる.Angle Offを45度に設定すれば,X字に光るはずだ.

viewport設定とメディアクエリによるレスポンシブデザイン

viewportを設定し,スマホやタブレットではタッチに最適化した要素が表示されるようにサイトを修正した.判定基準はユーザーエージェントにおけるデバイス情報ではなく「画面サイズが512px以下か否か」なので,PCでも横幅を狭くすると表示を試すことができる.デバイス情報を用いないことで,新デバイスが登場する度にきちんと表示されるか心配になる必要はない.viwport設定でwidth=device-widthと設定してあるので,大抵のスマホ端末では幅が512px以下に設定されるので,適切に誘導されるはずだ.NexusやKindleでは幅が500px以上あるので,PCサイトと同様の見た目になるはず.

もともとこのサイトはdiv要素やp要素にclassとidを大量に付与して,CSSで見た目を制御していた.そのため,スマホ用サイトを新たに立ち上げるよりは,CSSにメディアクエリを使って制御したほうが楽だ.主に弄ったのは

  • !important 設定によるリンク要素の強制ボタン化
  • floatを設定した要素の幅をそれぞれ100%にすることでサイドバーを下に移動
  • 画面幅が狭い時はトップメニューをfloat化してボタン化することで押しやすく

といったところ.トップメニューは上下のボーダーを上書きした上で,#topMenu ul li で基本的な設定を施し,#topMenu ul li:nth-child(2n)で偶数番目のボタンに対してfloat:right;を設定してある.基礎的なことを組み合わせるだけでも,だいぶわかりやすいサイトは作れるとわかったので良かった.

MMDモーションファイル(VMD)をBlenderの自作モデルに適応するまで

タイトルの通りのことを実現できた.この効果は思っていたより絶大で,MMD用モーションデータというライブラリ(しかも,使われることが前提になっていて写真トレス問題みたいなことが起こりづらいので気軽に試せる!)がBlenderリソースとして使えるようになる.これはポージングのテストで,FreeStyleと組み合わせて使っている.

57s

具体的な方法は続きに書いた.

続きを読む