2016年3月6日日曜日

sht_hair シェーダー用specular texture blue channel

さっちゃんのガワとアニメ作りがひと段落したのでテクスチャを作っていたのですが
髪の毛用のnormal mapを作り

コレを適用した所

いきなり禿げ散らかしました

れいむを作った時にも似た事が起こったのでデフォルトのまま使っていたスペキュラーテクスチャーのblue channelを0から50ほどに

そして適用

おさまりました

つまりsht_hair シェーダー用specularテクスチャーのblue channelは同じくhair シェーダー用のnormal mapを参照して透過を制御する、と
普通にdiffuseテクスチャーのalpha channelを適用するより凹凸を参照しながら透過させるのでより立体的に見えるようです

謎が一つとけました
でもまあこんなややこしい事はマニュアルにちゃんと書いときやがれください運子!


2016年3月5日土曜日

ShouldersAndHands用アニメの留意点3

まさかこのアニメ関連で三回記事を書くとは思いませんでした

駄マニュアルにはこうあります
HandL_solo_LR: - The left hand moves left and right from the wrist at frames 0 and 30, while going
through idle at frame 15.

idle at frame 15.

他のHand_soloアニメも同じく15.
ではその通り作ってインポート

ずれました

公式に文句言ってやろうかと思いましたが英文考えるのがめんどくさいので止めました
soloアニメを個別にインポートし、ローカルでずれたフレームを検証という苦行を六回繰り返して得た結論

HandL/R_solo_UD = idle at frame19
HandL_solo_LR = idle at frame 19
HandR_solo_LR i= dle at frame 13
HandL/R_solo_Twist = idle at frame 13

これでインポート

誤差はあるかもしれませんが許容範囲

いやはやてきとーな仕事してはりますなww

2016年3月4日金曜日

ShouldersAndHands用アニメの留意点2

faceRigではshift + clickで腕を動かせます
shift + ctr + clickで手首を動かせます

で。
Hand_solo_UDアニメを作りました
手首を上下に動かすアニメです
インポートすると
shift + clickの状態でHand_solo_UDの0フレームが再生されます
これバグじゃねえのかと公式に書こうかと思ったんですが、これをバグとして処理してしまうと既存のアバターのアニメを全部作り直す必要があるのでやらないでしょうし止めました

ですので腕を動かす以下のアニメはHand_solo_UDの0フレームでの手首の回転分を考慮して作る必要があります
HandL_closeDown_LR
HandL_closeMiddle_LR
HandL_closeUp_LR
HandL_farDown_LR
HandL_farMiddle_LR
HandL_farUp_LR
HandR_closeDown_LR
HandR_closeMiddle_LR
HandR_closeUp_LR
HandR_farDown_LR
HandR_farMiddle_LR
HandR_farUp_LR

私はもうめんどくさいのでHand_solo_UD側で手首を上に動かないようにしました

ShouldersAndHands用アニメの留意点

デフォルトで指を曲げているポーズで作りました


手を動かすアニメで開かせました


インポートします

指は動きませんでした

○ァック!!

指を伸ばした状態で作り、スペシャルポーズ等で曲げるのがこの場合の正解でしょうか
もっとも現時点ではスペシャルポーズ・アニメ共にクライアント側の不具合で動きません
Holtech仕事しやがってください

*追記
次の記事に書きましたがshift + clickで腕を動かすとHand_solo_UDの0frameが再生されます
そしてHand_soloアニメだと指が動かせます
ですのでHand_soloアニメで手首を動かすのと同時に指を動かせば手を開けます

次の次の記事に書きましたがHand_soloアニメはidle poseをとらせるframe数がおかしな事になっていますので注意

2016年3月3日木曜日

愚痴る

faceRig用の3Dアバターを三体作ってわかった事

素体有りの場合にfaceRig用に作り変えて使えるようにするのに大体一週間かかります
素体から作るとなるとさらに短くても一週間程度必要です
これはモデリング、リギング、スキニング、アニメート、及びfaceRigの仕様に相当慣れている私の場合です

