枕はそばがら派

Blender, MMD, Macなどについてのメモ。

【説明書】オリジナル3Dモデル「バメッサ」

オリジナル3Dモデル「バメッサ」
https://sobagarashop.booth.pm/items/5129599

 

オリジナル3Dモデル「バメッサ」の購入者さまに向けて、特徴や改変の注意点などをまとめています。

 

  • 表情について
  • 視線制御について
  • 顔の影の消し方
  • Questのテクスチャ改変について
  • Quest版の「VRC_BAMESSA_Quest_Full.fbx」の違いについて
  • Blenderを使った改変について(高難易度)

 

続きを読む

【Unity】法線焼き込みをしたメッシュで綺麗なアウトラインを出す方法【lilToon】

 

lilToonにて、法線焼き込みをしたまま綺麗にアウトラインを出すメモ。

 

・法線焼き込みをすることで影の制御ができる

・しかし法線方向にアウトラインが出ないので思った通りのアウトラインが出ない

・lilOutlineUtilというツールを使って、法線情報を頂点カラーに焼きこむ

・結果、法線による影の制御と綺麗なアウトラインが両立する。

 

下の画像はちょっとわかりずらいが、口元のアウトラインを見るとわかりやすい。

ツールのダウンロードはこちら

github.com

 

まず、法線を編集してあるモデル(FBX)と、法線がリセットしてあるモデルを用意する。

(Unity内でFBXをコピーしてリセットしたものでもいけます。今回は一部法線転写したものを残したかったので別FBXで書き出しました)

 

ちなみに法線のリセットの仕方はAlt+Nで出てくるウィンドウから「ベクトルをリセット」

 

 

購入者さんの改変はこちらから読んでください

lilToonのマテリアル設定から

「輪郭線設定」→「頂点カラー」→「RGBW → Normal & Width」に変更しておく

 

上のメニューから「Window」「_lil」 「Outline Util」と進みウィンドウを出す

 

輪郭線を正しく出したいアバターをドラッグする

焼きこみたいメッシュ名にチェックを入れ、「外部メッシュの参照」を選択

法線がリセットされてあるメッシュを読み込む。

 

一番下の「生成&テスト」ボタンを押し、「Complete!」ウィンドウが出たら成功。

もし出ない場合はエラーが出ている可能性がある。

Consoleを確認するべし。

 

Inspecterの中にコピーとして生成されているはず。

表示させて結果を確認。

結果が良ければ「保存」ボタンを押す。押さないと消える。

 

 

エラーでつまったところ

メッシュの中にどの頂点にも適応させてないマテリアルが存在し、そのマテリアルにlilOutlineUtilで書き込もうとした場合エラーになる。

使ってないマテリアルは消しましょう。

 

 

VRChatアバターをBOOTHで販売するときの注意点

導入

VRChat向けアバターを作ったはいいけど、販売や配布にあたってどんなデータを作ればいいの?という方向けに記事を書きます。

 

Unity得意ではないですし、間違ったところやもっとこうしたらいいというのがあったらコメントに書いて頂けると幸いです。

 

unitypackageファイルの作り方

まずVRChat向けアバター購入したらほぼ必ずついているこの「unitypackage」ファイルの作り方です。

工程的には最後の方なのですが、どうやって作るのかをまず知ってください。

そうすることによってどんなデータを作ったらいいのか、整理したらいいのかなんとなくわかるかと思います。

 

Unity上部のメニューから「Assets」→「Export Package...」を選択します。

 

そうするとこんなウィンドウが出てきます。

現在Unityに読み込まれているデータがすべて一覧として出てきます。

この中からチェックが付いているものをunitypackageデータとして書き出します。

データ量によって膨大になるので、ウィンドウ下部にあるAllボタン(全選択)・None

ボタン(全選択解除)をうまく使ってください。

必要なデータにチェックが入ったら「Export...」ボタンを押します。

 

そして保存先を指定し、ファイル名を指定して保存。

これだけです。

ほんとに…。

 

ただエクスポート時に、有料アセットファイルや配布・販売許可のない他人の著作物も含めてエクスポートが出来てしまうので、チェックを必ず外しましょう。

 

シェーダーに関しては権利的に許可されていても同梱することはおススメしません。

 

例えばユーザーさんがすでに新しいバージョンのシェーダーをUnityに読み込んでいる場合。

○○シェーダーv2.00をインポートしている

→○○シェーダーv1.90が同梱されているunitypackageを読み込む

→○○シェーダーv1.90に上書きされてしまう。

といった事態が起こってしまうのです。

 

まあインポートするときに不必要なものを入れないようにチェックを外せばいいのですが、面倒ですし間違えることが多いのでシェーダーを同梱することはおススメしません。

 

ファイルの整理

それでは実際にファイルの中身について整理していきましょう。

まず「Assets」直下に必要なものをバラバラに置いてある場合、フォルダを作ってそこに入れましょう!!!!

「Assets」直下のままunitypackageでエクスポートすると、ユーザーさんも「Assets」直下にいろんなデータがたくさんインポートされちゃいます。

複数のアバターを読み込んでいるとAssets内の項目が多くなりがちなので、ひとつフォルダを作ってその中にすべてのデータを入れてあげると親切です。

またこれはあくまで自分の考えなのですが、フォルダ名はデータの名前としてわかりやすいものをつけてください。

ブランド名、BOOTHのショップ名を付ける方がいらっしゃいますが、ユーザー側はインポートしたときにどのフォルダが今読み込んだものかわからなくなることが多いです。

ただ、同ブランド・ショップ名でまとめたい!という考えもわかりますので、あくまで自分の考えです。

 

