0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VRCアバターへの飛行機能、飛行時アイテム、これらスイッチの実装

Posted at

目的・注意

コライダージャンプ(飛行機能)の実装

まずは飛行機能を実装します。

No 説明 参考画像
1 Create Emptyを実行 q1.png
2 GameObjectの名前をJumpColliderに変更 q.png
3 JumpColliderのInspectorより「Add Component」を実行、boxを検索して「Box Collider」を追加 q2.png

以上で、飛行機能の実装完了です。
アバターをアップロードして動作確認しましょう。
ジャンプ連打で飛べば成功です。

アイテムの追加

足元にアイテムを追加することによって浮いている雰囲気に説得力を持たせます。
アイテムは、後で機能と同時にON/OFFするために1つのオブジェクトにまとめます。

No 説明 参考画像
4 No1・2と同じ手順で、Create Empty→名前をJumpObjectに変更 q3.png
5 JumpColliderをJumpObjectの中にドラッグ&ドロップ q4.png
6 肉球クッション等使いたいアイテムをDLしてunitypackageをImport
7 Assets/肉球/FBX内の肉球をJumpObjectの中にドラッグ&ドロップAssets/肉球内の肉球は椅子判定があるマップ用アイテムなので今回は使わない q5.png
8 Assets/肉球/Matelialの1,2をScene上肉球の適切な場所にドラッグ&ドロップしてマテリアルを適応 q6.png
9 好みに応じて肉球のInspectorを変更して角度や座標を変更する q7.png

以上で、アイテムの実装完了です。
アバターをアップロードして動作確認しましょう。
※初回はAutoFixが要求されるので実行してください。
ジャンプ連打で空を飛び、アイテムが足元についてくれば成功です。

スイッチの実装

ここまででアイテムに乗って飛ぶことができますが、機能が常時ONで割と不便です。
ON/OFFを実装していきます。
Radial InventryでJumpObjectをON/OFFすればいいだけなのですが、私の宗教上の理由によりAnimation実装の方法で解説します!

スイッチ用アニメーションの作成

No 説明 参考画像
10 JumpObjectのInspectorのチェックを外し、非表示にする手順の目的:通常は飛行機能はいらないので、OFFにしておく。ObjectをON/OFFすればアイテムとコライダーが同時にON/OFFされる。 q16.png
11 Hierarchyよりアバターを右クリックし、Duplicateを実行する。すると「flatver.1.01 (1)」というアバターができる。 手順の目的:Animationを作る際コントローラをアバターに紐づけする必要があり、アバターが汚れるので、作業用に複製する。 q9.png
12 Assets/Flat/Animの何もないところを右クリックし、Create, Animationをクリック q10.png
13 作成したAnimationの名前をJumpSWにする q11.png
14 No11で作成した「flatver.1.01 (1)」にJumpSWをドラッグ&ドロップ 実行すると自動でアニメーションコントローラというものが作成されて(1)に関連付けされる。これをしないとアニメーションの編集ができない。 q12.png
15 JumpSWをダブルクリックしてAnimationウィンドウを開く環境によってはタブ化されています。操作は同じ q13.png
16 HierarchyよりNo11で作成した「flatver.1.01 (1)」をクリック これをするとAnimationの録画ボタンがグレーアウトされていたところ、カラーになります。後の手順でまたグレーアウトして困ったら再度これ実施の事 a14.png
17 No15で開いたAnimationウィンドウで「JumpSW」が選択されていることを確認したら、赤丸のボタンを押す。もともとのアバターに別のアニメーションが組み込み済みだと違うかもしれないので、その場合はJumpSWを選択。 q15.png
18 「flatver.1.01 (1)」のJumpObjectのInspectorにおいて表示のチェックを入れるなお間違えて元のアバターに触ると赤丸がグレーアウトするのでチェックを戻したりしつつNo16からやり直し q18.png
19 Animationウィンドウの赤丸を押して操作記録を終了する。 a19.png
20 Inspectorより(1)のアバターを削除 a20.png

以上で、「実行するとJumpObjectを有効にする」Animationを作りました。
まだこれを実行する方法がないので、作っていきます。
まずは、呼び出すためのUIと関連付けの変数を作ります。

アニメーション呼び出しの為のExpressionMenu, Parametorの作成

