今日こそやるぞ5日目(いやもう休む)

今日こそやらないページ(サービス潰れて移転五回目)

unity shader用にほかのサイトからパクって調整した処理を残しておくコーナー

1
ライトの色を合成するのにRGVをHSVにして
HとSを混ぜてあげれば色合いだけ変わるんじゃねーの?

2
でもHって1で一周するやつだから単純な足し算引き算じゃ混ぜれんよね……
(0.9と0.1の間は0になってほしいところ0.5になるという)
角度をベクトルに変換して混ぜることで間をとる方法があるらしいぞコレだな!?
これパクって改変だな!?


うまくいかないと思ったらCG言語でのatan2とかいうの-90度も90度も90度として返してくるとからしいぞ……
なんか精度低くした代わりに処理速度早くしてなおかつちゃんと180~-180で値返してくれるのを公開してくれてるサイトがあったぞ!
これパクって改変だな!?

4
なんとかうまくいったけど水色のオブジェクトに赤いライトあてると緑色になる
色相の混ざり方的には完全に合ってるけど感覚的にはダメな奴だなコレ……?

という流れでせっかくパクって何とか改変したのに使わなくなった処理をメモ的に張り付けておくことにするという流れですはい……


上で書いたCG言語でのatan2では都合が悪かったので0~360で角度を返してくれるようにした奴
パクり元サイトは以下
近似式でatan2の処理を高速化してみる
高速化されているという部分は処理負荷自体に詳しくないのでシェーダーでも早いものなのかなどはわかってない(キリッ)


//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//CG言語でのatan2は90も-90も90で返してきてしまうらしい?
//とにかく180度以上になった時にきついのでユニークで実装
//処理自体も正確ではなくなる近似値をとるようにして高速化しているらしい
//https://garchiving.com/approximation-atan2/
//ここにあったものを微改変
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------


float atan2_360(float yv, float xv) {
float x = abs(xv);
float y = abs(yv);
float z;
bool c;

c = y < x;
if (c)z = (float)y / x;
else z = (float)x / y;

float a;
//0~45度までで変換しているらしい
//ここで処理の正確さと速さをコメントアウトで選択するらしい
//一旦一番早いものを使用
a = z * (-1556 * z + 6072); //2次曲線近似
//a = z * (z * (-448 * z - 954) + 5894); //3次曲線近似
//a = z * (z * (z * (829 * z - 2011) - 58) + 5741); //4次曲線近似

if (c) {
if (xv > 0) {
if (yv < 0)a = 36000 - a;
}
if (xv < 0) {
if (yv > 0)a = 18000 - a;
if (yv < 0)a = a + 18000;
}
}

if (!c) {
if (xv > 0) {
if (yv > 0) a = 9000 - a;
if (yv < 0) a = 27000 + a;
}
if (xv < 0) {
if (yv > 0) a = a + 9000;
if (yv < 0) a = 27000 - a;
}
}

//0~3600になっているので補正
a = a * 0.01;


return a;
}


角度をベクトルに変換してから混ぜて平均をとるという方法で
HSVのHを混ぜる処理
パクり元サイトは以下
角度の平均を求める方法
注意
・上で作成したatan2_360を使っている箇所がある
・実際自分がシェーダー内で使っていた部分から
 このブログ上で改変省略してシンプルにした部分があるので
 その部分間違えてる可能性あるので動かんかったら修正の必要あり




//------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//HSVのHの平均を出すために角度として考えてベクトル変換してから平均値を出す関数
//https://qiita.com/koyo-miyamura/items/37d555ae150047ebefde
//計算内容自体の参考
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------

float H_average(float base_H, float light_H) {

float angles_rad;

//0~1に360をかけて角度に、そこからさらにラジアンというものに変換
angles_rad = radians(360 * base_H);
//サインとコサインでベクトルにする(できるらしい?)
float2 base_vectors = float2 (cos(angles_rad), sin(angles_rad));

//ほかの要素も同様に処理
angles_rad = radians(360 * light_H);
float2 light_vectors = float2 (cos(angles_rad), sin(angles_rad));

//ベクトルを足して割る
float2 last_vectors =(base_vectors + light_vectors)/ 2 ;

//ベクトルからラジンアン、角度、Hに逆変換
//CG言語atan2は90も-90も区別せず90度と返してくるらしいのでいただいてきた独自処理で0~360でもらう
float last_H = (atan2_360(last_vectors.y, last_vectors.x)) / 360;

return last_H;
}



移植してみたけど使わなかったものを残しておくための記事だけども
RGBとHSVの変換に関してもパクったサイトURLを貼っておく
【Unity】RGBをHSVに変換して明るさとかを変えるシェーダー

基本的にセルシェーダーの更新は一つ前の記事を追記で更新していこうと思ってるけども
こういう風にパクってきたとはいえ色々調べたのに使わなかったみたいなのまたでたら
こっちに追記するかも


自分の理想のセルシェーダーを作りたいんですけお 進展あったら下に追記をしていく


きっかけとしてそもそも自分の欲しい表現が組み合わさったセルシェードがなかった
(機能の一つ一つはどこかのゲームで実装されてるとか、配布されているシェーダーでできるとかですでにある機能)
ので自分の必要としている機能を組み合わさったのが欲しい
というので自分なりに頑張ってみた現状が上の画像


現状の機能として

1・陰領域、光領域に別々のカラーテクスチャを張ることでの色合いコントロールができる
現状ライン部分にもテクスチャ張れるようにしているが、これは陰テクスチャに乗算で色を暗くしてあげるだけでいいかもと思っている

2・ギルティギアであるようなセルシェード用に極端にいじったノーマルと
押し出しで作成するライン、ハイライト用として形状そのままのノーマルを併用できる
ただし、ライン、ハイライト用はハードエッジ箇所作れずすべてソフトエッジ
ハードエッジだと押し出しラインが角で途切れるのを防ぐため
[Unity] 綺麗なアウトラインシェーダーを作る(このページの理由1を参照)
またハイライトもこちらのノーマルを使用するのは
顔などで情報を削るためにノーマルを真っ平らにした時に
スペキュラも真っ平らなノーマル部分一面にべったりついてしまうのを防ぐため

3・リムライト+通常のハイライトと角部分にのみハイライトが出る部分を専用テクスチャマスクでコントロールできる
これは最初から思ってたわけではなく、作ったシェーダーを立方体にあててみたときに
どこかの面がべったりハイライト色になるのがよろしくなかったため&むしろ手前の角にハイライトほしいと思ったので対応

そのほか陰領域の広さ、ハイライト領域の広さ、線の太さなどのコントロールパラメーターは一応実装


で初めてシェーダーを書いてみて
頂点シェーダー?フラグメントシェーダー?内積は方向が一致してるかどうか出せるやつだということは知ってる
外積?行列?セマンティクス?
みたいなところはたっぷりあってだいぶ調べたりもしたんだけども
そういうどんなシェーダーでも調べなきゃいけないことややらなきゃいかん部分は
いまだに認識がふわっふわっなので間違った人認識で長々書くことでもないと思う
ので自分なりに考えた、もしくはほかの方のアイディアを組み合わせた部分だけメモしようと思いましたマル
(そもそも書いている途中に一回止まって消えたとかもあるのでできるだけ短くしたい……)

あと割この時点でもと専用のマスク情報とか頂点色情報とか利用しないとどうにもならなくて
そりゃ配布されているようなセルシェーダーでそんなくそややこしい情報自作しないと最低限の表現もできないよ!みたいな状態になるなら
自分の理想の機能セットなんか自作でもせんとないわなとか
(自分のやり方が悪いだけの可能性大とかだけども)


1のそれぞれの領域で別々のテクスチャを貼るは
ほかの方が書かれたセルシェーディングを作るための記事を見て少し改変する程度で実装できたので省略
貼ってある画像は水色と濃い青色の二色なのでなんだけどもこの色はべた塗り1色のテクスチャ貼っているからでテクスチャは貼れている状態


2についてなんだけども
前に自作ゆかりさんを作った時に顔とか髪とかのノーマルをセルシェーディング用にいじるということはやってみていて
その時に「これやっちゃうと法線方向押し出しで作るラインが変な方向に厚みついちゃうじゃーん!?」とか「tda式にあるようなリムライト表現入れたいのに法線いじったせいでリムライト表現がおかしくなっちゃうじゃーん!」とかあったので
そのときは法線いじる前のメッシュであらかじめ押し出しておいてラインをもうメッシュで作っておいてしまうとか
リムライトも薄い半透明のポリゴンを重ねることで、そっちでは法線いじらないことでリムライトをそっちでつけるとかでやってたんだけど
そういうくそめんどくさいうえにポリゴン数三倍界王拳だー!とかなのは避けたいですよね
とおもったので今回やってみることに

で、要するに二種類のノーマルを保持できればやりたいことはできるわけなんだけども
最初は「メッシュ本体の持っているノーマル(セルシェード用)」に「オブジェクトスペースノーマルマップ(ハイライト、ライン用)」をつかえばいいじゃん!と思っていたのだけども
オブジェクトスペースノーマルマップはどうもunityでは対応していない模様……
UE4もだけど)
どういう風に対応してないかは以下の記事が詳しかったので参考
SkyrimとUnityとオブジェクトスペースノーマルマップ
要するにボーンの情報をシェーダー側でとれないから
ボーン回転で変形した分の法線の変化を入れ込めないということっぽい(雑な理解)

でどーするのかというとこれまた同じ方の記事で
「Unity+Skyrim でオブジェクトスペースノーマルマップを活用する」動画の補足
を参考にして
ただ自分はあくまで頂点単位で法線情報を持てればいいので
ノーマルマップをテクスチャでなく頂点カラーとして持つことにした
(これは最初のオブジェクトスペースのノーマルの時から思っていた部分)
タンジェントスペースのノーマル情報を頂点色生成するのにBlenderのスプリクト側で計算してあげないと駄目だったので
それはこれまた以前ゆかりさんの時に作成した頂点色とオブジェクトスペースノーマルで情報をやり取りするスプリクトに追加で記述
計算式は上の記事の方が参考にしたというサイトのを自分も参考という名の丸パクリ
うにばな(ノーマル(法線)基本 と ノーマルマップ合成)
blenderpython久々にいじったので多少躓いたというかいまだに誤動作的なことが発生して変な色がつく場合があったりするのだけどなんとかここはうまくいった

球体のノーマルを転写で焼き付けた状態の立方体(左)と
そのノーマルを本来の形状+すべてソフトエッジに戻してやるためのノーマル色(右)