必要なデータ

さてさてフォルダの中身ですが、アバターやアクセサリーなどそのデータを構成する必要なデータすべてを入れます。

 

・FBX

・マテリアル

・テクスチャ

・VRChatの設定済みprefab

(・配布物が置いてあるUnityのシーン)

・その他必要なもの

 

Unityのシーンはあってもなくても構いませんが、あると親切ですね。

 

FBXのデータ注意点

それではひとつずつデータを注意してみてみましょう。

まずFBXのファイルを選択します。

Inspector画面内のRigタブを選択し、自分が設定したタイプになってるか確認します。

人型であればHumanoidですね。

「Configure...」を押して詳細画面を開きましょう。

こんな風に正しくTポーズではありませんよとエラーが出ていた場合

「Pose」メニューから一度「Reset」

そして「Enforce-T-Pose」を押してください。

そうするとエラーが消えるはずです。

最後に「Apply」を押して確定し、「Done」ボタンを押して詳細画面を閉じます。

もしエラーが出ていたまま突き進んでいた場合、ここで一度VRChat上などで関節が正しく動くか確認しましょう。

 

テクスチャに関しての注意点

画像データはすべて「Streaming Mipmaps」にチェックが入っていないといけません。

テクスチャデータを選択し、Inspectorタブで画像のようにチェックを入れて「Apply」でもいいですが

 

VRChatSDKのアバターアップロード直前の画面で

This avatar has mipmapped textures without 'Streaming Mip Maps' enabled.

のエラーが出ていた場合、「Auto Fix」を押せば上記の作業をすべて自動でやってくれます。

ここにエラーが出ていなければStreaming Mip Mapsの設定は完了しています。

 

VRChatの設定済みprefab

VRChat用の設定が済んでいるPrefabを選択し、Inspectorタブ内のPipeline Managerという項目を見つけます。

画像ではAnimatorの下に来てますが、順番が入れ替わりがちなのでスクロールしながらよく見てください。

Blueprind IDという項目に文字列が入っていなければOKです。

もしここに文字列が入っている場合は「Attach」ボタンを押して消してください。

Blueprind IDとはVRChatにアバターをアップロードすると付与される固有のIDです。

同じIDでアップロードすると、すでにアップロード済みのアバターに上書きできます。

ユーザーさんに配るデータにBlueprind IDが入っていると自分のアバターとしてアップロードできないため、困ったりひと手間かけさせたりさせるので必ず空欄にしておきましょう。

 

unitypackageエクスポート後の確認

ここまでデータの整理や確認を終えてunitypackageをエクスポートすることができた!とします。

最後に新しくUnityプロジェクトを作り、作ったunitypackageをインポートしてみましょう。

なにかしらのエラーを出さずにVRChatへアップロードをすることができ、またVRChatで動作確認ができたらunitypackage編ゴールです!!

 

zipファイルの中身編

unitypackage編!?!?まだあるの!?!?って感じですがまだあります。

次はBOOTHにアップロードするzipの中身編です。

 

・完成したunitypackage

・FBX

・テクスチャデータ

・改変用psd(UVガイド付き)

・UVのガイド画像

利用規約・ライセンスファイル、もしくはリンク

・販売・配布ページへのリンク

 

これらすべてを入れる必要はありませんが、あると便利だなというものを書き出してみました。

 

これらをひとつのフォルダに入れてzipに変換!

そうしてできたzipファイルがようやくBOOTHにアップロードできるわけです。

 

最後に

Unityでの軽量化や小さなテクニックなどなど、たくさんあるとは思いますが、ひとまずVRChat向けアバター・アクセサリーデータをBOOTHで販売・配布向けデータにするところまで書きました。

軽量化や小テクについて、これいいよっていうのがあったらコメントで教えてください。

 

 

Affinity DesignerからクリスタやSAIで開けるPSDを作成する

CLIP STUDIO PAINTことクリスタとSAIは8bitカラーまでしか対応していません。

なのでAffinity Designerのカラー設定をRGB/8に変更します。

 

ドキュメント設定→カラータブ

カラーフォーマットを「RGB/8」

f:id:tinsukou:20210209223233p:plain

 

PSD書き出しは「精度を維持」

f:id:tinsukou:20210209223236p:plain

 

「編集可能性を維持」だとレイヤー情報がうまく開けなかったようです。

 

頂点1つに対して法線をコピー&ペーストする

引き続きVRCのアバター作成ネタです。

頭と体のメッシュが分かれていたほうが、改造や着せ替えしやすいと聞きました。

ですがウチの子(デオ)は、デザイン上、頭から首、胴体にかけて滑らかです。

f:id:tinsukou:20201113130556p:plain

 

これを単純にVで分割し、メッシュ(オブジェクト)を分けると首と頭の間に線が入ってしまいます。

f:id:tinsukou:20201113130701p:plain

続きを読む

VRChat アイトラッキングが動かなかった話

VRC用のアバター制作を始めたのですが、わからないことがあったらVRCの中の人に聞いたり、Twitterで検索したりと情報を見つけるのが今までとは違った感じです。

 

今回はVRChatでアイトラッキングが動かないことについて。

続きを読む

Oculus Questのカウンターウェイト自作ポーチ

Oculus Quest民は後頭部に塩をつける風習があるということで、自分も塩を入れるためのポーチを自作しました。

以下リンクは参考にさせていただいたアタックさんの制作記です。

 

いやあ、ほんと思ってたよりQuestバランス悪いし、ベルトもベルクロ方式なのでほっぺが痛いんですよね。

 

続きを読む