No 説明 参考画像
21 アバターのInspector内Expressionより、Parametersをダブルクリック a22.png
22 Addを押してパラメータを追加、Nameを「fly」、Typeを「Bool」、Savedを「空欄」に設定 空欄にしておくと、ワールド移動等のさい自動解除されます a23.png
23 アバターのInspector内Expressionより、Menuをダブルクリック a24.png
24 Add Controlを実行→作成されたNew Controlをクリック a25.png
25 Nameをfly, TypeをToggle, Parameterをfly,Boolに設定 NameとIconはなんでもOK a26.png

以上で、ExpressionMenuに「fly」というメニューを追加し、クリックすると「fly」というパラメータがtrue,falseを交互に移り変わるUIを作りました(ここまでアバターアップロードして確認することもできます)。
ただこのパラメータとAnimationの紐づけをしていないので、現状押しても何も起きません。
最後にFXを設定してこのパラメータとAnimationの紐づけをしていきます。

FXの設定によるExpressionParametorとAnimationの紐づけ

No 説明 参考画像
26 アバターのInspector内Playable Layersより、FXをダブルクリック a27.png
27 Animatorが表示されるので、Parametersをクリック a28.png
28 +ボタンを押して、Boolをクリック a29.png
29 追加したParameterの名前をflyに変更 No22で作成したParameterのName,Typeと厳密に一致する必要がある a30.png
30 Layersをクリック a31.png
31 +ボタンを押して作成、名前をflyに変更 この名前はなんでもいい a32.png
32 flyの歯車マークを押して、Weightを1に設定 過去に何人のVRC民がやり忘れたんだろう・・? image.png
33 Animatorの格子柄部分の空白を右クリック、Create State→Empty image.png
34 No33をもう一度実施 image.png
35 No34で作ったものを左クリックしてInspectorを表示する。 image.png
36 名称をONに変更、MotionをJumpSWに変更 ONという状態になったら、JumpSWというAnimationを実行する、という指定 image.png
37 No33で作ったものを左クリックしてInspectorを表示、名称をOFFに変更 image.png
38 OFFを右クリックしてMake Trandition image.png
39 ONを左クリックすると矢印でつながる image.png 
40 No.38,39同様にしてONからExitに矢印を繋げる image.png 
41 OFFからONの矢印をクリックしてInspectorを表示 image.png
42 HasExitTimeのチェックを外し、下の+を押してConditionsを追加する。追加したConditionはflyをtrueに設定する flyがtrueになったら(ボタンを押したら)ONという状態にする、という設定 image.png
43 No41,42同様にしてONからExitのInspectorをflyをfalseに設定 flyがfalseになったら(もういちどボタンを押したら)Exitという状態にする、という設定(このとき自動でNew State(この場合OFF)に戻る) image.png

これで完成です!お疲れさまでした!
アバターをアップロードして動作確認しましょう。

  • 普段は何もアイテムがなくて、飛ぶこともできない
  • ExpressionMenuを開くとflyというメニューがあり、押すと足元にアイテムが出てくる
  • その状態でジャンプ連打すると飛ぶことができる

これがうまく動けば、成功です!

うまく動かなかった場合…

  • 間違いなくアップロードに成功しているか確認(体の色を変えてみる等)
  • アバターが対応しているか確認
    • スケール0.83(標準サイズ)のフラットくんであること
    • スケールシステム等で一時的なものを含みアバターのサイズ変更をしていないこと
  • DEBUG機能を開いて確認
    1. 緑色のメニューを開く
    2. Optionsを開く
    3. Configを開く
    4. Debugを開く(VRモードの場合アバターにめり込んで開いたりします。Grabして移動可能)
    5. Expressionのflyに矢印がないとき次の通りであること
      image.png
    6. Expressionのflyに矢印があるとき次の通りであること
      image.png

VRモードの方向け・・・DEBUGを開いた後なんか閉じれなくなった上にExpressionMenuが動かなくなった!!?!という場合

この記事とは直接関係ないけれど、DEBUGを初めて使った時にあるあるの困りごとについて…

  • ExpressionMenuは「選択するだけで動くモード」と「選択してからその手でトリガーを引くと動く」モードがあって、後者のモードに入ってしまったと思われます
    1. 緑色のメニューを開く (現状で表示されていて、Flick Selectというメニューが見えていれば最後まで飛ばしてください)
    2. Optionsをスティックで選択して、トリガーを押してOptionsに入る
    3. 同様にして、Configを開く
    4. メニュー一番下のFlick Selectをスティックで選択して、トリガーを押す
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?