# NORANEKOSEVEN ONLINE MANUAL
###### tags: `onigashima` `NORANEKOSEVEN`
:::info
Version: 1.21
Unity: 2019.4.31f1
VRCSDK3.0: 2022.1.1
:::
### Booth
https://captainworkshop.booth.pm/items/2555967
### License
https://drive.google.com/drive/folders/1PPg3KK9NthocjNOSqpoWw4w_CAIfeXY-?usp=sharing
### Contact
https://twitter.com/onigashima_ooo
Mail: contact@mail.onigashima.ooo
### History
:::spoiler 更新履歴を表示
| Date | Version | About | Unity/SDK |
| -------- | -------- | -------- | -------- |
| 2020/12/23 | 1.00 | | Unity:2018.4.20f1 VRCSDK3.0:2020.12.09.04.45 |
| | 1.01 | GradationMapを適用したPsdファイルを追加 | |
| 2020/12/24 | 1.02 | ズボンの裏地が貫通してしまう問題を修正 |
| 2020/12/30 | 1.03 | フルトラッキング用のPrefabを追加 下着メッシュを調整 | |
| | 1.04 | 利用規約「(7)二次創作」追記項目のウェイトのコピーに関する表現を変更 | | |
| 2021/01/15 | 1.05 | インナーの法線を修正 胸のウェイトを左右対称に修正 | |
| 2021/08/30 | 1.10 | 顔の法線を調整 腕の長さを調整 フルトラ用Prefabを削除 体の調整用シェイプキーを追加 マテリアル調整 WriteDefaultsOffに対応 袖のConstraintを削除 利用規約を更新 | Unity:2019.4.29f1 VRCSDK3.0:2021.08.11.15.16 |
| 2021/08/31 | 1.11 | エディタ上で変更したマテリアルがVRChat内で反映されない不具合を修正 | |
| 2023/06/07 | 1.20 | 最新版SDKに更新 DynamicBoneをPhysBonesに変更 シェーダーをlilToonに変更 AnimatorController内の余分なパラメータを削除 袖ウェイトを調整 | Unity:2019.4.31f1 VRCSDK3.0:2022.1.1 |
| 2023/06/08 | 1.21 | 袖調整用のシェイプキーが他シェイプに合体していたのを分離 | |
:::
## モデルの確認や試着
### VRoid Hub
https://hub.vroid.com/characters/4945378445906717657
### VRChat
VRChat内に試着用のワールドを用意しています。
サンプルアバターのFavorite、ワールド外への持ち出し、及びクローンの許可は問題ありません。
https://vrchat.com/home/world/wrld_5f4964be-103d-4826-b7ed-23a6d0e72dfd
ワールドに設置されたペデスタルをインタラクト(デスクトップはクリック、VRではトリガー)してください。
アバターのExpressionsでは、髪とパーカーの色、衣装のオンオフを切り替えることができます。色味やプロポーションの確認にご利用ください。衣装をすべてオフにするとインナーのみの状態になりますので、外へ出歩く際はご注意ください。
## 内容物
- モデル本体(fbx)
- 各種テクスチャ(PNG/PSD)
- Blendファイル
- VRM
- UnityPackage
以下、各データの詳細です。
### UnityPackage
`NORANEKOSEVEN.unitypackage`に各種データをまとめています。
[VRChat公式ドキュメント](https://docs.vrchat.com/docs/setting-up-the-sdk)に則ってUnityプロジェクトをセットアップし、[lilToon](https://lilxyzw.github.io/lilToon/#/)をインポートした上で、こちらのパッケージをインポートしてください。
### メッシュ
Fbxが一種類用意されています。全体で`76,402三角面`です。


| Name | About | Triangle |
| -------- | -------- | -------- |
| Body | 顔 | 1,182 |
| Body_2 | 体 | 20,576 |
| Hair | 髪 | 7372 |
| KemoEar | けも耳 | 6,312 |
| Cap | 帽子 | 2,954 |
| Hoodie | パーカー | 8,198 |
| Inner | 下着 | 2,512 |
| Pants | ショートパンツ | 1,814 |
| Tights | タイツ | 2,924 |
| Socks | 靴下 | 540 |
| Shoes | 靴 | 11,086 |
| Tail | 尻尾 | 1,032 |
同梱されているFBXでは`12`のメッシュに分かれています。
メッシュ統合をされる場合は、[AvatarTools](https://booth.pm/ja/items/1564788)のご使用をおすすめします(こちらの環境では問題無く統合されることを確認しています)。
`Body`メッシュはカスタム法線マップが適用されています。
#### シェイプキー
:::spoiler 表情系シェイプキー
| Mesh | Name | About |
| -------- | -------- | -------- |
| 顔(Body) | dummy* | VRC用ダミー |
| | vrc.* | VRC用リップシンクなど |
| | eyebrow_Up | 眉を上げる |
| | eyebrow_Up.L | 眉を上げる(左のみ) |
| | eyebrow_Up.R | 眉を上げる(右のみ) |
| | eyebrow_Down | 眉を下げる |
| | eyebrow_Down.L | 眉を下げる(左のみ) |
| | eyebrow_Down.R | 眉を下げる(右のみ) |
| | eyebrow_Upward | 眉尻を下げる |
| | eyebrow_Upward.L | 眉尻を下げる(左のみ) |
| | eyebrow_Upward.R | 眉尻を下げる(右のみ) |
| | eyebrow_Downward | 眉頭を上げる |
| | eyebrow_Downward.L | 眉頭を上げる(左のみ) |
| | eyebrow_Downward.R | 眉頭を上げる(右のみ) |
| | eyelid_Blink | まばたき |
| | eyelid_Blink.L | まばたき(左のみ) |
| | eyelid_Blink.R | まばたき(右のみ) |
| | eyelid_Smile | 笑い目 |
| | eyelid_Smile.L | 笑い目(左のみ) |
| | eyelid_Smile.R | 笑い目(右のみ) |
| | eyelid_Zitome | ジト目 |
| | eyelid_Zitome.L | ジト目(左のみ) |
| | eyelid_Zitome.R | ジト目(右のみ) |
| | eye_Variant1 | 驚き目 |
| | eye_Tears | 涙を浮かべる |
| | eye_Shine | 瞳がキラキラする |
| | eye_Heart | 瞳にハートが出る |
| | eye_pupil_Contraction | 瞳が縮小 |
| | eye_pupil_Dilatation | 瞳が拡大 |
| | eye_pupil_Cat | 瞳がネコ |
| | eye_hightlight_Ignore | ハイライトが消える |
| | eye_Bigger | 目が大きくなる |
| | eye_Smaller | 目が小さくなる |
| | eye_Sanpaku | 目が瞳のみになる |
| | mouth_A | 「あ」の口 |
| | mouth_I1 | 「い」の口(歯無し) |
| | mouth_I2 | 「い」の口(歯有り) |
| | mouth_U1 | 「う」の口(丸い形) |
| | mouth_U2 | 「う」の口(すぼまるような形) |
| | mouth_E | 「え」の口 |
| | mouth_O | 「お」の口 |
| | mouth_Wa | 「わ」の口 |
| | mouth_ω | 「ω」の口 |
| | mouth_SmirkA.L | にやりと笑う(左寄り、歯無し) |
| | mouth_SmirkA.R | にやりと笑う(右寄り、歯無し) |
| | mouth_SmirkB.L | にやりと笑う(左寄り、歯有り) |
| | mouth_SmirkB.R | にやりと笑う(右寄り、歯有り) |
| | mouth_Anger | 怒った口 |
| | tooth_Ignore | 歯を消す |
| | tooth_ShortenCanines | キバを消す |
| | tooth_LengthenCanines | キバを長くする |
| | face_Cheek | 頬を染める |
| | face_Shadow | 青ざめる |
:::
:::spoiler 調節系シェイプキー
| Mesh | Name | About |
| -------- | -------- | -------- |
| 体(Body_1) | upperBody_Shrink | 胴体を縮める |
| | upperArm_Shrink | 上腕を縮める |
| | lowerArm_Shrink | 前腕を縮める |
| | Shrink_UpperLeg1 | ふとももを縮める |
| | Shrink_UpperLeg2 | ふとももの上を少し残して縮める |
| | Shrink_LowerLeg | ふくらはぎを縮める |
| | Shrink_Nee | ヒザを縮める |
| | Shrink_Foot | 足を縮める |
| | Shrink_Hips | 腰回りを縮める |
:::spoiler 洋服シェイプキー
| Mesh | Name | About |
| -------- | -------- | -------- |
| パーカー(Hoodie) | adjust_LiftingByTail | 尻尾による持ち上がりを打ち消す |
| | adjust_FlattenHood | フードをつぶす(バックを背負う時などに) |
| | adjust_ShortenSleeves | 袖を短くする |
:::
### Textures
**PNG**形式と**PSD**形式のテクスチャを同梱しています。PSDは部位ごとやロゴマークなどをレイヤーで分けています。
#### PNGテクスチャ
| Name | About |
| -------- | -------- |
| NS_Body.png | 肌ベースカラー |
| NS_Body_Emissive.png | 肌エミッション用 |
| NS_Body_AlphaMask.png | 肌アルファ抜き用 |
| NS_Body_OutlineMask.png | アウトラインマスク |
| NS_Body_RimLightMask.png | リムライトマスク |
| NS_Body_ShadowMask.png | 影の制御 |
| NS_FaceParts.png | 顔の透過素材(頬染めなど)ベースカラー |
| NS_FaceParts_Emissive.png | 顔の透過素材 |
| NS_Cap.png | 帽子ベースカラー |
| NS_Cap_Normal.png | 帽子ノーマルマップ |
| NS_Cap_HighcolorMask.png | 帽子ハイライトマスク(金属部分) |
| NS_Hair_Black.png | 髪ベースカラー(黒) |
| NS_Hair_Brown.png | 髪ベースカラー(茶) |
| NS_Hair_Silver.png | 髪ベースカラー(銀) |
| NS_Hair_White.png | 髪ベースカラー(白) |
| NS_Hoodie_Black.png | パーカーベースカラー(黒) |
| NS_Hoodie_White.png | パーカーベースカラー(白) |
| NS_Hoodie_Normal.png | パーカーノーマルマップ |
| NS_Inner.png | インナーベースカラー |
| NS_Pants.png | ショートパンツベースカラー |
| NS_Shoes.png | 靴ベースカラー |
| NS_Shoes_HighColorMask.png | 靴ハイライトマスク |
#### PSDテクスチャ
パーツやフィルター効果などを適度に分けています。`NS_Body`や`NS_Hair`などは内部で`GradationMap`を使用しています。色改変の際はご確認ください。
また、**PNGと比べて解像度が高く設定されています**。エクスポートする際はご注意ください。
PsdはCLIP STUDIO PAINTで出力しています。一部では内部に`Gradation Map`レイヤを含んでおり、CLIP STUDIO PAINT以外では読み込めないことを確認しました。CLIP STUDIO PAINT以外のソフトでファイルを開く際は、`_NoGradation`バージョンを使用してください。
### Materials

同梱されているマテリアルでは、[lilToon](https://lilxyzw.github.io/lilToon/#/)を使用しています。
### Animations
改変のために少し説明をしていますが、詳細は以下の公式リファレンスを参照してください。
https://docs.vrchat.com/docs/playable-layers
#### Face

`Face_`から始まるアニメーションは表情用です。**リップシンクとの干渉を避けるために、基本的に口のシェイプキーは入っていません**。本アバターでは、Avatar3.0の機能による干渉対策などは設定しておりません。シェイプキー自体は存在するので、カスタムやその際の干渉対策は各位よろしくお願いいたします。
表情は、`VRC Avatar Discriptor`内の`Playable Layers/Gesture`欄に割り当てられているAnimation Controllerの`NS_FaceFX`で指定しています。

`NS_FaceFX`は、プロジェクト内`Assets/ONIGAWARA INDUSTRY/NORANEKOSEVEN/Controllers`内にあります。

ファイルを選択すると、Animator WindowにControllerの設定が表示されます。

`Layers`の一覧に表示されている`RightHand Face`と`LeftHand Face`が左右のジェスチャーを行った際の表情を設定しているLayerです。

レイヤー内のStateのFist~Thumbs upまでのジェスチャーに表情アニメーションを割り当てています。ジェスチャー名のStateを選択すると、InspectorにそのStateの情報が表示されますので、`Motion`欄のアニメーションを入れ替えれば反映されます。

また、`Avatar Default`レイヤーにはアバターのデフォルト表情を割り当てています。
デフォルトの表情を変えたい際はこちらに割り当てられている`Face_Default`を編集するか、新しいアニメーションを割り当ててください。

#### Hand

`Hand_`から始まるアニメーションは手のジェスチャー用です。VRCにおける一般的な手の形が入っています。
`VRC Avatar Discriptor`内の`Playable Layers/Gesture`欄に割り当てられているAnimation Controllerの`NS_Gesture`で指定しています。

`NS_Gesture`は、プロジェクト内`Assets/ONIGAWARA INDUSTRY/NORANEKOSEVEN/Controllers`内にあります。

ファイルを選択すると、Animator WindowにControllerの設定が表示されます。

`Layers`の一覧に表示されている`Right Hand`と`Left Hand`が手のアニメーションを設定しているLayerです。

レイヤー内のStateのFist~Thumbs upまでのジェスチャーに手のアニメーションを割り当てています。ジェスチャー名のStateを選択すると、InspectorにそのStateの情報が表示されますので、`Motion`欄のアニメーションを入れ替えれば反映されます。

#### Other
※以下の説明に加えて、現在はWriteDefaultsOffに対応するためにFXレイヤーにも割り当てています。FXレイヤーで組む場合は恐らくGestureに入れる必要はありませんが、仕様変更で動かなくなる可能性を見越して一応FXとGestureの両方に入れています。

けも耳を動かすアニメーションが入っています。
耳のアニメーションは、上記の手のジェスチャーと同じ`NS_Gesture`で割り当てています。`Layers`の一覧に表示されている`RightHand Transform`と`LeftHand Transform`が耳のアニメーションを設定しているLayerです。

表情設定や手のジェスチャー設定と同様に、レイヤー内のStateのFist~Thumbs upまでのジェスチャーに耳のアニメーションを割り当てています。ジェスチャー名のStateを選択すると、InspectorにそのStateの情報が表示されますので、`Motion`欄のアニメーションを入れ替えれば反映されます。

### Prefab
#### カラーバリエーションPrefab

色違いのPrefabを用意しています。`NORANEKOSEVEN1`がオリジナル、その他は[Prefab Variants](https://docs.unity3d.com/ja/2018.4/Manual/PrefabVariants.html)になっています。`NORANEKOSEVEN1`に変更を加えてPrefabを更新するとその他のPrefabにも反映されます。独立させたい場合は`Unpack Prefab`を行い参照を切るか、オリジナルのPrefabとして生成し直してください。
また、こちらのPrefabでは`Dynamic Bone`による揺れ物設定が行われています。お持ちの方は予めプロジェクト内にインポートしてください。
### Controller

ジェスチャー、表情シェイプ、耳の揺れなどを制御しているコントローラーが入っています。
### VRM
Whiteバージョンのみ、VRMファイルを用意しています。こちらもライセンスの範囲内で自由にお使い頂けます。
## その他の仕様
### VRCSDK
最新版`1.20`でのSDKバージョンは`VRCSDK3.0: 2022.1.1`です。
**Avatar3.0**でセットアップされており、2.0用のPrefabなどは**同梱されていません**。
モデル自体に関しましては、2.0でセットアップすることも可能だと思われます(念のため、顔のメッシュの名前を`Body`としています)。
### 貫通対策
肌の貫通防止を**AlphaCutout**によって行っています。代替手段として、身体の各部位を縮めるブレンドシェイプ(末尾に`_Shrink`と付いています)を体のメッシュ`Body_1`に用意しています。
## Blender
`.Blend`ファイルを同梱しています。改変する際にご確認ください。
:::info
出力時のBlenderバージョンは**3.5.1**です。
:::
### About

各メッシュがコレクションに分けられている他、髪メッシュの分割されたバージョンが非表示で入っています。髪を改変される方は、こちらをご確認ください。

アウトライナー上に表示を切り替えるためのアイコンが存在しない場合は、アウトライナー右上の漏斗マークから`Restriction Toggles`を開き上部真ん中の画面アイコン`Disable in Viewports`を切り替えてください。
### TポーズとAポーズ

本モデルはAポーズで制作しております。Blender上ではTポーズを付けています。`Skeleton`の設定で`Pose Position`と`Rest Position`を変更することでTポーズとAポーズを切り替えられる他、`Pose Library`にTポーズを登録してあります。
### 回転値

すべてのオブジェクトに`x=90`の回転値が入っていますが、これはUnityへ読み込む際の回転値を打ち消すためのものです。回転を適用しても問題はありませんが、Unity上のモデルに上書きした場合は回転値の差分で`Hierarchy`上のモデルが傾いてしまうかもしれませんのでご注意ください。
### Export
`NORANEKOSEVEN.fbx`は以下の設定でエクスポートしています。上書きをする際はご確認ください。