逆にタンジェントスペースを反映してやるというか戻してやるというかをシェーダー側で実装しなきゃいけないんだけども
そちらの参考
法線マップと接空間
新卒エンジニアが Unity でバンプマッピングに挑戦してみた
その12 頂点座標とUV座標から接ベクトルを求めるちょっと眠い話
で最初わからなかったのがどちらのブログでもライトの情報をタンジェントスペースに持ってきてあげてとかやっているらしいというところで
これはノーマルマップが画像だからフラグメントシェーダーのほうでピクセル単位で計算しないとダメなんだけど
ピクセル単位でタンジェントスペースをオブジェクトスペースに反映させる(戻してやる)という計算は割と重いらしく
むしろライトをタンジェントスペースに持ってきてあげてから
ライトとノーマルマップ画像の内積(方向の一致)だけをピクセル単位で計算したほうがはるかに軽いからということらしくどうもこれが標準的な方法?
ただ自分はノーマルマップという画像でなく頂点色に入れているから
頂点単位の計算だけで済むというのが一点と
そもそも法線方向押し出しのアウトラインについて、法線方向に頂点を押し出して移動させるのが
頂点シェーダーじゃないとできない話でフラグメントシェーダーに移動してから計算ではタイミング的に遅いというのが一点
(何となく頂点色にノーマル情報入れようと思ってたけども、この方法じゃなかったらこれができなかったということで結果的によかった)
のため、参考記事からはやり方を改変というかより単純化して処理した

メッシュに焼き付けたノーマル+頂点色として入れ込んだノーマルでオブジェクトスペースのノーマルマップとして補正できているのが視覚的に色で確認できる状態(左)と
それを利用して法線方向押し出しでのアウトラインを形成しつつ
陰影は焼き付けた球体のノーマルを使用している状態(右)


あともう一つ自分が勘違いしてたポイントだったのでメモしておくけども
一点目として
しっかりとした計算まで理解できたわけじゃないのもあって
「行列をノーマルマップに積算するとタンジェントスペースからオブジェクトスペースに変換できる」
という認識で
これが「この状態でやっとメッシュ本来のノーマルと合成可能な同条件のノーマルになった」ということだとばかり思ってたんだけども
この行列というのはノーマル、副ノーマル、タンジェントで構成されていて
ということはすでにメッシュ側のノーマルは考慮されているわけで
「オブジェクトスペースへの変換と同時にメッシュのノーマルとの合成も行っている」
という認識が正しいっぽい
(最初はこの辺がわかってなくて「どうやってここから合繊するんだ?」と足したり掛けたりしていたふわふわ具合)

二点目として行列に入れ込むノーマルの値はどのブログ記事でもだいたいノーマライズかけているけども
自分の場合だとノーマライズかけちゃうと逆にずれてしまうようで?(自分のやり方のほうがそもそもどこか間違っている可能性が大きい)
ノーマライズをかけないで行列に入れ込んでやると上画像のようにノーマルの色合いが完全に合った
(ふわふわすぎるけどもシェーダー的にはノーマライズ処理ないほうが軽いだろうし結果オーライ??)

でここまでできたので実際にボーン変形したときにもうまくいくのかをテストしたのだけど
ここでまたうまくいかなかった
シェーダーもしくはblenderスプリクトのどっちかが間違っているのかといろいろ調べて試したのだけども
結果的にfbx出力時のオプション設定が原因だったらしい??
BlenderでUnity向けにFBXをエクスポート:メッシュ編
この記事の最後のほうに座標系の変換の項目があるのだけども
これを正しく設定してあげないと(ボーン入れた時だけというのがわからんけども)ノーマルが狂うというかなんかベースとしてのメッシュ側ノーマルの色がかなり強くなる感じで
合成結果も当然おかしくなっていたということのようだった
(「!実験的機能!トランスフォームの適用」というオプションを使うのは怖いけどこれ入れないと話にならないっぽい?)
逆にボーンない場合はこれ必要はないっぽいのだけども
入れたほうが正常な状態で出力できているようなのでいれておくのがベターなのかなぁ??


ただまぁこれでやっとボーン入れても二種類のノーマルを確保して動作するシェーダーになった
(手前の曲がっているのと奥のまっすぐなモデルはunity上でボーン変消させただけで同じモデルデータ、ラインも途切れずにしっかり表現できている)


で、3のリムライトとハイライトの領域と、角部分にだけハイライトが出るようにとの部分だけど
これは力押しで微調整の処理を加えてとかで行き当たりばったりな感じ
ただ逆に難しいことなどはしてないので微調整内容だけメモしておく


まず最初は自作ゆかりさんでそうしたように「ハイライト+リムライト」で作成したのだけど
立方体だといい感じにならなかった
(リムライトの要素が上面すべてにべったり広がってしまうのと、
 立方体も形状通りを使うようにしているとはいえライン描写側の都合上ソフトエッジ的なノーマルを使用しているので奥側角の周辺に違和感のある形でリムライト領域が広がる)

また画像だと立方体の側面に角がある状態だからまだいいけど
来方向から見て影がない部分しか見えなくなった時に
どこが手前側の角だか認識できないというのもあって
立方体みたいなまっ平ら+角のあるものには別の法則でハイライト出さないと駄目だ、となった

最初は角がある部分、平らな部分は曲率マップをベイクして
それをもとに判定してあげればいいのではとか思って曲率ベイクする方法調べて試したりしたのだけども
最終的にサブスタンスの体験版ダウンロードしてベイクしてみたときに
球体の表面と立方体の平らな面で
グレースケールで焼かれた曲率マップの値がフォトショップ上で50%と49%とかで
1%しか違わないものをうまく処理できるはずがない&曲率マップをベイクするソフトがそもそもあまり見当たらないのでサブスタンス以上の精度で焼いてくれるソフトがあるのかとか
あったとして(これはサブスタンスでもそうだけど)曲率マップのためだけに購入すんの?
と会考えると断念したほうが良さそうだった

結局手書きで専用のマスクテクスチャを作って、
Rチャンネルに角がどこか(というよりはハイライトのマスクでハイライト出したくない場所を黒くする、角以外もハイライト出したい曲面もマスク範囲に入れることになる)のマスクを
Gチャンネルにリムライト+ハイライトで処理する部分とそうでない部分を分けるマスクをという形にして張り付けた

角のハイライトがぶつ切りっぽくなったり
普通のハイライトも足し算で載せてたらハイライト範囲の終わり際が変に目立ったりしてたのを計算方法変えたりして調整したのだけども
この辺は変なことをしたわけではない(と思う)ので割愛


一つだけシェーダー側の処理ではどうにもならなさそうだったので
モデル側でどうにかした点だけども
こういった円柱のような曲面と角と平らな面があるものについて
専用マスク画像はそれぞれ曲面と角を指定するように塗ればいいのだけども
普通にやると側面の曲面はリムライト+ハイライト領域なので
上の画像でも下側にちょっと出ているけどもこういった角部分にもリムライトをもとにしたハイライト領域がかなり広範囲にべったり広がってしまう(例によってソフトエッジのノーマルを使用しているため)
上の画像はこれなら個人的に許容範囲かなというところまで抑えた状態


やること自体は単純で角付近に1ラインメッシュの割りを入れただけ
形状的には何の意味も持たない割りになるけど
頂点色(で補正されるノーマル)的にはこれでなんとか余計なリムライトの広がりを抑えられる感じ


陰側でも角にハイライトが入るようにして角の位置が感じ取れるように
(ただ正面側のほぼ白な色あいで入れると強すぎるので弱く明るくなるような処理にした)
曲面のリムライトも少しだけこの処理を入れている


現状の状態や
特殊なことをやってみようとしてひかかった部分のメモはこんなところかなと思うのでいったんこの辺で

まだ入れたい機能をメモしておく
というか多すぎてメモしないと忘れそう
忘れる
忘れた
幾つか思い出せないだから早めにメモをしろといったのだ!
うーん思い出したら追記したり修正したりする……
欲張りセットみたいな内容なのでどこまでやれるのか謎



ギルティギアでもあった陰の付きやすさの情報
ハイライト用に作ったマスクのBチャンネルが空いているのでそこに入れ込む予定
ずっと影出ていてほしいところは真っ黒に自分で縫って+アンビエントオクルージョンベイクするぐらいかなと思う、
ギルティギアだと見た目はアンビエントオクルージョンっぽくてもアーティストが自分の感覚に従って手で塗り分けているとのことだったが個人製作の工数的に無理っぽいので……
もの自体はシェーダーで陰影情報が出た時点のところに乗算で混ぜ込むだけで行けるんじゃないのと思っている

追記
できたので追記でスクリーンショットを貼っておく
結局陰の落ちにくさみたいなところもコントロールできたほうがいいんじゃないかと思って
(通常エミッシブ入れるような設定上光ってる場所とかに使いそうかなぁと)
Bチャンネルの0.5以下は乗算で0.5以上は加算で混ぜ込むことで処理
(Bチャンネル1のところは一切影が落ちないように、0の場所は常に影が落ちるようになった
 これは下の項目の「落ち影(ドロップシャドウ)を出したくない」とは違い、セルフシャドウも落ちない(落ちにくくなる)ので、下の項目は別途実装する必要がある)



・落ち影を出したくない部分へのマスク情報

自作ゆかりさんのとき思ったというか以前の記事にも書いたところだけども
顔に髪の毛の落ち影とか要らね!!
情報がごちゃごちゃして表情などのもっと重要視したい情報の印象が薄れる!というのが
ハイライト用に作ったマスクのAチャンネルを使う?
もしくはBチャンネルの通常を50%のグレーにしておいて
真っ白な部分には落ち影が入らないように処理するとか?

追記
結局アルファに入れた(Bチャンネルの50%以上は陰の入りにくさとして使ってしまったし)
上の画像では適当な雲模様を入れたので独特な感じだけども
落ち影が削れている状態になってる
落ち影を半分程度の濃さにしたいとかのコントロールは難しいけども
(落ち影が最終シェーディングになるまでにいろんな情報が混ざってしまう為)
落とす、落とさない程度のコントロールには十分なのでこれで良しとする



・部位ごとの線の太さコントロール
法線方向に押し出す距離(ラインの太さ)自体は数値入れている場所があるので
そこに乗算するだけで行けると思うので
太さコントロールの情報をメッシュのどこに入れ込むのかのほうが問題
普通に考えると頂点カラーのRGBはノーマルで使ったけどAが空いてるじゃんというところなのだけど
線に関しては+もう一つ情報を入れ込んでみたいと考えているので二つ分空きがいる
UV2をUVとして利用せず値として利用することになるのかなぁとか思っている状態


追記
一応というか一旦はできた
画像はわかりやすくするためにかなり大きく値を影響させてるけど
UV2のUの値をもとにして線の強弱を調整できる

これに関してはblenderだと頂点グループ(ボーンでもつかうウェイト)+アマーチュアでの押し出しで表現できるので
belderで調整した状態をそのまま持ってきたいなー!というのがあったから
頂点グループの値をUVのUに変換するスプリクトを追加で組んでたんだけども
もーそっちのほうが時間かかったよね……というか頂点グループの情報の取り方がわかんなくてうなってた