さて、計二週間。安く見積もって日当1万として14万。技術者としては破格です

仮にアバター一体をDLsiteで税込540円で販売するとして、手取りは一本あたり270円。
つまり519本売れないと14万をpayできません
一本1080円だと手取り648円なので217本でpay出来ますが、私なら買いません
一本108円なら売れそうな気がしますが手取り54円なので2593本出ないとpayできません
まだfaceRigユーザー数が少ない現時点では非現実的な数字です

Live2D用のアバターの場合なら二十時間、三日ほどで何とかなりますから3万として
一体540円で販売なら111本、108円で販売なら555本。
まだ現実的な数字ですが無料で出来のいいアバターが手に入るのに買う人はそう居ないでしょう

つまりfaceRigで商売すんのは無理じゃね?というアレな結論
いやまあひょっとしたら爆売れするかもしれないんで売ってみますが。

フリーで技術投げ売りしてる同業者全滅しねえかな!すぐでいいよ!!

2016年2月11日木曜日

sht_hair シェーダーを使ってみる

可愛いれいむをfaceRig用に作り直しているのですが
sht_hairという名前からして髪の毛用らしいシェーダーがありましたので使ってみました

要素は以下四つ
diffuse("d")
normal("b")
specular("s")
anbient occlusion("ao")

diffuse及びnormalは通常通りでしたので省略
specular("s")用のテクスチャーを作ります

Red channel
さて公式マニュアルにはこの一文があります
-The red channel of the specular texture is not used, it should be set at 255 default value.
「スペキュラテクスチャのR channelは使わないから255にしとけ」

では比較
私はもうこの駄マニュアルは参考程度にしか信じません

Green channel
-used to set values for different materials,from 0 for hair and cloth,to 255 for other material types(metal,plastic,etc).
0は髪や服、255はその他

比較
違いがわかりませんので0にしておきました

Bule channel
-used to specify areas of object that remains unaffected by lighting resulting in a light emitting effect when placed in the shadow (glow in the dark effect), 0 for non emissive and 255 for full emissivity.

とりあえず0にしてみると
禿げる

嫌味か貴様ッッ

禿げるというかカメラから遠い谷になっている部分が透けるようなよくわからない挙動です
25%でも所々禿げ散らかし、50%だと何も無し
一部変形もおこっていますので何か別の用途でしょう
とりあえずemissiveじゃありません

よくわからないので禿げ散らかさないように適当に
Alpha channel
-gives information about the Specular Power 0 for no specular 255 full specular.

テストしてみると
影の部分では変化が無いのでスペキュラーの強さではなく光の影響を制御するようです
明確に境目が出てますので何かしら変わるんでしょうけど正直違いがわかりません

よくわかりませんが境目がでるように適当に濃淡をつけました

結果
faceRigは光が物凄く強い背景がありますので抑えめにしました


次にanbient occlusion("ao")を
通常の3Dだと嘘影用に使われる皆大好きなアレです
駄マニュアルにはこうあります
-The ambient occlusion textur is interpreted like this:
Red channel: Not used, 255 default value.
Green channel: Direct light Attenuation 0 means no direct light (only ambient and radiosity) 255 full direct light intensity.
Blue channel: Not used, 255 default
Alpha channel: Base PPAO

デフォルトのaoテクスチャーは全て255です
Red channel
変化無し。255で良し

Green channel
説明通りdirect lightの影響度の制御のようです
0だと光が当たっても明るくなりません

Bule channel
変化無し。255で良し

Alpha channel
一応影はつくようですが、100%と0%ですらうっすらとした差しか出ません

これGreen channnelだけでいいんじゃねえのとか思いつつ
specular用に作ったグレースケール画像をGreenとAlphaに張り付け
光が当たった時に髪の筋が少し出る程度にしました

