2016年12月8日木曜日

レポ Bento対応の尻尾を作ってみる




この記事は「セカンドライフ技術系 Advent Calendar 2016」のために書きました。
他の技術系の記事はこちら



ついに公式にBentoが対応されました! 
細かい表情や指の動き、それに加え天使の羽や尻尾や四足の動きの出来るアバターが作れるようになりました。

BlenderとAvasterで新しく追加されたボーンのTailの部分を使って動くしっぽを作ってみたいと思います。
実装されたばかりで情報もあまり無いため間違ってたりするかもしれませんので、制作日記という形で記録重点で行きたいとおもいます。
とにかく作ってみたかったんだ

とりあえずBento対応のAvastarをインストール

この記事を書いている時点のBento対応の最新版はAvastar2.0-23なのでダウンロード。
そしてインストール。
Machinimatrix

BlenderでBento対応アバターを出す

Blenderを起動。通常のAvastarと同じようにshift+Aでアバターを出す。
通常版と違って、Basic(今までのやつ)とExtended(Bento対応の)の二種類。
今回はExtendedを選択。

でた!


あれ?
rez直後は羽や尻尾は非表示になっているみたいなのでRig DisplayからとりあえずBento対応の骨を全部表示するとこんな感じ。


顔と手にみっちりボーンが詰まっている

尻尾のメッシュをつくる

今回は猫のしっぽを作ろうと思います。

通常のリグ入りのメッシュと同じようにバインドする、今回はBoneでバインド。


余分な場所にもウェイトがのってたのでRemove Weightで消す。調整。
Collada形式に書き出し。特に設定は変更なしで大丈夫みたい。

SLにアップロード、これも特に変わった事はしない。



装着。刺さってるみたいに。

尻尾の部分はSLの基本のアニメーションでは動かないので、別にアニメを用意する必要があるみたい。
で、アニメをつくる。緑色のControl bonesを使って通常のAvasterでつくるのと同じ要領で作れる。尻尾の部分だけ固定。






できたー!




尻尾の場合、普通のリグ入りメッシュをつくるのと変わらない感じ。でもアニメがないとただの棒。尻尾を伸ばそうとか余計なことをしようとしなければ結構簡単でした。


実はFile> Open Template >Bento angelでBento全部入りのアバター出すことができる。
とりあえず動かしてみたい人はこれを触ってみるのもいいのかも。






-------------------------------------------kiritori-----------------------------------------------------------
ここから先はもっと適当にやってるので間違えてるかもしれませんので注意
もっといい方法があったら教えて><
でも、しっぽがちょっと短いような…伸ばせるかな??
今回はながい恐竜の尻尾

やっぱりもう少し先まで骨を入れたいかなー

緑色のControl bonesを一回伸ばして、バインドしてウェイトを塗ってからそのまま骨の位置を確定しないでエクスポートすればいいんじゃないかなーどうかなー

この画面で骨の回転やら位置やら制限解除出来る

まだウェイトは塗ってない、emptyでバインド
塗れた、なんか塗ったそばからすごいのびる?????

あーだめかもー





なんでかColladaでエクスポートも出来ないのでウェイトを全部消して

"Snap rig to pose"がそれっぽいので押して、骨がうにょっと変形した

そしてウェイトをぬりぬり

あ!いいかも!
うごかす


あー


さっきの猫の尻尾アニメを再生するとグチャっとする。この恐竜の骨で専用アニメを作れば行けるかも。
この恐竜用のアニメを作って…再生!



できたーー!


SLのボーンがどうなっているかは Develop > Render Metadata > Joints で見ることが出来る




このページで作った尻尾と尻尾用アニメをメインショップに置いておくので、どんなものか試したい方どうぞ〜。

http://maps.secondlife.com/secondlife/Nautilus%20-%20Shalim/113/234/4087


参考
avastarさんのページがすごくいい情報ばかりなので一回読んだほうが良いかも。

Rigging
http://avastar.online/help/rigging/
Bone Constraintshttp://avastar.online/fragment/bone-constraints/

※avastar2.0.23でBlenderを終了して、ファイルを開くとRig Displayが通常のアバター用のものになってしまうバグもあるので注意。次回のアップデートで直るらしいよ。







2016年12月7日水曜日

BlenderとAvastarでポーズやアニメをつくる




この記事は「セカンドライフ技術系 Advent Calendar 2016」のために書きました。
他の技術系の記事はこちら



Bento実装で尻尾や羽を動かすのにアニメーションも必要!でもまだそんなに出回ってない!ってことでBlenderとAvastarでポーズやアニメをつくる方法です。