blneder側のスプリクトについて
lineという名前で作った頂点グループの値をとりたいんだけど
頂点グループのウェイトをとれるアトリビュートには名前の取得できるのがないっていう
bpy.context.scene.objects.active = objectでオブジェクト取得した後
object.vertex_groups.nameで名前が取れるんだけど
object.data.vertices[x].groups[y].weightじゃないとウェイトの値が取れない
この場合のXは頂点番号、
Yはその頂点のうちで何番目の頂点グループか?
よくゲームであるのだと頂点一つにつきウェイト四つまでというところでの話で
でとにかく全然経由してるルート違うもんだからこのウェイト取得できるのはわかったんですけど
これlineっていう名前のウェイトであってるんですかねー!???というので割と詰まってたんだけども
object.vertex_groups.indexで取得できるID番号と
object.data.vertices[x].groups[y].groupで取得できるID番号が一致してるかどうかで判定できるっぽい
予め上のでID番号を取得しておいて、下のほうで同じものか判定してという流れになった
(何となくそれっぽいぞといろいろ試した結果思っただけでどこかに情報があったのを見つけたわけではないので間違ってても知らない)
ということがわかってなんとかスプリクトのほうは実装できたはーやれやれ

シェーダー側について
blenderのほうに話がそれてしまったけどシェーダーのほうは値もらってきて乗算するだけなので割とすぐできたのだけど
注意点のメモとしてはUV2が存在しないデータの場合unityはUV1のデータもらってきちゃうっぽいという
なのでこのシェーダー使う場合は専用の傍目めちゃくちゃな状態になっているUV2が必須になってくる
とはいえそれはノーマル用頂点色の時点での話だしいまさらかー……

でUVのVに関しては線の太さを別の要素でさらに変化させたかったというのがあって
それは重力と慣性なのだけども
といってもなんか物理的に正確に計算を行いたいとかでなく
重力は線の太さが下のほうにコントロールされる
慣性は何フレーム前かの位置に線が少しだけ引っ張られる
といった程度のざっくりとした想定をしてた
で、Vの値を重力とか慣性といった力の受けにくさ、線の太さの現状維持の力加減の値として入れたかった(これは弾力と表現するのがいいのかなと個人的には思ってる)
一応そのメッシュデータにいったん入れるだけならできて
重力も真下に移動させてやるだけだからここまではできた
(微妙にワールドでY軸のベクトルをローカル軸に変換する方法とかで手間取ってたのでそのヘルパー関数だけ下に明記)
UnityWorldToObjectDir()
(unityの用意してくれている座標変換、行列として用意してくれてるからmulで乗算しようねーという場合と、ヘルパー関数として用意してくれてるから値突っ込むだけでいいんすよというのがあって個人的にこれもややこしかったんだけど、今回は後者だった)
上の画像でも重力の値をバカでかくしてるもんだから線としてのポリゴンが下に大幅にずれているがVの値を見てずれ幅が違っているのは確認できる

ただ最初に「一旦」と書いたのはここの話で
まず「慣性」についてだけど
シェーダーというのはそもそも数フレーム前の情報を維持してくれるような機能を持ってないらしい……うぅむ
それができれば今の位置と数フレーム前の位置合成してあげて、その割合をVの値を参考にというだけの話だとおもうんですけお……
で一応テクスチャに書き出すことでその情報を維持しようという試みをしていらっしゃる方もいて
それをやれば一応できると思うんだけど
テクスチャに書き出す関係上、すべての頂点がユニークな領域持った状態のUV3がさらに必要になってくると思われるし
そのうえ自分のゆかりさん頂点数割と多いからその分UV3展開する手間暇や書き出すテクスチャ解像度も大きくなるわけで
工数と処理付加的に大丈夫なの?ということを考えつつテクスチャに情報を書き出してという手法を学習するモチベーションがうぅん……
(逆にこれができるならラインだけでなくメッシュ本体にもこの処理入れて形状をゆがませるとかやってアニメ的表現に近づかないかとかしてみたいところなんだけども……)

もう一つあるのがラインの太さの最低維持をできるようにしないとというのが
上の画像でもそうだけど重力に相当する値を思いっきり入れたとはいえ
上部はメッシュの中に入り込んじゃってしまっているわけで
最低限の太さは維持したうえで変形するようにしなきゃダメじゃね?というのが
いやいまは重力だけだからワールドノーマルのベクトルのY軸の値で判定してマスク作って
上向き部分だけmaxで.0.01より下回ってたらとかはできそうではあるんだけども
慣性のことも考えるとちょっとこの方法では

というところで一旦打ち止め
いい方法思いついたりあきらめて力押しでやると決めた場合にはまた追記するかも
一旦はここまで
そもそもできるか&できたとしてよい効果になるかわからない慣性&弾力回りは結局中途半端だけど
それ以前にふつうにできるっしょーと思ってた部分でもわりと手間取った箇所だった……


・逆に押し出しラインはカメラが離れたらある程度は太くしたい

離れるとそもそも消えてほしくないラインも細く見えなくなってしまうのでその補正
というか調べものしてた時にそういうのを実装しているというシェーダーの実例みかけて
確かに合ったほうがよさそうだな程度の考えでそのまんまパクリという浅い考え
追記
これはすぐできた
【Unity】カメラが近づくと透明になるシェーダを導入する
ここの距離をとる部分の一行を拝借
maxとminと乗算で、上限値、下限値と調整用に数値を少し弱くして
ライン押し出しの強さの部分に数値混ぜ込み
ただまぁ一旦いい具合ではという強度に設定したのでほんとに程よい強さなのかは後々調整がいるかも?



・ライトの色を反映

複数ライトに対応させる場合本当は2パス目以降でブレンドで情報重ねないといけないらしいのだけど?
ライトの色自体は現状でも取得できているのでどうやってませこむのがアニメっぽい色遣いになるかというところでのはなしになるかなという気がする

また複数のライトについて
一応今の状態でも精度は低いもののほかのライトも考慮はしてくれているっぽいというのと
普通のシェーディングならForwardAddでBlendというので情報を重ねればいいのかもだけど
セルシェードまっとうに処理するならは陰影情報重ねた後にそれをもとに領域分けしないといけないわけで
パスをまたいで情報受け渡しできるなら最初のパス~ライトの処理終わるまでのパスでは陰影情報だけ処理して
最後のパスでセルシェードに変えてあげればよさそうだけど
パスまたいで情報の受け渡しとかできなさそうな??

追記
一応できた
・色の混ぜ込み
そもそも銅色を混ぜ込むのかというところであーでもないこうでもないとかやってたのだけども
基本的にRGBをHSVに変換してHSをライトの色で置き換えてからRBGに戻して
(RGBとHSVの変換に関してもパクったサイトURLを貼っておく)
【Unity】RGBをHSVに変換して明るさとかを変えるシェーダー
RGBの状態で合成素材をlerpで合成しなおすという形になった
(面の明るさは維持して色だけ変えるのはHSVじゃないとできないけど
HSVのまま合成しちゃうと今度は水色に赤を半分の割合で混ぜたときにHの値からして緑色になってしまいこれはなんか違うという感じになったので)
その他もともとの彩度とライトの彩度を比較してマスクを作って混ぜ込み具合を変えたほうがいいか??とかちょこちょこ調整してみてたのだけども一旦これで

複数ライト
unityですでにArktoon-Shadersというものを作成された方がいて
そこの記事をみたところForwardAddでなくてもunity_4LightPosX0等で一応取得できるらしい?
(ポイントライトを四つまで?)
VRChatの皆に手軽に綺麗になってほしくて作ったシェーダーの話
なのでこれで明るさと色を取得するようにした
色は上のもので同様に処理
陰影は基本的にはメインライトを主にしないとセルシェーディングとしての色の境目がごちゃごちゃしてくるので
弱めに混ぜつつ、混ぜ具合はコントロールできるように一応

ただ上記の記事でも結局ForwardAdd自体はしていて
メインライト以外でも重要度の高いポイントライト及びディレクショナルライトはこっちじゃないと処理されないっぽい?らしい?
だとすると自分のシェーダーではいまだにこれは処理できておらず
また2パス目以降でしか情報を受け取れないのであればセルシェーディングの上から
普通のシェーディング情報として重ねるしかできないということで
それはどうなのという感じで保留しようとしていたが
この追記を書いた後に少しググったところ
[Unity] ひとつのPass内で複数のライトを使う
ん?ビルトインのシェーダー変数 増えた?
というのを見つけて
unity_LightPosition[n] unity_LightColor[n]などでアクセスできるとのこと?
だとすればもう少し調べたほうが良さそうかなうーん
また進展あったら追記します……
セルシェーディングのシェーダー作るにあたってライト周りのことメモ殴り書き(またもうちょっとわかったり整理できたら追記していくやつ)
↑複数ライトはそれだけで話が長くなりそうなので別記事にメモすることにしました


・フォグの反映
unityが用意してくれてる関数?とか仕組みがあるっぽいのでそれいれるだけで行ける??
そもそもシェーダー側でやることではない?というレベルから調べる
やらなきゃいけなさそうな予感というか情報を見かけた気がするので念のため記述
追記
できた
といってもunityが用意してくれたヘルパー関数を決まった位置に書き込んだだけなので
特に備考はなし



・テクスチャ書き込みのラインの処理
テクスチャに書き込んだ本村式ラインをテクスチャにそのまま書き込むよりはマスク情報としてシェーダー側で改めて描写したい
カメラ距離が離れると線が消えて情報が簡素化されるとかが可能になる気がしているので
やる場合は陰用テクスチャのアルファチャンネルに入れたい



・真っ平らな部分にも真っ平らな様相にあったハイライトを出す
キューブマップでアニメの窓ガラスとかでみるような斜線的なハイライトを張り付ければ行ける気はする



・髪の毛用の別シェーダーを作る
ハイライトの処理を変えないと駄目、他はそのままでいける?
俗にいうエンジェルリング的な位置はオブジェクトスペースノーマルの上向きの値を抜き出せばいいと思うけども
そこから髪の毛の流れに沿って多少削るなり変形させるなりということを考えるとどうしようという感じで……
最悪テクスチャに書き込めばいいんだろうけど工数的にできれば避けたいなぁとか……



・アルファ抜きもしくはカットアウトに対応
やり方自体調べてない
この場合法線押し出しラインは邪魔になると思うので髪の毛と同じように別シェーダー扱いになる?



・ボーン変形の結果曲面になった場所にリムライト、ハイライトを出現させる
やり方自体は行けるんじゃないかなあぁと思っているのが
ボーン変形前の法線方向とボーン変形後の法線方向で内積だして
方向の不一致が一定以上なら画像として張ったマスクにその範囲を入れ込んでやればいいのではと思っているのだけども
変形前の通常のノーマルをどこに入れておけばいいんだという
UV3、UV4使うとかでいけはするんだろうけど流石にごり押し過ぎないかなとか
追記
とか思ってたけどこの記事書いた一時間後にダメだこの方法と思った

形状が曲がる変形しなくても普通にボーンで回転させただけでオブジェクトスペースの法線は変わってしまうわけで平面が曲面になった判定には使えない
しかもよく考えたらそもそも真っ平らなものとか大体人工物なわけで
そんなものがグネグネ曲がって曲面になるか?とか
仮にグネグネ曲がって曲面になるとしてそれってキャラクターが身に着けている時点でベルトとか見たく曲面になってるよね普通?とか
もともとの話で変形前のベクトルの数値をどこに保存しておくんだというのがあったのに加え
内積の変化で形状の変化を感知するというのが見当違いの方法だし
必要かどうかがそもそも怪しいしでこの機能はナシだなー
というわけで横線引きました



