Onoty3D

Unityに関するメモとか

メッシュの頂点を動かして、プロ生ちゃんの舌を操作する

プロ生ちゃんの舌をスクリプトで動かせるようにしてみました。


舌ネタは以前にもやりました。
onoty3d.hatenablog.com
この投稿では、ニコニ立体ちゃんの舌を拝借してプロ生ちゃんに舌を足しました。
また、以下の投稿で公開したスクリプトを使えば、ニコニ立体ちゃんの舌でなくても、プロ生ちゃん自身の舌を切り出して利用することができます。
onoty3d.hatenablog.com

しかし今回はメッシュの舌部分の頂点を移動させることで制御してみました。
(はじめはシェーダでの擬似的な頂点移動も考えましたが、その場合自分が使いたいシェーダ毎に実装する必要があるため面倒になった。)

Unity Editor上で表情なんかを楽しむ分には問題ないはずです。
UnityPackageはこちら。(ソースは末尾。)

TongueMorph

使い方

UnityPackageを任意のプロジェクトにインポートしたら、追加されるTongueMorphというスクリプトをプロ生ちゃんにセットしてください。
セットすると、インスペクタ上の表示はこのようになります。
f:id:onoty3d:20161021135110p:plain

TongueIndex

セットするモデルによって変更してください。
ノーマルモデル:21
Tシャツモデル:17
SDモデル:19
TongueIndexの値を間違うと、エラーになったり他の部位が動いたりするので気をつけてください。
なお実行中に値を変更しても効果はありません。

SkinnedMeshRenderer

プロ生ちゃんのSkinnedMeshRendererです。
基本的には実行時に勝手に見つけてきますが、プロ生ちゃん内部に他にSkinnedMeshRendererを持つオブジェクトを持たせたりしている場合は、手動で正しいSkinnedMeshRendererをセットしておいてください。

Width,MoveForward,MoveUp

Width:舌の幅を調整します。
MoveForward:舌を前方に移動させます。
MoveUp:舌を上方に移動させます。
f:id:onoty3d:20161021135209g:plain

VertucalRotationCenter,VertucalRotation

VertucalRotation:舌を縦方向に回転させます。
VertucalRotationCenter:縦方向回転の中心を移動させます。中心より先の部分だけが回転します。
0が舌の根元、1が舌の先端になります。
f:id:onoty3d:20161021135419g:plain

HorizontalRotation,Inclination

HorizontalRotation:舌を水平方向に回転させます。
Inclination:舌を傾斜させます。
f:id:onoty3d:20161021135457g:plain

以上を組み合わせて、いろいろな表情を作ってみてください。
f:id:onoty3d:20161021135553p:plain

ソース