AvastarとはBlenderで使う有料アドオンです。Second lifeでものづくりするための機能に特化しているためとても便利。リグ入りメッシュ服やアバターを作りたい時、ポーズやアニメーションを作れます。おすすめ。


今回はこのアニメーションを作ります。


まず、Blenderを起動してAvastarのアバターを出します

画面をアニメーション用のパレットに変更します


  1. 一番上のバーにパレット変更ドロップダウンメニューがあるので"Animation"を選択します。
  2. すると以下の様な画面になります。今回使用するのは丸で囲っている部分です。

タイムラインをセットします

  1. まずstartを0、Endを100にします。
    これでBlender上でアニメーションを再生する時に0〜100の間をループします。Endの数値は変更可能です。
  2. そして現在のタイムラインを0にします。

アバターの使わないツールを消します

  1. まず3D View上にカーソルを置いて キーボードの"T"を押してメニューを出します。
  2. 出したメニューの一番下Avastarタブの"Rig Display"メニューのControl BonesGroupsのボタンの色の濃い(表示)部分を"Arms"だけにします。

  3. アニメに必要なツールは緑色(Pose mode時)の SL Control Bonesです。

最初の一コマ目のポーズをつくる

  1. SL Control Bonesを選択して3D Viewのツールバー上にあるドロップダウンメニューから"Pose mode"を選択します。
  2. SL Control Bonesを動かしてポーズを作ります。
  3. 動かし方はオブジェを動かすときとほとんど同じで移動と回転を使います。


ポーズを固定する

  1. 最初のポーズが決まったらSL Control Bonesを全て選択します。
  2. そして3D View画面上でキーボードの"I"(アイ)ボタンをおして"Rotation"を選択します。(関節の回転を固定する)
  3. 左のDope Sheetにオレンジ色のが出来ました。
※一番下のWhole Characterは選択してはだめ! 
※LocRotはLocation(位置)とRotation(回転)の両方を固定する。
アバターを移動させたいときなど一部のSL Control Bonesでこれを使う。

ポーズをコピーして一番最後のフレームにペーストする

  1. このアニメはループしたいので最初のコマと最後のコマのポーズを同じにする必要があります。 
  2. Dope Sheetのタイムラインが0のところの◆を全て選択します。 
  3. そのウィンドウの下の右端部分にクリップボードアイコンがあるのでクリックします。これでコピーされました。 
  4. そして一番最後のタイムライン(緑の棒)を動かして以下のアイコンをクリックするとペーストが完了します。
 

アニメの間をつくる

  1. 上記のポーズを作って"I"(アイ)ボタンをおして"LocRot"か"Rotation"で固定するを繰り返して合間のアニメを作ります。
  2. この場合は動かしたい部分だけ固定大丈夫です。

データーを書き出す


  1. SLにアップロード出来るデーター形式で出力します。今回はBVH形式で出力します。
  2. SL Control Bonesを選択するとProparties画面にAnimation export メニューが出ます。
  3. そこのパラメーターを以下のように入力します。
    1. プルダウンからBVHを選択
    2. Start frame:1
    3. End frame:100
    4. Prepend reference にチェック
    5. in:0 out:100
  4. Export Avater actionボタンを押して書き出します。


アップロードをする

SLに作ったアニメをアップロードします。(Build>Upload>Animation(10L$) )

  • Priory(優先度)4
  • Loop にチェック




  • Priory(優先度)
    • アニメの強さです(弱)0〜5(強)まで設定できて、同時に複数のアニメが再生された場合、Prioryが高い方が再生されます。通常は3か4を使います。
  • Hand pose 
    • アニメ再生中の手の形を決める。
  • Expression 
    • 表情です
  • Preview while
    • プレビュー画面でSLに組み込まれているアニメーションを再生して確認ができる、特に気にしなくて大丈夫。
  • Loop 
    • ループをするかとループをする部分を決める基本はチェックだけ使ってそのまま
  • Ease In/out 
    • アニメが切り替わるとき(始まる・終わる)シャッキリ度を決める。0だとシャッキリ。数値が大きいとゆっくり切り替わる。すごく短いアニメでこの数値を大きくするとアニメが再生されない事がある。


完成!


参考

Avastar-My first Animation

Avastar-Pose a Character
今回まったく触れなかったDope sheetの下のウィンドウも上手く使えばふわふわ浮かんだりするポーズが楽に作れたりします。


2016年10月26日水曜日

Meshのテクスチャーが巻き戻る