・処理負荷とかいうやつ大丈夫なんですかね
さっぱりわからん

ある程度できたら自作ゆかりさん持ち込みたいけども
そもそもちょこちょこ改修しているところで作業中断してるから
そこから始めないと駄目よな……
修正し終わったものをMMDで出しなおしてニコニコ立体のデータ更新してから
unityにも出してみてでも物理演算とかはunityで設定しなおし……?
とか考えると最終目標まではまた相当時間かかりそう……

まぁほかにやることあるわけでもなしという人生なので
暇で珍しくやる気あるとき見つけてはちょこちょこ進めましょ……

 

自作ゆかりさん更新進捗メモ 5/5 5/14 飛んで2019/06/02に追記

仕事が普通に忙しかったり
ゼルダやってたり
寝てたり寝てたりとかな感じでろくに作業してなかったんだけども
一応作業してるよみたいな状態だけ記しておこうかな見たいなアレ


・骨回りその1

主に股関節周りだとかの補助的に入れたボーンの設定がミスってて
MMMだと以前から正常に動いていたんだけど
MMDだと想定通りの変形状態になっていないをの見つけたので修正
これは一応修正済みなので、今後の作業で再度ミスったりしなければ正常な状態にできるはず
ずいぶん前に修正で来てたんだけどあんまこまめにニコニ立体のデータ更新するのもどうかなとかおもって
あとからまとめてとか思っていたらそのほか作業を全然やってないもんだからっていう……


・骨回りその2

マストドンとかでゆかりさん関係とMMD関係にアカウント作ってROMってるんだけども
MMDのほうで「小指0」なるボーンの概念を知ってとりあえず仕込んではみたみたいな?
手のひらを内側に湾曲するような変形用途っぽい感じ?
とおもっているのだけども違ってたらまたあとで修正するかも

あと指が微妙にワールド軸のX方向から斜めっているせい?ローカル軸設定のせい?で
グーの形に指曲げた時に変な方向に曲がってしまっているらしいという報告をいただいたので
指の方向を整えなおし




Blender上では一応程度に仕込み済みなのだけどPMDEとかには吐き出してないぐらいの段階
このほかにも(これはMMDとは関係ないところで見かけたんだけども)掌底のような手首の形をするときに手首を下に曲げるときと上に曲げるときで回転の軸が変わってくることに注意してないとうまく変形できないよっていうのをみかけていて
これも手回りいじるのなら実装したいなとか思っていたのだけれど
どーにもPMDEの回転コピー(回転コンストレイン)では角度制限を数値でかけることはできないっぽい?ので諦め
(角度制限かけられるなら手首ボーンはリグみたいな扱いにして実際に変形するボーンを別に用意して片方はマイナス方向、片方はプラス方向にしか回転しないみたいな感じで設定できるんじゃないかなとか思ってたんだけども
そんなことができるなら準標準あつかいの腕の捻じりボーンとか作られないというか
それこそ手首のねじり回転の動きだけコピーするように実装されるよなぁとか思ったので
自分の勉強不足とかでなく本当に機能がないんだと思う)


・目のパターン変更&増やし
これは前からやりたかったことでどこからか情報拾ってきたわけではないんだけども



こういうパターンの目を追加と変更
左側は「このすば」とかでアクア様がよくなる奴
一応モデル的にある程度稼働する形にはなると思う……
(ボーンの位置が通常の目に合わせてあるからいろいろ完璧ではないので瞬きとかまでは無理かも……ウェイトの調整次第?
まぁおまけパーツなので最初は緩い感じで出力したい……)
これは完全に作りかけなのでこのあとテクスチャとウェイト調整して~みたいな程度の進捗

右側は「なごみ」
こっちはもともとあったけどボーン変形で通常の目で作ってたのはちょっと要件満たしてないというか
もっと記号的な感じじゃないと駄目かなと思ったので「〇目」や「はぅ」と同じ0or1でのテクスチャ切り替え方式に変更
目の差分が増えた分テクスチャも増やしたのだけど
その都合上この方式の目はあと3パターンほど追加できるテクスチャ領域が開いてしまっているので
なんかほかに追加できるものないかなーとかぼーっと考えてる感じ


別アイディアとして眉毛の形状差分とかも作れるかなーとか思ったんだけども
まーそれはデータの形式考えると労力少なくいつでも作れそうな気がするので後からでも大丈夫かなとか
藤田和日郎のぐにゃって歪みまくってる感じの目の差分とか作れないかなとかもかんがえてhみてるので
その辺も試してみてできるにしろできないにしろそこまでやったら再出力とPMDE側とのデータすり合わせ作業かなぁという感じ

例によってもうちょっと作業進んで貼れるスクリーンショットとかできたら追記の形で更新するかも


5/5追記
歪み濁りな感じの
新規形状とテクスチャ必要かともったら黒目を頂点モーフ作成するだけで割とそれっぽくなった

こんでいいかもとりあえず?
だれがこんな病んだモーフ使うのか
それはわからない
自己満足



5/14追記
ここから上までは最新のデータ更新で適応済みとだけ書いておいて

更新一回してひと段落したのもあって
前からやりたかった左右から顔を見た時に二次元絵っぽいパーツ配置になるようにするっていうのができないかとぼーっといじる程度に再挑戦してみてた
結果

正面からだと

ないよかマシかなぁ?ぐらいにはなったきがするので
一応次の更新時にはいれておこうかしらん……
自己満足モーフばかり増えていくな?



2019/06/02追記
新しく始めたunityシェーダーがスポットライトの光をしっかり取得できないあたりで詰まった感&
その他に勧められそうな表現あるもののいい加減キャラクターにあててみたいとかもあり
リアルが切迫して長々放置されていたゆかりさんのマイナー修正を一気にやってしまったので
そこだけメモ



水着形状を修正
古いほうは胸の下のラインが丸くなってるのが
巨乳キャラなら胸を包み込む感じになるからこそこうなるだろうけど
小ぶりの大きさでこれは違くない?
とか今さら思ったので修正
あとフリル部分をしっかりレース模様のテクスチャ描いて貼ることにした
前半透明だけで済ませてたのはここにごちゃごちゃ模様書いちゃうとせっかく本村式ラインというのをやってみてたのにそうじゃなくなっちゃう!みたいなことを思ってたのもあったんだけど
冷静になるとこんな細やかな模様部分にまでラインのニュアンスの統一性もとめるより情報量ふやしたほうがいいなと


同じ理由で服下部分もレースフリルに変更



指の大きさのバランスを修正
今となってはずいぶん前の話だけど、小指0なるボーンを入れたほうが手の取れるポーズ、表現力が上がるみたいなのみかけて
一つ前の更新で早速入れてみたのはいいものの
自分の作った手のバランスがおかしかったらしく
「小指0をいれることで小指と親指の頭をくっつけられるんですよ」という
そもそもこの情報を見かけてなるほどと思ってたのが無理な状態だった
基本的には親指が小さすぎたのかなーという感じでそこを修正しつつ
不自然にならないようにほかの指のバランスも調整(といっても自分のクソデッサン力というか人体構造理解度での判断だからこれでいいものかどうか)
一応Blender上で親指と小指は引っ付くようにできたので自己満足は完了
(実際これが必須みたいなモーション見ない気がするからそんな使われないと思うし……)


ここまで書いてMMDがわで再確認はしてなかったなーとやってみた
まーできるけどそこそこ気を使ってやんないと手の形状として破綻しすぎる感じかなー



くるぶし位置調整
同じく自己満足&ツイッターで見かけたからなんだけども
くるぶしって内側のほうが高い位置にあって、外側のほうが率い位置にあるらしいよー
ていうのをまったく知らず同じ高さでモデリングしてたのでできる範囲で修正



まつ毛にボーン追加してとじ目のボーンモーフのときまつ毛が下を向くように
以前要望があったのをいまさらながらいれてはみたという感じ……
ほんとうにやっては見たという感じなのでこれでいいのかどうか……
ただ顔つき変化させるときにまつ毛もいじれたほうが印象のさらなる微調整などもできるので
機能的には良いものが追加できたとは思う


もしかするとその他にも放置期間前に微修正した箇所があったかもしれないけど
覚えてないのでここまでで
もうちょいデータ確認するというか踏ん切りがついたらニコニコ立体のデータを更新する予定

PSVRが買えたのでいろいろと 02/02 02/04 02/12追記

MMDの自作ゆかりさんをもう一回ぐらい更新してデータ整えたいとか言っときつつ
一応公開までこぎつけたんだからちょっとサボろうとかダラダラしたり
ダンガンロンパV3やったりなどしているうちにわりと時間たっちゃったなー
などというところにPSVRの抽選販売があったので
その日は朝早く申し込みをして昼休みに行ってみたら当選してたので奮発して買ってきてしまった

というのが前置きの流れで

PSVRの感想とかやりたいこととか調べたこととかが溜まったので
一度ブログに吐き出しとこうという趣旨のメモ



まず真っ当にPSVRなんだからPS4のコンテンツを体験
YOUTUBEvr映像、デッドオアライブエクストリーム3、サマーレッスン
うん
そっちの方向の奴ばっかりだよねっていうのは今更なのでスルー

特にYOUTUBEVR映像は最近対応したばっかりらしいのでかなりいい時期に買えたなーという印象
まだ試してないけどPSVRをPCで使うための非公式パッチとかもこれまた最近でたばっかりらしいというのもタイミング的に言というかPSVRでできることいろいろ増えるタイミングというか
(まだ動作が安定してないらしいけれども)


で全部のコンテンツ通しての感想でさんざん言われてることだけど
立体視の存在感すごいのね……ほんとに
もともと立体視コンテンツは好きな人間なので3DSも好きだしPS3とかでも3DTVでちょこちょこ立体視してたんだけど
立体視のところだけでも3DSや3DTVは画面付近で飛び出すって感じのところを
VR立体視はほんと目と鼻の先の距離になるっていう
この点だけで存在感のレベルが違うんだよマジで
+360度見回せるというのも視界がふさがることでの没入間とかもあるんだけど
一番すごいのはこの距離感だと思った
(さからこそ逆にYOUTUBEVR映像とかでも3D対応してないのはイマイチだったかなーという印象をうけた)

でサマーレッスンとかバレーだとかの感想はほかでさんざん言われているだろうから
自分がやりたい&すぐできそうな方向であるYOUTUBEVR映像のことについてメモっていきたい

