VRChatで花火を打ち上げる
はじめに
VRChatで花火を打ち上げてる人がいて、 おもしろいなと思い、 自分でもやってみました。
UnityのParticle Systemで花火を作成し、 それをアバターに組み込みます。
スクリプトを書く必要がないので、 Unityに慣れていない人でも3時間程度あればできると思います。
あと、もっとちゃんとしたやり方があったりするかもしれないので、 一例として参考にしてください。
目次
環境
- Unity5.6.3p1(VRChatが推奨しているバージョン)
- Windows10
参考にした記事
以下の記事を参考にさせていただきました。
Particle Systemで花火を作成する方法について。
Particle Systemの設定項目について。
Particle Systemをアバターに組み込む方法について。
アバターにアニメーションを設定する方法について。
VRChatにアバターをアップロードする方法について。
花火の作成
ここでは、最低限の打ち上げ花火を作ってみます。 パラメータの設定をいじくるとかっこいい花火ができますが、 それは各々でやってみてください。
爆発する部分の作成
新規のプロジェクトを用意し、HierarchyでCreate->Create emptyで空のオブジェクトを作成します。
空のオブジェクトの名前は"Explosion"にしておきます(任意の名前でOK)。
ここでCtrl+Sを押す、またはFile->Save Scenesを選択して、Sceneをセーブしておきます。
名前は"Test"にします(任意でOK)。
HierarchyのExplosionをクリックして、InspectorからAdd Componentで、Effects->ParticleSystemを追加します。
すると、次の画像のように紫色の四角形がたくさん出てきます。
ExprosionのInspectorにあるParticle Systemをみると、設定項目がたくさんあるのが分かります。
この項目をクリックすると、さらに設定項目が出てきます。
"Renderer"の項目を開くと、MaterialがNone、つまり何も設定されていないので、 Materialの項目の右横にある二重丸みたいなやつをクリックして、Default-Particleを選択します。
すると、さっき紫色の四角形だったのが、光る球体に変わります。
"Shape"の項目を開き、ShapeをConeからSphereに変更します。
すると球状に飛び散るようになります。
次に"Explosion"の項目を以下のように設定します。
変更点は以下の通りです。
項目 | 変更後 | 内容 |
---|---|---|
Duration | 0.1 | Particle(粒子)が出力される期間 |
Looping | チェックを外す(false) | Exprosionを繰り返すか |
Start Lifetime | 2から3 | Particleが出力されてから消えるまでの時間 |
Start Speed | 2 | 出力時のParticleの速度 |
Simulation Space | World | 出力された後のParticleがどこに従うか |
"Start Lifetime"については、項目の右横にある三角マークをクリックして、 "Random Between Two Constants"を選択します。
また、デフォルトではParticleは白色に設定されていますが、 "Start Color"の項目で色を変更できます。
次に"Emission"の項目を開き、以下のように設定します。
"Bursts"の項目で"+"ボタンを押します。
そして、"Min"を100に変更します。
一度に100個のParticleが出力されます。
これで、Paticle EffectのSimulateボタンをおすと、球状に100個のPaticleが出力されます。
以上で爆発の部分が完成です。
打ちあがる部分の作成
花火の打ちあがる部分(爆発するまでの「ピューーー」)を作成します。
同じように、HierarchyでCreate->Create Emptyを選択し、空のオブジェクトを作成します。
名前は「打ち上げる」という意味を込めて"Launch"と名付けます(名前は任意でOK)。
さらに、同じようにLaunchにAdd ComponentでParticle Systemを追加します。
まず、"Explosion"の時と同じように、"Renderer"の項目で"Material"にDefault-Particleを設定します。
次に"Launch"を次のように設定します。
変更する項目は"Explosion"と同じです。
項目 | 変更後 |
---|---|
Duration | 0.1 |
Looping | チェックを入れるとたくさん、外すと一つだけ打ちあがる |
Start Lifetime | 3から4 |
Start Speed | 2から4 |
Simulation Space | World |
次に、"Emission"を以下のように設定します。
"Bursts"の項目で"+"ボタンを押し、"Min"と"Max"を1にします。
次は"Launch"の"Transform"を変更します。
画像のように、"Rotation"の"X"に-90を入れます。
これはX軸で-90度回転させることを意味します。
その後、"Tails"にチェックを入れます。
そして、"Renderer"で"Tails Material"にDefault-Prticleを設定します。
以上で打ち上げる部分が完成です。
花火の仕上げ
現在、Hierarchyは以下の画像のようになっていると思います。
"Launch"のInspectorのParticle Systemで"Sub Emitters"にチェックを入れます。
そして、"Sub Emitters"に項目で"Birth"を"Death"に変更し、 そのとなりの"None"となっているところに"Explosion"を設定します。
すると、以下のようなウインドウが出てくると思うので"Yes, Reparent"を押します。
これで花火の完成です。
今行った設定により、"Launch"が起動し、設定した時間が経過して消えたとき、"Explosion"が起動するようになっています。
Hierarchyで"Launch"をクリックし、Scene画面内の"Particle Effect"のSimulateボタンを押すと花火が打ちあがることを確認してください。
また、Scene画面内で花火が画面外に行ってしまう場合は、Hierarchyの"Launch"をダブルクリックするとカメラがいい感じの場所に移動してくれます。
この画像では、"Launch"のLoopingのチェックを外しているので、花火は一つしか打ちあがりません。
花火をアバターへ組み込む
3Dモデルのインポート
作成した花火をアバターに組み込みます。
今回はUnity-Chan3Dモデルを使用させていただきます。
自分で3Dモデルを所持している場合はそちらをインポートしてください(ドラック&ドロップでできます)。
3Dモデルを持っていない場合はUnity-Chan3Dモデルを使用するといいと思います。 その場合は、ライセンスをしっかり守ってください。
Unity-Chan3Dモデルをダウンロードしたら、 Assets->Import Package->Custom PackageでUnity-Chanファイルを選択してインポートします。
花火をアバターへ組み込む
今回は花火をただ打ち上げることにします。
現在、Hierarchyは以下の画像のようになっていると思います。
"Launch"を3Dモデルにドラック&ドロップします。
すると、3Dモデルの中に"Launch"が入ります(入れ子の状態)。
これで花火が3Dモデルの一部になりました。
このアバターをVRChatにアップロードして花火を盛大に打ち上げて下さい。
この画像では3種類の花火を打ち上げています。
また、花火を打ち上げる場合は背景が暗いワールドを選択すると、 きれいに見えます。(この画像はSAKURA hirobaで撮りました)
補足1-アバターのアップロード方法
VRChatへアバターをアップロードする方法は以下の記事を参照してみてください。
補足2-花火作成について
今回作成した花火は最低限のものです。
よりかっこいい花火を作成したい場合は、試行錯誤したり、 検索して調べてみたり、してみてください。
また、花火以外のものも作れます。
おもしろいものをどんどん作って楽しんでいきましょう(私も色々作ってみます)。
(あんまりやりすぎると、処理が重くなってしまうかもしれないので注意。ほどほどに。)
補足3-花火の組み込み方
今回の組み込み方では常に花火が打ちあがり続けてしまいます。
HTC VIVE コントローラのボタンや、 アバターのモーションをトリガーとして、 花火を打ち上げたい場合は、アニメーションを設定する必要があります。(あとVRC Trigger)
また、花火を手から出したり、100m離れたところから出したりもできます。
以下の記事を参考にしてみてください。
おわりに
無事、VRChatで花火を打ち上げられました。
Particle Systemを利用すれば、花火以外にもいろいろ作れそうなので、チャレンジしたいです。
また記事書きます。
VRChat "You cannot edit your VRChat data while the Unity Application is running" の対処方法
はじめに
UnityからVRChat上へアバターをアップロードしようとしたところ、 "You cannot edit your VRChat data while the Unity Application is running."というメッセージが出て、 アップロードができませんでした。
このとき、Unityエディタ上ではアップロード作業以外何も行っていません。
はっきりとした原因は分かりませんが、 おそらくアバターに設定したアニメーションが良くなかったのではないかと思っています。
追記(2019/02/22)
この方のツイートによると一時停止ボタンを押すだけで回避できるようです。
以下のようなエラーがでてアバターをアップロードできないときの対処。
— Kuraki (@Kuraki_vrc) 2018年9月9日
図の □ の部分を押すと普段のアップロード画面が出る。
You cannot edit your VRChat data while the Unity Application is running pic.twitter.com/UPGN9bLQOY
とりあえずの解決策
私の場合、Unityのプロジェクトを作成しなおして、 VRChat SDKのインポートや、アバターの設定を始めからやり直したところ、 無事にアップロードできました。
この問題が起こったときの対処方法として、
- まず、アニメーションを付けていないアバターがアップロードできるか確認
- 次に、アニメーションを付けてみてもう一度アップロードできるか確認
するのが良いのではないかと思っています。
どうしようもなくなったら、プロジェクトを作り直すところからやり直した方がいいと思います。
はてなブログで記事のカテゴリを削除
はじめに
はてなブログで一度追加したカテゴリの削除のやり方を書いておきます。
カテゴリの追加は「記事の管理」で簡単にできるのに、 なぜか削除はできない(たぶん)。
方法
カテゴリの削除をしたい記事の編集画面にいきます。
右にあるサイドバーの項目に「カテゴリ」があります。
そこですでに追加してあるカテゴリが表示されているので、「×」を押すと削除されます。
ちなみに、カテゴリの追加も行えます。
以上です。
Unity と GitHub プロジェクトの管理
はじめに
UnityのプロジェクトをGitHubで管理する方法を簡単にまとめます。
あと、GitHubに公開されているUnityプロジェクトをダウンロードして自分の環境で開く方法も書いておきます。
環境
- Windows10 (Macはターミナルを利用)
- Unityのバージョンは任意
前提条件
以下のことがすでに済んでいることを前提にしています。
- Unityのインストール
- GitHubアカウントの作成
- Gitの基本的な操作の習得
GitHub Desktop をインストール
Windowsでは GitHub Desktop を利用すると簡単です
GitHub Desktop から push
GitHub Desktop の File > Add local Reposity から GitHub にあげたい Unity プロジェクトを選択
- リポジトリの名前を入力
- README作成にチェック
- gitignore は 「Unity」を選択
- Lisenceを選択
.gitignoreについて
以下を参照。ありがたい。
GitHubへpush
GitHub Desktop、またはコマンドを利用してcommit、GitHubへpushします。
以上までがとりあえずのGitHubでの管理方法です。
あとは、適宜pullしたり、branchを切り替えたりします。
GitHubからダウンロードしたUnityプロジェクト
GitHubからzipファイルでダウンロードしたり、 cloneしたりで手に入れたUnityプロジェクトを開きます。
Unityのメニュー画面で(プロジェクトを選択する画面)、 openボタンを押すと、ディレクトリを選択できます。
そこで開きたいUnityプロジェクトを選択します。
以上です。
シェルコマンドでファイルの文字数をカウント
はじめに
bashのコマンドでテキストファイルの文字数をカウント。
とりあえずできただけのものなので、 もっといい方法があれば教えてください。
ファイルの文字をカウント
自分が書いている日記(markdown形式)の文字数をカウント
以下のようなテキストファイル(file)
### 08/06/2018 --- あいうえおかきくけこ。 さしすせそ、たちつてと。 なに、ぬねの。 はひふへほまみむめも。
上から2行(日付と罫線)とスペース、改行を除いた文字をカウント。
cat file | awk 'NR>2{print}' | sed 's/ //g' | tr -d ' ' | tr -d '\n' | wc -m
説明
cat file
: ファイルの中身を出力
awk 'NR>2{print}'
: 3行目以上を出力(2行目までを削除)
sed 's/ //g'
: 全角スペースを削除
tr -d ' '
: 半角スペースを削除
tr -d '\n'
: 改行を削除
wc -m
: 文字数をカウント
Windows10でデスクトップ画面が頻繁に再描写される問題(解決)
問題
突然、Windows10でデスクトップ画面が頻繁に再描写され(30秒に1回くらい)、 パソコンの操作に支障が出た。
解決した方法
デスクトップに置いていたBlenderで作成したファイルを削除し、パソコンを再起動。 (Blenderは3Dモデル作成ソフト)
原因(おそらく)
特に検証をした訳ではないため、あくまで仮説です。正直、あまり自信はないです。
Windows10では、定期的にデスクトップ画面が再描写されている。 その再描写は、基本的には一瞬で終わる。 (人間が気にならないくらい早く。)
セキュリティソフトをインストールしている場合、 デスクトップ画面の再描写時に、 デスクトップに存在しているファイルをチェックしている可能性がある。
デスクトップに一般的ではないファイルを置いていた場合、 そのファイルのチェックに時間がかかり、 その結果、再描写に時間がかかった。
Vuforia の World Center Mode について
はじめに
今回は Vuforia の World Center Mode について書きます。
環境
- Unity2018.1.6f1
- Vuforia7.1.35
World Center Mode について
ARCamera の Vuforia Behaviour に World Center Mode の項目がある。
World Center Mode には4つの選択肢があります。
- SPECIFIC_TARGET
- FIRST_TARGET
- CAMERA
- DEVICE_TRACKING
SPECIFIC TARGET について
自分が選択した Image_target をワールド座標系の原点にできます。
FIRST TARGET について
アプリを起動して一番最初に見つけたマーカをワールド座標系の原点にできます。
CAMERA について
常に ARCamera がワールド座標系の原点になります。
DEVICE TRACKING について
アプリ起動時のデバイスの位置姿勢がワールド座標系の原点になります。
その後デバイスを移動や回転をさせても、オブジェクトの位置や姿勢は動きません。
詳しくは以下を参照してください。