原因は分からないのですが、対処法はあるのでメモ。

リグ(ボーン)入りのMeshでたまーにあるのですが、テクスチャを設定しても、コピーしたりほんの数秒たっただけで元のテクスに戻ったり予想外の動きをする時があります。

白いテクスチャがコピーすると両方赤いテクスチャに戻る

こういうときはブレンダーなどでデーターを出力する前にメインにしているオブジェクトを別のオブジェクトにして出力してからアップロードすると正常な状態に戻る場合があります。ブレンダーだと最後にsift+右クリックして選択したオブジェクトです。




※別の原因として、まれにSecond lifeが不安定な時に巻き戻ったり、ひとつ前の状態に戻ったりするとこがあります。これはmeshや普通のプリムにも起こります。

2016年9月15日木曜日

Meshとプリム数とランドインパクトの話

作りながら感覚で覚えたので用語が変かもしれない
MeshのLI(ランドインパクト)を小さくする方法、Sarver(プリム)数編です。


アップロード画面の説明

まず、メッシュをアップロードする時。ランドインパクトに関わる数値が3つ有ります。
この中の一番大きな数字がアップロード時のメッシュのランドインパクトに適用されます。 


今回は一番右のServerの数値を低く抑える話です。


Sarverの数値を抑える方法

Sarverの数値はプリム(リンクを解除した時の塊)の数によります。大体一プリムにつき0.5増えます。メッシュの中にスクリプトを入れた場合も増加。
下の画像は6個のリンクされたメッシュをアップロードしたので6個☓0.5負荷でServerの数値は3です。
ランドインパクトは3。

↓ 

これをUVマップを一切変えずに6個のテクスチャの面を持った一つのプリムにします。
すると、プリム数はひとつなのでSarverの数値が0.5になりランドインパクトは1になります。




複数のUVテクスチャ面を持つ単一のプリムの作り方

ひとつ目は別々のプリムでメッシュを作って、それぞれにマテリアルを振り分け、最後に結合(Join)する方法。一番簡単。

一番上のプリムのマテリアルを変更する

1.『3DViwe画面』のObject Modeで一番上のプリムを選択します。
2.『OutLiner』画面のピンク色の玉のアイコンをクリックしてマテリアル画面を表示します。

3.下の画面のマテリアルタブのピンク色の文字で囲った『+』をクリックして新しいマテリアルを作ります。これで一番上のプリムを別のマテリアルにすることが出来ました。


4.全部のプリムにマテリアルを振り分けられたら、『3DViwe画面』のObject Modeで全てのプリムを選択。
5.『3DViwe画面』上にマウスカーソルを乗せてキーボードの『T』を押して『Tool』タブを出す。
6.『Tool』タブの『Join』ボタンを押して全てのプリムを結合する。
後は普通のメッシュと同じようにアップロードするだけです。


注意点はマテリアルを振り分ける時に、別々のマテリアルを選択することです。
同じマテリアルにしてしまうとその部分は同じ面として扱われて、別々のテクスチャを割り当てられなくなります。
※色は被っても大丈夫、色は分かりやすい用に塗っているだけです。


※『Join』をする時にそれぞれのプリムのUV Mapsの名前が同じであることを確認してください。名前が違うとUv mapが統合出来ず、バラバラのUvマップになってしまします。
 SLにアップロードする時にUvマップが複数あると、ひとつのUvマップしか適用されないっぽい。


既に結合してあるメッシュに複数のマテリアルを振り分ける方法

1.『3DViwe画面』のObject Modeでのメッシュを選択します。『Edeit Mode』に変更します。
2.『OutLiner』画面のピンク色の玉のアイコンをクリックしてマテリアル画面を表示します。『+』をクリック、その下の『New』ボタンを押して新しいマテリアルを作ります。区別がつきやすいように水色にします。


3.『3DViwe画面』の『Edeit Mode』で違うマテリアルを割り振りたい部分を選択します。今回は真ん中の立方体のマテリアルを変更します。
4.『マテリアルタブ』に戻り、新しく出した水色のマテリアルを選択。
5.『マテリアルタブ』の『Assign』ボタンを押して、水色のマテリアルを選択をした部分のメッシュに適用します。

6.完成、後は普通のメッシュと同様にアップロードします。




参考
Calculating land impact
https://community.secondlife.com/t5/English-Knowledge-Base/Calculating-land-impact/ta-p/974163
Uploading a mesh model
https://community.secondlife.com/t5/English-Knowledge-Base/Uploading-a-mesh-model/ta-p/974185