ao用テクスチャの説明に限っては間違いは無いようです
最初に説明文読んだ時にウッソくせえ('A`)とか思ってスマンHoltech!

でも疑われないようなちゃんとしたマニュアル作ってくださいやがれHoltech!!

2016年1月29日金曜日

Pseudophysics driven bonesを使って揺らしてみる

Pseudophysics driven bonesはfaceRigで使われる髪の毛やアンテナ等の動くと揺れるボーンです

この特徴は
・振り子運動である。移動による圧縮延伸は起らない
・物理では無くあくまで揺れるだけの物で重力の影響を受けず当たり判定も無い
・現行verでは揺れる角度の制限も出来ない

うん、ごっつ使い辛い!

しかし受動的に揺らすにはコレしかありません

基本的な構造は下記が一セット

(Root > 揺らすボーン) + フラグ用Locator

揺らすボーンは各Root毎に一本限定
フラグ用ロケーターはボーンでも可ですがボーン数には上限があるので出力されないロケーターを使うのがベターです
フラグ用ロケーター名は"Rootボーン名" + "_planeNormal"とする必要があります
フラグ用ロケーターを持つRootボーンの子が揺れるようになります
例: Hair > HairPhys > Hair_planeNormal だとHairPhysが揺れる

フラグ用ロケーターの場所はどこでも関係ないようで、Rootの親にしても揺らすボーンの子にしても認識しました

自分が解りやすい場所に置いておけばいいようです

取りあえず作ってみます

適当に作った角柱にボーンを入れてほどよく曲がるようにウエイトを塗ります

フラグ用ロケーターも忘れずに

インポートしてテスト

揺れました

が。

この構造だと前後と右方向には揺れますが左方向には揺れませんでした
マニュアルにはこうあります
-The Y axis of this third bone represents the normal of a collision plane, which can be used to restrict the physics bone movement.
このthird boneというのがフラグ用ロケーターです
今のロケーターの回転軸を見てみるとこうなってます

Y軸がrepresentsされているのであれば左方向にも動き、後方には動かないはず

マニュアルにはこうもあります
-Beware that in some 3D applications Y and Z axis must be swapped from what Facerig is using.
Z軸が基準となって動くのであれば左方向には揺れない事に説明がつきます

実験
Y軸の方向はそのままにZ軸を変更

そしてテスト

前後左右に動くようになりました
Mayaの場合はZ軸が基準になるようです

つまり揺れるボーンの可動域はオリジナルの角度から+-60度ほどで、かつフラグ用ロケーターにより定められた範囲内に限る、と

これを利用すると髪が顔を貫通しないようには出来ます
しかしおっぱいの微妙な揺れを制御するには絶望的に足りません!
おっぱーとしては機能増強を強く要請します!!

って公式スレッドに書いたら消されるでしょうか

2016年1月23日土曜日

表情が動くモデルを作ってみる11 アイコンとプロフィールを作る

今回はアバター選択時のアイコンとプロフィールを作ります


イケメンな写真を撮って

縦横比1:1に切り取り適当な大きさにリサイズ
256x256もあれば十分でしょう
ico_アバター名.pngで保存
ヤマネコさんの場合はico_yamaneko.png
SteamLibrary\steamapps\common\FaceRig\Mod\VP\PC_CustomData\Objects\アバター名フォルダーの中に置く



ついでにプロフィールの編集を
同フォルダー内にあるcc_names_avatarアバター名.cfgをテキストエディタで開き
set_friendly_name avataryamaneko yamaneko

set_friendly_name avataryamaneko 'YAMANEKO-SAN'
に変更して名前表記をYAMANEKO-SANに

次にプロフィールを追加
set_avatar_skin_description avataryamaneko default 'Luchs - the gurdian of Serene Coast forest'

テスト


プロフィールの変更は適用されてますがアイコンが出てない

公式フォーラムを検索してみると「ico_フォルダー名.png」にしろとの事
ヤマネコさんの場合はico_avataryamaneko.png

変更して再テスト

小アイコンは適用されましたが大アイコンが出てない

再度公式フォーラムを彷徨うと
「コンフィグファイルでアバター名を変更した時は二行目の『set_skin_for_avatar avatarアバター名 Default Default』を消せ」と

消して保存して

再々テスト

良し

表情が動くモデルを作ってみる10 textureを仕上げる

Special AnimationとPoseを作りたいんですがマニュアルには何も書いて無いのと
試しに作ったアニメが認識はするが動かないという状況でして
公式スレッドで聞いてみたら「これから作り方のドキュメント作るわー」との事ですのでそれが出来るまで他の事をします

というわけでtextureを仕上げます

faceRig Texture Maps纏め

一々Import Wizardを通して再起動させるのもメンドクサイので
faceRigを起動させたままフォルダー内のテクスチャーを置き換えます
フォルダーの場所はSteamLibrary\steamapps\common\FaceRig\Mod\VP\PC_CustomData\Objects\アバター名
置き換えてからアバターを選択し直せば反映されます

ヤマネコさんの基本として使っているsht_metalclothシェーダー用のテクスチャを揃えます
要素は以下
diffuse("d")
normal("b")
normal("b1")
normal("b2")
normal("b3")
normal("b4")
specular("s")
specular2("s2")
anbient occlusion("ao")
colorize mask("cm")

1.diffuse "d"
通常のdiffuse textureです


2.normal "b"
通常のnormal mapです


3.normal "b1","b2","b3","b4"
animated normalsに使われるそうですが今回は使いません

4.specular  "s"
faceRig独自形式のspecular mapです
RGB各チャンネルとAlpha別々に使います

Red
channel gives information about the Glossiness factor >1 for rough surfaces 255 for shiny ones.
Between 1 to 5 for rough surfaces, 5 to 12 for a very little shine and increasingly shiner towards 255.
光沢の設定値で数値が高いほど強くなります、と書いてあるように読めるんですが
影の部分にだけ働く光・環境光のような挙動をし、数値が低いほど強くなります

50%に近くなると効果が目に見えなくなります


光らせたくない所の数値を高くしました



Green
used to set values for different materials,from 0 for hair and cloth,to 255 for other material types(metal,plastic,etc).
数値が低いほど光の影響が強くなるようです

マテリアルがなんちゃらとかの記述は何なんでしょうか

ほどほどに抑えました


Blue
used to specify areas of object that remains unaffected by lighting resulting in a light emitting effect when placed in the shadow (glow in the dark effect), 0 for non emissive and 255 for full emissivity.
光の影響の強さです
数値が高いほど影が薄くなります

表記の無い部分は50%

ヤマネコさんにはあまり影を落としたく無いので高めにしました


最終的にR/G/B各レイヤーはレイヤーモードを除外にして重ねて保存します


Alpha
gives information about the Specular Power 0 for no specular 255 full specular.
光沢の強さで数値が高いほど強くなります、と読めますが
光が当たっている部分では余り変化は無く、影になる部分の挙動に影響するようです


emissive同様高めにしました

必要なレイヤーを複製・結合し
Ctr + Aで全体を選択してCtr + Cでコピー
Alpha チャンネルを選択してCtr + Vでペーストです

マニュアルの記述と実際の効果が違う気がするんですけど私が英語noobだからでしょうかね?

5.specular2 "s2"
マニュアルに詳細無し

追加のspecular mapで光沢に色を付けられます
光沢の出方は"s"の設定値に依存しているようです

下は"s2"のテクスチャはそのままに"s"のAlphaを変更した物


明度に関係なく色相・彩度を反映するので
「一見黒く見えるけど彩度持ち」でもお構い無しに色を付けてくれます


Alphaチャンネルが適応率に対応しているようですが0の無効以外はあまり違いがわかりません


1-10%ぐらいは変化があるようなないような

鼻と肉球に少し赤みをいれてAlphaはRGBをそのままコピーしました


6.anbient occlusion("ao")
通常のAOだと思いますが今回は使いません

7.colorize mask("cm")
アバターの色変更の設定に使います
今回は使いません

一通り揃えてこうなりました

肉球の質感は良いのですが全体的にヌメり気が足りてません
が、ひとまずコレでいきます

いい方法を思いついたら手直しします