というか二種類ほど出力してはみた
https://www.youtube.com/watch?v=9Wrg6z9EMcY
告白予行練習モーション 
視差x値0.35  1920×2160 #define RT_SIZE (512) 
https://www.youtube.com/watch?v=kMRwdbeR7Pg
女の子の撮影モーション
視差x値0.35  3840×4320 #define RT_SIZE (512)
02/04追加
https://www.youtube.com/watch?v=UMAnHUv-a4I
告白予行練習モーション(再出力)
視差x値0.25  2048x2048 #define RT_SIZE (1024)
02/12追加
https://www.youtube.com/watch?v=jbtp6XirJG8 
妖夢と逢引モーション(ちょっと特殊な調整したので以下で02/12に追記した欄を参考)
視差x値1  2048x2048 #define RT_SIZE (1024)



モデル作ったもののMIKUMIKUMOVINGでモーションの流し込みやってる程度の機能把握な上に
これはMikumikudanceだからなおさらこれでいいのか?みたいなやつだけども

ほかにもMMDでのVR動画をあがている方がいっぱいいらっしゃったので
「できるんだ?」とおもって調べたら割と簡単に出力できる環境がすでに用意されてるみたいだったのでちょっと調べてやってみたという流れ
もともと自作モデルを立体視とかVRで眺めたいというのはずっとやりたかったことなので
こういう環境があるのはほんとにありがたい

やり方はほぼこの動画の通り
エンコードを夏蓮根のYOUTUBE用設定に分投げしたところだけ違うかもぐらいの感じ


それでMMDに限らずほかの動画みたり今回出力してみたりで思ったりわかったり(まだ一日目とかな感じなので勘違い含む)したことをつらつら以下に


動画の解像度

上の解説動画で解像度は1920×21603840×4320とあるけど
PCのスペックとHD容量が足りるのであれば3840×4320一択だと思った
02/02追記
ちょっと調べたところによるとVRのパノラマ3D動画のアスペクト比は1:1がいいらしい?
2DのVRのパノラマで1:2の横長なのが両目用で二つ縦に並んで2:2になるという感じ
(ただ自分も調べている途中なのでどっちが正しいのかはわからない
上記解説動画では通常のディスプレイのアスペクト比から解像度を出しているっぽいけど
VR上ではディスプレイがそもそもないのだからと思うとそれはそうかという感じ?
https://support.google.com/youtube/answer/6178631?hl=ja
上記ページのYOUTUBE公式では推奨解像度は
7168x3584~8192x4096(おそらく2Dの場合なので3Dの場合7168x7168~8192x8192)
相当大きいのでPCスペックがしっかりしてないとなのだけど
アスペクト比率としてはやはり1:1が正しそう?


自分が持ってるのはps4PS4YOUTUBEアプリはHD画質に制限されちゃうらしいから
PS4PROなら4K画質で見れるらしい?
今の自分の環境下ではどっちでもかわんないんだけど
1920×2160のHD画質だとボケたりジャギったりが結構目立つ
02/02追記
ジャギに関してはそもそも自分の設定が行き届いていなかった
っぽい
MikuMikuDomeMaster構成ファイルのMakeCubesUtils.inc内の記述を変更することでVR用出力の設定をかえれるっぽいのだけど
#define RT_SIZE (512)
の部分を
#define RT_SIZE (1024)
にしたほうが良い
これはMakeCubesUtils.inc内の説明にも書いてあるのだけど
キューブマップとしてパノラマ出力する際の一面当たりの解像度
の設定らしい
つまりこの数値を上げないとMMD上の出力サイズをいくら上げたところで
画質が悪いものをそのまま拡大しただけ
みたいな感じになってしまうっぽい
そのほかにもアンチエイリアスの設定とかもあるっぽいので
画質良くならないかなと思ったらこの辺いじってみるのがよさそう
02/04追記
上の動画ULR追加して一つ2048*2048で出したものを貼ったけれど
2048*2048(片目あたり1024*2048)ぐらいでも#define RT_SIZE (1024)にしたほうがジャギっぽさは相当軽減されるようなので
基本的には#define RT_SIZE (1024)にしたほうがよさそう
より高解像度にするならさらに数値を上げていったほうがよさそう?4090*4096なら#define RT_SIZE (2048)とかといった具合?)
ボケ具合はさすがに解像度そのものを上げないと無理
っぽい感じだけど
PSVRと通常のPS4経由でYOUTUBE見る限りは解像度はこのぐらいに制限されるみたいなのでPC用の機材で見ない限りはこれ以上は意味ない感じかな?



自分はそこまで画質にアレコレこだわらないぐらいの人間だと思ってるんだけど
そんな自分でも「うーんこれは一世代前のインターネットで見た感じのボケ具合」とか思っちゃう程度にはボケボケになったりする
(それで立体感ちゃんとあるっていうのも不思議な感覚で面白くはあるんだけど)
これは3D立体視VRの場合立体視がないVRの場合はHD画質でも大丈夫なように思った
あとサマーレッスンだとかエロバレーだとかのゲームも通常のPS4だとHD画質らしい?んだけどこっちはジャギ感はなかったというのも一応付け加えておく念のため
(多分ゲーム系だとプレイヤーが見ている範囲だけがHD画質なんだけど
 動画だと見えてない部分まで全部含めてのHD画質っぽいので相当厳しいことになる感じに思う)


自分のPCはけっこうレトロな感じになってきちゃってるので基本的に1920×2160じゃないと
そもそも出力が止まっちゃう&上記の通常のPS4ではHD画質っていうのがあるからなんともなんだけど
その場合でももうちょっとマシに見えるように工夫している結果なのかな見たいなのがほかの動画でちょいちょい見受けられたので忘れないように書いておく

1.巨女ブーム
というか最初は何か設定ミスってるのかもしくはそういう性癖なのか?これも悪くないけど!
みたいに思ってたいくつかの動画で女性が(体感で)通常の1.5倍ぐらいのサイズに思えるものがいくつかあったんだけど
単純に動画内での描画面積を増やすことでジャギやぼやけ具合を軽減してるんじゃないかと思った
自分が出力した動画ではその辺のカメラ側の設定までは調べなかったのでやれてないけど
自分の想像通りであるのならかなりベターな手法であるきがする

2.ワンインチ距離
目と鼻の先まで女の子に来てもらう感じの動画
比喩抜きに鼻先なのでむっちゃドキドキするしそういう趣旨の動画かと思うけども
これも上と同じく動画内の描画面積増やすことでどうにかっていう手法の一つなのかなーと自分は思った

とにかく解像度があげられない場合はなにかしらの調整や設定をして
動画内のキャラクターの描画面積を増やすとジャギだとかぼやけ具合がもうちょっとマシな印象になるっぽい?
逆にメインキャラクターとカメラの距離が通常の大破する距離ぐらい~遠くにいたり通常~通常より小さいとかで描画面積小さい場合は
結構厳しい感じになるかなーという?

あとはシェーディングもリアル系もしくは通常のCGっぽい感じのほうがいいかなとか
自分が出力したモデルはラインがきっちり見えるように作ったモデルなんだけど
そのセルシェード用のラインとかがはっきり見えるタイプのだと
そのライン部分がジャギ感目立っちゃうのかなーという
ラインの色を薄くするとかして軽減試みたらまた別かもしれないけども


カメラワーク

固定がいいです
動くとしても忍び足かよぐらいの速度がいいと思う
もちろん慣れとかもあるのかもしれないけどそれ以上のスピードで視点が動かれると
すごい勢いで酔いそうになる
イクラのトロッコに乗る映像とかあったりしたけど
わりと即座に断念した程度にはつらい
(マイクラのトロッコの挙動が動画で見る限りだと曲がり角とかでガタつくのもあるかもしれないけど
これまた一応メモだけど自分は今までで3DCGのゲームやって3D酔いしたこととかは一回もない程度なのでそんな自分が速攻「これやばい気持ち悪くなる」って感じ受けるから相当なのじゃないかと思う)

そこもMMD動画だと工夫してるなーとおもったのが
キャラクターたちの背景に大きなバックスクリーンおいて
そっちではカメラワークばっちりついて全体像が把握できる2D映像を流しつつ
視点はキャラクターたちの目の前に置いてキャラクターには目の前でダンスしてもらうっていう形式
とても見やすくていいと思った
ライブ会場みたいなステージにならざるを得ないというのはあるのかもだけど
もっと動画がいろいろつくられたらより最適化された方法
もしくは視聴者側が酔いに強くなってもうちょい動いても大丈夫になるのかもだけど
今のところ自分的にはそんな感じ

FPS

90FPS以上じゃないと酔うみたいな話を聞いたことがあるんだけど
あれは多分どうやら?VR機器との連動具合(実際の頭の動きと視点変更の具合)がって話であって

動画自体は30FPSで出力しても酔ったりみたいな問題を感じることはなかったかなと思う


そのほか細々

寝ながらでもVRできるので寝ながらやってるとわりと首の負担とか気にならないなーとおもった
PSカメラの映像範囲内に自分の頭が移ってないと駄目っぽいんだけど
どうやら多分?カメラと相対する必要まではないっぽい?感じで
枕のあるところなんとなく映しておいて
自分の頭の側面とかが収まってればYOUTUBE動画見るのに問題ない程度には反応してくれるっぽい?


GOMプレイヤーがいつのまにかVR動画に対応してたのでインストール
投稿前のローカルでの画質確認用とかそのうちPCにPSVRつなげた時に役に立ちそうかなーと
ただ一時期スパムだのマルウェアだので悪い噂が立ったことがあったやつなので
不安な人はSTEAMとかで有料の動画プレイヤー買ったほうがいいかも
そんなに高くないみたいなので


MikuMikuDomeMasterを使うときは
最後の出力の時以外はMikumikudance側のアンチエイリアス切っておいたほうがいいかも
MikuMikuDomeMaster側でもアンチエイリアスしているみたいなので二重にかかる感じでめっちゃ重くなる
逆にMikumikudance側のを切っとけば自分の数年前のPC環境でも普通程度には動かせるので調整とかやりやすい
最終的にはというか出力時にはONにしたほうがよさそう?


自分のモデルを出力してVRで見てみての感想
自分のモデルだから自画自賛ぽくはなっちゃうんだけどそういうのとはまた別に立体として目の前にあるときの衝撃度というか
立体視で見るとほんと手とかすごい小さくて、体も折れそうなぐらい細くて、頭とか顔もむっちゃ小さくて
端的に言って可愛すぎて死ぬかと思いましたね!
VR環境あるMMDモデル製作者はほんと流し込み動画でいいから一度出力して体験してみるべき
もうなんかこれだけでMMDモデル作ってよかったと心のの底から思った


今のところの把握具合はこんな感じ?
自分としては高画質というがジャギ感やボケ具合が気にならない程度のレベルで自作モデルを眺めたいんだけど
そこまで行くとさすがにPCスペックを更新しないとMMEが止まっちゃうっぽいのでとりあえずはこの辺までかなーという感じ
ボケててもいいからみたいよほどみたいモーションがあるとかだとまたちょっと出力するかもだけど

ひととおりVRやって脳内に溜まったかんそうみたいなのは吐き出せたのですっきりした


バイオハザードVRに完全対応しているらしく発売したばかりなので
そっちも一回やってみてもうちょっとメモりたいこととか吐き出したい感想がでたら追記するかも
もしくは自分の数年前レベルのPCにPSVRつなぐだけつないでみて多少は何か見れないかとか試してみたりするかもなぁ


以下は02/12追記

まず合計二時間程度?プレイした軽くバイオ7(グロテスクVer)に触れておくと
「むっちゃ面白いけどむっちゃ酔う」
これに関しては自分以外の方が詳しく書いてあるのがいくらでもあるのでそっちみたほうがいいと思うけども
ホラーではあるんだけどそこまで怖くはない感じ?
RPGでグロめのモンスターが出てきましたわよりちょっとだけぐらいな程度な感じだった自分は
ただVRによる迫力はすごいから(YOUTUBE動画のとこでも書いたけどほんと目と鼻の先にまでくるので)超楽しい
あとVRで没入している状態での探索がまた楽しい
けどこれが酔う
ぶっちゃけ最初の二時間ぐらいだとイベント的なバトルしかまだないぐらいなんだけど
バトルはなんかあんまそこまで酔う感じしないかもと思った
探索はなんかそうもいかない感じ
探索してるとほんと酔う
最初の一時間は15分ごとに休憩してた
途中風邪ひいてできなかったけど今日は乗り物の酔い止めとか飲んでプレイしてみたら
かなりマシになったけど30分ぐらいでちょっと不快感感じるようになったので念のため休憩ってのを二回で合計二時間という感じ
慣れで酔わなくなったりするらしいんだけどそれならちょいちょいプレイしていって何とか慣れていきたい
探索はVRで没入してるところをきょろきょろ見回して風景いろいろ見てるだけでほんと楽しいからそれがVR酔いと相殺される感じなのが悔しさすらある感じ



軽くのつもりだったのに長くなりそうだったからこの辺にして今回追記しようと思ってたメインのMikuMikuDomeMasterについて

上のほうでYOUTUBEの動画の四つ目としてURL追加してるんだけども
うんちがうんですよこのモーション選んだのはこう実験としてのアレで下心とかではないということだけまず主張しておいてですね
まぁそれでこのモーションのシチュエーション成り立たせるのにはカメラが相当近づかないといけないんだけど
MikuMikuDomeMasterというよりmikumikudanceそのものがカメラが近づきすぎるとポリゴンの断面が表示されちゃうのでふつうにやったら成立しないっていう
(こういった場合以外でも手を手前に突き出す、髪の毛が物理演算で手前に飛んでくるダンスモーションとかの場合も調整してあげないとつらくなる)

MAYAだとかだとカメラにニアクリッププレーンっていう設定があってこの数値いじって回避するんだけどmikumikudanceにはそういう設定項目はないみたいで
なので単純にモデルや背景のサイズを四倍にして相対的にカメラの断面表示になる距離を縮小しました
上の動画では四倍でやったけども鼻先が断面になって中が見えちゃってるのがちょっとあったりするので
今後は五倍ぐらいのほうが安心&やりやすいかもと思った

モーションの移動値とMikuMikuDomeMasterの視差の値もとりあえず四倍にして
(視差のxを1にしたのは普通にやったときによさそうだった0.25の四倍というだけ)
カメラの高さ、キャラとの距離位置の調整とキャラのほうも首の角度と自作ゆかりさんに合わせて一部分だけ表情調整してという感じ

ただ多分画角も調整したほうがいいっぽい?
動画では顔付近見ている限りはそこまで気にならないかなと思うけど
足のほうとか見るとゆかりさんかなり背が高いね!?という感じを受けたので
ただサイズ四倍(今後は五倍にすると思う)したときの画角のいい値はまだ探ってないので
今後わかったらまた追記するかも

いまんところそんだけ

結月ゆかりのMMDモデル完成 配布先URL+いろいろ説明(利用規約ではなく説明オンリー)19/06/02更新


長々とダラダラと細々と作っていましたが
あれもう完成じゃないですかね?って感じになったのでニコニコ立体で配布します
配布先http://3d.nicovideo.jp/works/td28322


ちょこちょこややこしいところがあるモデルかと思うので
簡易的な説明を最初のほうに
めんどくさそう&あんま使う人いなさそうな感じのは最後のほうにという感じで
説明用のブログ記事を書いておこうというのがコレです


必読の利用規約とかでは全くないので
「なんだこれわからんぞ?」というときに適当に流し見していただければと

逆にここに書かれていないことでわからないことがあった場合
自分がPMXのデータのことをそもそもわかってない可能性が大なので各自何とかしてください……orz

更新履歴は一番下になります



『顔変化』系モーフ


「その他」の中に「:-)と名称の頭につけたモーフがいくつかあり
モデルの顔立ちが変化します
(画像は初期バージョンなので最新とは微妙に違っています)

右から順番に
「標準」(モーフなしの標準状態 釣り目気味です)
「童顔化」(幼い顔立ちになります、水着Verのころから実装していたものです)
「二次創作風」(プロっぽい顔立ちになります)
「公式風」(優しい顔立ちになります 公式に似たりはしませんでした)
となっています

ニコニコ立体で公開中のモデルや動作サンプルとして公開した動画では
「公式風」のモーフをMAXまで入れていますので
その顔立ちが気に入られた方は最初にこのモーフをMAXまで入れていただければと
混ぜ込んで自分好みの顔立ちを探ってみたりとかもできるかと思いますので
いろいろ遊んでいただければと思います

【着脱】系モーフ







「その他」の中に「-」(マイナス)と名称頭につけたモーフがいくつかあり各衣裳パーツのONOFFができます
仕様上0か1かでの動作を想定しており
例えば「パーカーが徐々に透けてなくなる」というような動作は想定しておりませんのでご了承ください

着脱可能箇所は以下の項目です
服(胴体部分が水着と入れ替わります)
パーカー(仕様上このモーフのみ脱ぐのではなく着るモーフになっています)
靴(靴を脱ぐのに伴って高さが靴底分変わることに注意してください)
ニーソ(生足になります)
アームウォーマー(この部分はこの名前であってます? 腕周りです 生腕?になります)
腕輪(右腕の腕輪が外れます)
髪アクセサリ(頭部左上の髪のアクセサリーが外れます)
腰アクセサリ(腰の大型ユニットが外れます)
インカム(左耳のインカムが消えます)

上にも書きましたが仕様上パーカーのみ着るモーフになっており
(そのためパーカーのみ「+」(プラス)が名称頭についています)
モデルを読み込んだ段階ではパーカーを装着していないことにご注意ください

「0or1」での使用想定しているモーフについて
一部のモーフについて0か1での使用を想定(0.5だとかの強さで入れることを想定されていない完全にONかOFFか)しているモーフがあるためここに列挙します
配布されたモーションを流し込む際などにモーション側ではこのモーフに強弱を入れている場合も多々ありますのでその場合は調整を行ってください
丸目

はぅ

グル目

なごみ
(17/05/11に変更 もともとはボーンモーフでやっていましたが
こちらに方式を切り替えました)

(〇目(17/05/11に追加)

(〇目のみ、ほかのモーフや視線移動などにもある程度対応しています
(完全な対応ではないことに注意してください)



「にごり」
病んでいる系の悪意があるキャラクター等で使われる表現を想定しています



フェイシャルボーンについて
モーフのほとんどをボーンモーフで構成することに挑戦してみております
(拡大縮小系はMMDの仕様上ボーンはつかえないので断念)

特に使用を把握せずともほかのMMDモデルと同様に使用できますが
「自分好みの顔立ちにカスタマイズしたい」(顔変化モーフのどれも好みとは少し違う場合)
「用意されたモーフだけでは作りたい表情にもうちょっと足りない」みたいなときには微調整のように使用できるかと思います

参考用に例のポーズと表情

モーフ項目のみで作成

フェイシャルボーンでさらに微調整

……あんま変わらない気がしますねうn

まぁこの程度のシロモノなのであんまり期待しないでくださいorz

調整》用モーフについて
「その他」の下部にいくつかある通常使わないモーフです
モーション流し込んだ際に一部破綻した場合に軽減できたらいいな
ぁとか

カメラワークによって見栄えが悪いときに気軽に多少ましにできたらいいなぁとか
夢と希望的観測で作成されているので効果も微妙ですが一応入れ込んでみています
多分あんまり使わないと思います
こういうのもあるんだよ程度に思っていただければ



胸パーカーの接触回避




適用前(上)と適用後(下)
胸が揺れてパーカーからはみ出してくる場合がタマにあるので
その回避用にパーカーと胸の距離を開くモーフです
基本的には使用しなくても大丈夫かと思いますがはみ出してくる場合は
使用してみてください



煽り構図時用


顔を煽りで撮るときにアニメ的なバランスにならないモーフです
(なってくれたらよかったんですけどもorz)
左から「通常(適応なし)」「0.5適応」「MAX適応」状態です
画像は物理演算が切られた状態で物理演算ONにするとここからさらに髪が垂れ下がるため
おでこがすごい見えるという感じでなんかほんとに使いどころが限られます
ゆかりさん自体があおむけに寝そべっている状態でこの構図になるときぐらいには使えるかもしれません
使う場合でもMAXで適応するのは角度がかなり限定されるので0.5前後ぐらいが
よいかと思います


真っ当な構図から見た場合はこんな感じになります
(通常時とMAX適応時




縁ハイライト消し
縁ハイライト色R
縁ハイライト色G
縁ハイライト色B

それぞれ通常時、縁ハイライト消し、縁ハイライト色Rです
縁のハイライトの強弱(および完全消去)と色のコントロールがRGBでそれぞれできます
できるだけです
使いどころあるんですかね?
縁ハイライトが邪魔な時とかに消すぐらいには使えるかもしれません
これでコントロールできない箇所もあるのは
笑ってあげてください
(主に金属、透明パーツ系のは対応してないです

インチキ空間解除





解除前(上)と解除後(下)
スカート内の水着のリボンがはみ出してきています

動くともうちょいいろいろはみ出してくるかと思います
デフォルト状態ではスカートから内部のもろもろがはみ出すのを透明材質(透明度0.001程度)の描画順で
強制的に消しているのですが
それがカメラ角度などによっては邪魔になる場合もあり得るのでそのウソを解除してしまう材質モーフです
スカート以外にも水着周り、パーカー周りにも同じ構造を使ってはみだしを抑えています
基本的に使用しなくても大丈夫かと思いますが逆に邪魔な時がありましたら使用してみてください


揺れ個所について
胸にAH式ボーンが入っていますが
そのほかにも頬、お腹、お尻、太ももをとりあえずレベルで揺れるようにしてみています
(揺れすぎると違和感しかなかったので心持程度かと思います)

ただFPSが低いときに激しい動きをした場合などは
頬の揺れなどで顔の表示が崩れたりすることもあるみたいです

FPSと動きの激しさの関係上崩れて表示される場合、
もしくは「ゆかりさんの胸が揺れるとかありえないだろいい加減にしろ!」という場合は
お手数ですがPMDEの剛体設定で物理切っていただければと思います

ラインについて
MMDやMMMでは通常モデルにつくアウトラインは材質設定でされており
ユーザーが太さコントロールやON、OFFが可能ですが
このモデルに関してはアウトラインもポリゴンモデルとして作成されているためこれらの機能で調整することができません

モデルの改造は許可状態で配布しておりますので不要な場合はPMDEから該当する材質ごと消してただければと思います
(その場合、テクスチャに書かれたラインもあわせていくつか消す必要があるかと思います)

シェーディングについて

このモデルがセルシェードでいい感にならないかなーというのを想定して作られているため
顔や髪の毛周りが図のようなシェーディングになっています
このためリアル系シェーダーエフェクトとはあまり相性がよろしくないかと思われます

水着Ver配布時に使用していただいた方の作品ではそういった方向のシェーダーエフェクトも
いい具合に調整していただいておりますので不可能ではないかとおもうのですが
やや面倒な調整が必要になるかと……


更新履歴

17/02/26
モデルの更新に伴って一部説明を修正

(顔変化、着脱系モーフの名称変更に伴う周辺)

17/05/11
モデルの更新に伴って一部説明を修正
(目のモーフに関して周辺)
また、目に「にごり」モーフを追加

19/06/02
水着の形状を修正
まつ毛部分にボーンを追加してとじ目時にまつ毛が下がるように
指の大きさのバランス調整して小指ゼロを使って小指と親指の頭をくっつけられるように
その他


一応程度に進んでるきがしなくもない   11/16 11/20 に追記



久々にゲームとかやったりしてたのもあっていつもに輪をかけて進捗が遅いけども
何とか服のモデルとテクスチャまではできた気がするので一度更新

ただここからがウェイト、服用の物理ボーン追加に体との着せ替えモーフ用のマテリアル分けだの法線とかポリゴン反転ラインの強弱設定だのだとか
まだまだ先は長い感じで今年中に更新できるか自分のペースじゃ怪しすぎる……

ただまぁ最終目標である「VR買って自作モデルの美少女を360度立体的に眺めたい!」は
そもそもVRまわりの機材が自分の収入具合では厳しいお値段だったから
時間的余裕ができたというか
時間あっても安くなってくれるのかというか
安くなってくださいというか



服つくるにあたって胸のボリュームを抑えたので現状だとはみ出す次第
材質モーフで消すからいいんだけど
きっとさらしとかでおさえてんだよ
うちのゆかりさんはぬぐとすごいとかまではいかないけどまな板じゃないんだよ
いつのまにかでかくなってたんだよ
おっぱいモデリングしてるとなぜかそうなるんだよ
なんで?


今回は一回見せられるところまでは進んだから画像張っておきたくなっただけなのでここまで


「おねがいダーリン」のモーションいいよね
表情むっちゃころころ変わるのもありがたし
自作モデルゆかりさん眺めるときにかなり多用してるわ……
とかいいながら同じぐらい多用している「リトライ☆ランデブー」の1ポーズを貼る




これまた今更だけど自作ゆかりさん、ほかの人のとか公式のとかに比べて釣り目っぽいから
最近は自分でMMDで眺めるときに「じと目」「たれ目」「キリッ」あたりで顔つき調整してみてる
ゆかりさんのイメージってこう「ややたれ気味なジト目だけどなんかドヤ感」みたいな……
次配布するときは顔つき調整かましてから配布したほうがいいのかなーとか


だめだ日記にしても独り言すぎるなんだこの文章
つかれてるのよ
ほげげ
また進捗したらこの記事の下に追加更新してこうと思いましたマル
ほんとはちょっとメモっとこうとおもったちょっとしたやりかたみたいなのもあったんだけど
今週末の休日にでも追記しよ……



11/16
週末に追記するとか言っといて余裕でぶっちしてた次第
人間の屑おじさんなので仕方なし

現状は一度服付きバージョンをMMDに出力していろいろ設定してみたところまで
ピンクキャットから1ポーズ





余裕でスカートの物理がうまくいってなくて笑うしかないんだけど
着替え系モーフは一通り実装できた感じ……
(腰アクセサリだけ出力途中にミスったせいで消せなくなってるのは後で修正……)

というかいままで勘違いしてたんだけど
材質モーフの透明度って複数のモーフやっても合計値が0以下なら消えるとかになってくれるのね……
複数の材質モーフやるとおかしな結果になると思い込んでたので無駄にアレコレやってたんだけど
(パーカー着せた時に一部の体けしとかないとはみ出してくるけど腕の服の着替えにも絡んでくるしあああああああとかみたいなの)
結局シンプルに各部のパーツを着脱できる形に収まった
(というのもなぜか消すときは乗算つかわないとだめだと思い込んでてそのせいで掛け算混ざって結果が変になってたんだと思う
 普通に加算に-の数値入れればよかったというだけの話)


あともう一つ解決したんだけどPMDEとMMMでは材質モーフが動作するのにMMDでは材質モーフが動作しないみたいな状態になったことがあって
これまたいろいろ試してたんだけど
結局モーフ名の文字数が原因だったみたい?
「パーカー・服・アームウォーマー」とかだとエラー的な動作しかしなかったんだけど
「パーカー・服・生腕」とかだと正常に動くみたいな?
10文字以上だとだめとか?うーん?自分だけ?
いやまぁ結局各部別々に着脱できるようになったからそんな長々とした名称使わなくなったんで無駄なアレだったんだけど一応メモしておきたかったんよ……




あと首筋の線と胸上部の境目ラインとあばら骨周辺のラインを消した
セルシェード系だとテクスチャに書き込む情報があんまりないもんだから
何か情報入れなきゃとか思って入れてたんだんだけど(結局どんどん薄くしていったんだけど)
最近のアニメとかの美少女見ても首筋のラインとか入ってないよ
おっぱい上部の境目ラインとかいつの時代の絵でも入ってないよとか
俺は正気に戻ったみたいなアレだった
でも腹筋ラインは残す
このぐらいはあってもいいよねうん(作業したのがもったいないおじさん)





もう一個
顔のマテリアルをセルフシャドウ時にも影が落ちない設定にした
(この直上の画像以外のも別に顔に髪の毛の影落ちてないじゃんとかあるけどほかの画像はセルフシャドウオフ状態なので……数年前のPCだと重くてとか大ありで)
というかアレコレやってて材質設定への理解が追いついてなくてそういうことできるのをそもそも把握してなかったかもしんない……
今は顔のマテルマテリアル範囲が首元ぐらいまで来てるので首の付け根、鎖骨の中心あたりにパッきり謎の影の境界線が見えちゃってるけど次回出力時に首より上と下で材質もう一個分ける予定

というのもこれも最近気づいたんだけどあんま顔に髪の毛の影落とさないほうがいいっぽいのね多分?
顔に髪の毛の影が落ちると情報量がごちゃごちゃしてきて表情がすっきりと見えないというか?(自分だけ?)
自主的にいろいろMMMで躍らせているときに「なんかセルフシャドウないほうが可愛い気がする?」とかは思い始めてたんだけど
ちょっと前に店頭で見た最新のアイマスとかでも体に落ち影は落ちてるけど顔に髪の毛の落ち影は落ちてなかったので「やっぱそうなのか?」みたいな

とりあえず次の配布時にはその設定でお出しする予定




スカート物理、ウェイト以外にもちょこちょこ修正したい項目があるのでまだかかるけども
完成での配布は今年中いけるかいけないかぐらいな気がしてきた
パーカーのときの物理の悪夢とか思い出しててスカートも同じぐらいグダルの見込んでたんだけどそこまでではなさそうなので?
(とかいいつつ修正、調整進めていったらどうしようもない問題が出てきて完全ストップするかもだけど)




もう一個Blender側でのメモしたいことがあって
本当はこれを週末に更新しようと思ったんだけどブッちしてた
そのうえ画像とか用意するのめんどいから文字だけでメモる
MAYAだとかだと3D上の頂点を動かしたときにUVも併せていい感じにするみたいなオプションあるんだけど(動かすとテクスチャの上を頂点が滑る感じに動く)
blenderでもちょっと重かったけどその方法ができたので忘れないうちに
(自分が把握してないだけで標準機能のオプションとかであるのかもだけど)

1・UV展開済み、テクスチャ貼り済みの対象オブジェクトをデュプリケート
2・データ転送モデファイアを入れて元オブジェクトにデュプリケート前のものを指定
3・面コーナーにチェックを入れる、UVを選択、最近接面に指定
4・デュプリケートしたオブジェクトの頂点位置をいじる
(エディットモードでもモデファイアの効果がみれるボタン押しとくの忘れないようにする)

これでUV自動でずらしてくれる感じでメッシュの3D上の頂点位置がいじれる
というのもゆかりさんの服を作るときに一度UVを仮展開して
3Dペイントでラインの位置を決めてから本村式ライン入れるための分割を改めて入れて
仮引きしたラインにちゃんと沿うように頂点位置を調整みたいなことやってたもんだから
これがあるとマジでありがたかったみたいな

ただちょっとだけ重いかなー
やっぱ自分が知らないだけで移動ツールとか内に普通にそういうオプションがある気がするうーん



今回メモりたいことはだいたい書けたのでまた進捗するなりメモりたいことでてきたら追記で更新するかも(しないフラグ)



11/20

パーカーの物理地獄に比べたらスカートなんてすぐだぜ
そう思っていた時期が私にもありました……
もうね
うn


とはいえめどが立った気がしなくもないレベルにはなんとかたどり着いた気はする
(めどが立ったとは言ってない)
そのほかにも調整したいところはあるんだけど
ほんと最低限スカートはどうにかしないとどうにもならないすぎる……


それとは別にちょっとモーフとかも増やしてみていたりとかした



通常の表情用のやつでなくて顔つき自体がかわる奴
左から「通常(モーフなし)」「童顔化(既存)」「二次創作風(新規)」「公式風(新規)」

二次創作風はファンアートで見かけるゆかりさんがどや顔っぽいジト目なことが多い気がしたのでそっちに寄せるイメージで
公式風は公式の絵を目指したけど完全に無理でしたねでもまぁ公式になるとは言ってないので一応データは残しとこうみたいなアレ

ボーンでのフェイシャルでやりたいことの一つによくゲームのキャラメイクであるみたいな
福笑い的に顔を好みにいじれるみたいなのがあったので
それは童顔化モーフで達成できてはいたんだけど一つだけというのも寂しい気がしたのでみたいな




あともう着替え用とかそのたもろもろの材質分けをした結果材質が127個とかになってるんだけど
それをblenderから再出力するたびに手動で一個一個マージしてかなきゃいけないのがほんとにもう
今日一回やったけど3~4時間かかったよ……
PCがそろそろ古すぎる+データ重いとかがあるんだろうけど
それにしたって数個マージするたびにPMDEがガンガン重くなっていって
そのたびに上書きと再起動して
なおかつその作業中にマージするもの間違えたら最初からやり直しだから慎重に確認しながらっやってって
もうこれだけで精神力がっつりけずられるんですけどっていう
ボーンとかは「同名ボーンマージ」機能があるのになんで材質は「同名材質マージ」機能がないんですかね?
プラグインとかでもない感じっぽくてほかの人たちって調整してPMDEに再出力したときにこの辺どーしてんだろうマジで……

もう自分でPMDE用のスプリクト、にたような公開されてるやつから書き換えて作ったほうが早いんじゃないかとか思ったものの
PMDEの命令文一覧みたいなのがどこにあるのかがまたよくわからないうーん




とりあえず現状はそんな感じなので
スカートがなんとかなれば割と早めに配布できるかも?
いつまでもどうにもならなかったらどうにもならないかも……みたいな感じですというだけの追記でしたはい
はいじゃないが

結月ゆかりの自作モデル配布データ更新   8/7に再更新分の内容追加

やっとこパーカー、アクセサリ類を追加したモデルを作成して更新
http://3d.nicovideo.jp/works/td24997
以前と同じアドレスでビュアーデータは更新せずダウンロードデータのみ更新
(下の方に08/07分の更新内容を追記したのでそちらの方も確認いただければと思います)



モーションの「ウソツキ」
「おじゃま虫」だったお前がウソツキだよ!
より1ポーズで現状
(童顔化、赤面、にっこり、瞳大が多少+ではいってるけども)
ついでに言うとサムネは海外の方のモーション

作成中のあれこれは前回の記事にちょこちょこ追記してたのでざっと内容だけまとめ
(モデル的にパーカー、アクセサリ類追加されてるのは画像見ればわかると思うので割愛)

別途画像用意しなくてもわかるところからだけども
髪の色を中心にもっと色合いをゆかりさんの設定に寄せてみた+スフィアマップなどちょこちょこ追加してシェーディングをちょっとだけ情報量上げてみた
あんまやりすぎるとセルシェードと言い張れなくなるきがするので最低限……
(肌の色白くしたり、入っている本村式ラインも濃すぎたみたいな感想ちょこちょこみたので薄くなるように調整)

物理周りの設定を再調整
パーカーやアクセサリが加わっていろいろごちゃごちゃしてきたからというのもあるけど
そもそも前回のデータはまだわかってないにもほどがあって色々おかしかったし
せっかくのAH式おっぱいボーンとか尻とかも一応程度揺れる設定にしてたのに全然生きてなかったので他のモデル参考に一度数値丸コピしてからこのモデルに合ってるところまで抑えるみたいな感じでなんとか
まだいろいろダメなんだろうけど前回よりはマシだと思う
(っていうか揺れるようになってから思ったけど結構盛っちゃってるなー……いやどこをとは言わないけど、こう、板ではないよなー……)

微妙に更新内容とは関係ないけどパーカーのウェイトがほんとにメタクソ時間かかった……
パーカーという存在そのものに殺意を覚えるレベルで表生地から裏地がはみ出しまくるていう
それを確かめるためにblenderから出力しなおして(出力のたびに法線周りのよりかけ直して)
吐き出したら材質周りをマージしなおしての再設定をして(これまた重くて途中で止まりそうになるのでほどほどで再起動しないといけない)
一度確認するための状態に再出力するのに比喩抜きで一時間ほどかかるっていう……
それで踊らせたらblender上であんなに確認したはずなのに
普通に破綻しおる
ハハハ
破くよ?ゆかりさん、そのパーカー破くよ?薄い本見たくするよ?
とか思いながら相当かかっててもうしたくないですうへぇ……

いま確認したらその辺最終的にどういう流れでやったか前回記事に追記してなかったっぽいので軽くだけメモしとく
パーカー周りは計7本のボーンの流れがあってこれに合わせてモデリングしとけば楽だったんだろうけどそういうことはやってなかったので
ウェイト用にボーンに合わせたシンプルなモデルを作成しなおして一度そっちにウェイト関連付けして1頂点4つまでで綺麗に行くように作成
(最初からごちゃごちゃしたメッシュのパーカーに関連付けるとスムースで馴染ませても1頂点4つ以上になるし、メッシュもシワの造形とか絡んで均一じゃないからスムース具合もよろしくなかった)
そこからパーカーを揺れる部分と体と一緒に動く部分に一度分離して揺れる部分にだけ転写
体といっしょに動く方は体から転写して(これも転写だけでうまく行かなかったのでメッシュ形状含めて調整して……)2つを結合
結合した部分は使わないFreestyleを目印代わりにつけといてあったのでその周りの頂点だけ
スムースしつつの最終的には手修正
みたいな流れでなんとか目処が付いた……(目処が付いてからも何故か起こる見逃しで数回出力しなおしたけども……)


愚痴だかメモだかわからんのはこの辺にして更新内容にもどるけども


特殊表情の更新
星目がおもいっきり☆マーク出してたのをいわゆる電磁砲とかの「しいたけ」に
(こっちのほうが需要ありそうというかだいたいのMMDモデルはこうなってた)
はぁとの大きさと位置を主に調整
はぅ!が><すぎたのでちょい潰して曲線に
青ざめの濃度を調整……したきおくがあるのでいっしょにスクショとったけども覚えてない……



水着のフリル部分にレース的な抜きの模様を追加
目指してたラインや分かれ目がきっちり出る表現からは外れちゃうからどうしようかと思ってたんだけども結局入れたという感じ
あとは水着にシワのモデリングをしてから法線馴染ませて結局ほぼ消えるという意味があるんだかないんだかみたいなことを
あと水着の結び目の物理ボーンの数が全体的に適当すぎたのでもう一段きっちり入れた
……でも今回物理箇所一気に増えたので結局こういう細かいところは適当かも……


変更としての更新はこんな所かなぁ……?
ほかは全部追加としての更新という感じだと思う

あとは前回のブログ記事で日焼けあとのリクエストがいただけたのでわからんながらもやっつけてみたりした




「ぶれないアイで」のモーションから1カット
一応←が競泳水着っぽい日焼けのはずで
一種類というのもな~とかおもいながら何もアイディア浮かばなかったので
ボクサータイプのスポーツウェアというかスポブラとスパッツ?みたいな感じのもつくってはみたみたいなのが右
ほんとはビキニの日焼けとかがスタンダードなんだろうけど
それ今着てる奴じゃん日焼け跡の境目被っちゃうじゃん!とかおもったのでバリエーションに入れませんでした……
こんぐらいのクオリティでならばあんま手間かかる作業ではなかったのでなんか良さそうなの思いついたらまた追加するかも……(しない奴がよくやる言い回し


多分こんなところで今回の内容は全部……?
物理周りは手間取ったけどもメモしようにもごちゃごちゃしすぎ&自分のメモみるより
他のもっとわかっている人の記事見に行ったほうがいろいろ早いッて感じなのでスルー
なにかよほどメモり忘れてたことあったら追記するかも


7/10
ちょっとひとつ思い出したので追記
AH式おっぱいボーンの都合上?、最初のポーズが初期位置から大幅にずれたり
180度向きが回転してると開始時におっぱいがむっちゃ暴れるっぽい
(自分の設定が悪いのかとおもったが一応仕組み上そうなっちゃうらしい?)
それでまぁ暴れるだけなら開始時にそこ移さないカメラワークにとかでいいんだけど
偶に変に破綻した状態のところで暴れが落ち着く場合があるっぽくて
そういう場合は
……どうしたらいいんだろう?
多分モーションとか音楽の読み込みを60フレーム目とかからはじめて
1フレーム目はA字ポーズにしとくとかにするとだいじょうぶなんだろうですかね……(今思いついた)


8/7
いろいろ調整して再更新したので追記

大きな更新としてはお腹と太ももを揺れるように物理ボーン追加したの
画像で貼っても仕方ない(かと言ってGIFとか用意するほどでもない)ので文章のみでの記述になってしまうけど
あんまり加減がわからんのでちょいとだけ大きめに揺れるようにしてみたつもり……
常に物理演算でポーズ変えるとおもいっきりプルプルするんだけど
ダンスモーションとか流し込んだ場合にはこのぐらいじゃないと揺れてるor柔らかく変形している感ないかなと

あと前回の更新時にお尻の揺れ?ウェイト更新したからか最初のデータではそこまででもなかったはずなんだけど
お尻の素体部分が水着からかなりはみ出しやすくなっていたのを見逃していたので
中の素体部分を素材分けして素材の設定の方で消した
(改造可にしているのでモデルとしては素体をできるだけ残したかった為)
まだたまに出てくるっぽいけど相当緩和したはずなのでこれでとりあえずはなんとか……

同じく物理周りで胸がちゃんと揺れるようになった結果パーカーの前面部と干渉しまくってたんだけど
距離を離してよほどのことがない限りはみ出さないようにした

これでもはみ出す時がある場合は「胸パーカーの接触回避」のボーンモーフをもう少し入れると
もうちょい距離が離れるのでそれでなんとか……


その他眉の上下移動モーフだとか他MMDモデルで見かけるモーフをいくつか追加設定と
同じく他MMDモデルでも見かけたモーフの名称すり合わせ


「はぁと」はもうちょいハート型内部の抜きの強さを弱めてみた
(遠くから見るとハート二重になってるのわけわかんなかった気がしたもんで……)
「ぐるぐる」は名称すり合わせで「グル目」に変更
(他にもすりあわせた奴はあった気がしたんだけど思い出せない……)


口で追加したのは「にやり2」「ω」「ω□」
ωというか猫口は一旦「ボーンじゃ無理か……」と諦めてたんだけど
今回やってみたら一応程度の形にはなった気がしたので追加
(眉の「上」「下」モーフとか同じく眉の「怒り左」「怒り右」は新規追加とはいえそのまんまなので画像省略)



あとは更新内容txtとかには明記してないけど(クオリティ的に微妙っぽいので)
一応「煽り構図時用モーフ」というのを作ってみた
以前から作ろうと思ってて一旦諦めたやつなんだけど
今回作ってみたらないよりマシ程度のものにはなった気がするので


一応右から左にかけて「0」「0.5」「1」で適応した状態
ただ画像は物理働いてない状態なのでここからさらに物理で髪の毛の位置変わっちゃったりするのは流石になんとも
「1」であてたのもこの顎のラインがほぼ真っすぐになる構図の時に最大に補正かけてどうにかという用途なので
ちょっと煽り構図になってないよりマシ程度の修正をかけたいとかなら0.5前後で当てるのが無難かなーという程度のクオリティ
逆にもう顎の面がきっちり見えるぐらい煽り構図になる場合なら0のほうがいいかもと思う
上野画像の構図の時を補正最大としてそれより煽っても煽らなくても弱くする感じ?


普通の構図で当てるとこんなん
0と1の状態
まぁやってみたかった事の一つなのもあるから今後暇を見つけてはもうちょい調整したり
髪の毛の物理も含めた場合でもなんとかならないかなーとかもしてみたいんだけど現状ではこんな所
これがもうちょい満足行く感じになったら左右の構図とかからでも補正をかけるモーフとかも作りたいんだけども……





一応動いてるの参考用
7/9時点で配布データ更新のものより前の状態なので配布してるのはこの段階より
物理周りがマシになってる