tanaka's Programming Memo

プログラミングについてのメモ。

macのLaravelを5.xから最新版にアップデートする

PHPなどに問題がなければ、以下でいけました。

  • laravelをインストールした.composerフォルダーを開く
  • 以下を実行
composer global require laravel/installer
composer update

これでうまくいかない場合は、以下も参照。

brewあたりから更新

かなり苦戦したので、ざっくりやったこと。

brew update
brew upgrade
rm /usr/local/etc/php/7.1/conf.d/*
brew untap homebrew/php
atom ~/.composer/composer.json

Atomが開いたら、phpunitを以下に修正。

        "phpunit/phpunit": "~7.0",

以上で上書き保存してから、以下実行。

composer global update

以下で、利用できるphpを調べる。

brew search php

7.2を使うなら、

brew install php@7.2

これをリンクします。

brew link php72 --force

以下を実行して、パスを設定します。

echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.2/sbin:$PATH"' >> ~/.bash_profile

ターミナルを再起動します。

valetのを再インストールします。

valet stop
valet uninstall
composer global require laravel/valet
valet install
valet restart

以上で、動きました。どのあたりが決めてかはわからず、余計な物もあるかもしれませんが、ひとまずコマンドのメモということで。

参考URL

ラズパイ4の電源不安定

これまで問題なく動いていたラズパイ4が急に起動しなくなりました。TVにつなげるとリカバリーモードまでは行けるのですが、その先で画面が表示されずターミナルによる接続もできません。起動の際に雷マークが表示されたため、電圧不足であることが分かりました。雷マークについては以下のようなものです。

raspi.maruzonet.com

どうやらUSBケーブルによる電圧降下があって、推奨されている5V 3Aきっちりの電源だと電圧が足りなくなってしまうようです。参考↓

jsdkk.com

今調べると、ラズパイ4用の電源は殆どが5.1Vなのですね。アマゾンで5.1V 3Aのラズパイ4用とあったケーブルを購入して無事に解決しました。私が購入したものは品切れで紹介できないのですが、スイッチサイエンスさんの以下のやつとかは確実そうです。

www.switch-science.com

まとめ

比較的初期に千石電子さんでセットで購入したものに付属していた電源を使っていて、これまで問題なく使えていました。あれこれインストールしたからか、あるいは電源周りの汚れやらガタつきやらで状況が変わったからか、急に動かなくなったのが今回のきっかけでした。もし、同じように急に起動しなくなって、雷マークが表示されているようでしたら、電源を調べてみてください。

電源不足以外ですと、メモリカードの故障、TVモニターに映らなくなる、などが、ラズパイの突然起動しない問題の原因として挙げられていました。「ラズパイ 起動しない」などで検索して、自分の症状にあったものを見つけてみてください。

参考URL

BurstのBurstCompileがVisualStudioでエラー

Burstを触ってみようと思って以下のQuick Startを試してみました。

docs.unity3d.com

Unityでは動くものの、Visual Studio[BurstCompile(CompileSynchronously = true)]がエラーになる。

以下に「Visual StudioをUnity Game Packageから入れなおしたら直った」とありました。

https://forum.unity.com/threads/visual-studio-unity-mathematics-unity-burst-not-found.711215/

ということで、以下のことをごちゃごちゃやってたら直しました。

  • Visual Studio Installerを起動
  • Visual Studio Community 2019変更をクリック
  • Unityによるゲーム開発のチェックを外して、変更ボタンをクリックして、一旦Unityの拡張を解除
  • Unity Hubのインストールから、Unity2019.3.2モジュールの追加をクリックして、Microsoft Visual Studio Community 2019にチェックを入れて実行をクリック
  • インストールが完了したら、Visual Studio Installerに戻って、Unityによるゲーム開発にチェックを入れて、変更をクリック
  • Visual Studio Installerのトップに戻って、Visual Studio Community 2019詳細 > 修復をクリック
  • 修復が完了したら、指示に従ってPCを再起動

以上で直りました。どの段階で直ったか分からないので、やったこと全部書きました。

参考URL

eTrex30xの日本語化&OSMのインストール

長年愛用してきたeTrex20の電源スイッチが物理的に壊れまして、もう十分天寿を全うしたであろうという判断で無理には修理せず、eTrex30xを購入しました。新機種のeTrex22Xや32xが出たばかりですが、なにせ強烈に安かったもので。

英語版が2万円きってる!20より安いぐらいじゃん。コンパスを使ってみたいというのもありゲットしました。英語版なので、お約束の日本語化ですが、日本版のOSM地図は、ファームウェアのダウングレードではできなくなっていました!!

ということで、こちらのサイトにお世話になりました。あらかじめ目を通して内容が分かるか確認してください。バイナリエディターを使うので、よく分からない場合は素直に日本語対応版の購入を!!

diary.cyclekikou.net

メニューの日本語化はこちらのサイトにお世話になりました。

tom-brs.hatenablog.com

目次

はじめに

いざという時に備え、必ず元のファイルを全てPCにコピーしておくなどして、バックアップを取りましょう。ここから先は自己責任です。保証が欲しい場合は正規のルートで日本語版をご購入ください!!

バックアップ

eTrex30xの中身を全てバックアップしておきます(最初、手順を間違えて台湾版になって日本語化に失敗したので、すぐにバックアップが役に立ちました。バックアップ大切)。

  • eTrexに電池を入れて、電源は入れずにPCにUSBケーブルで接続します
  • しばらくすると接続されて、フォルダーを開けるようになります
  • Garmin eTrex 30xと表示されるドライブの中身を全て選択して、PCにコピーしておきます

ファームウェアを最新にする

ファームウェアを最新にしておきます。

メニュー画面が表示されたら完了です。

日本語化

続けて、nuvi200_TWN_v460の方です。

  • nuvi200_TWN_v460.exe の名前を nuvi200_TWN_v460.zipに変えます
    • exeファイルを実行して無理やり先に進めると台湾版になるので、zip展開するように!!
  • nuvi200_TWN_v460などのフォルダーを作成して、その中にnuvi200_TWN_v460.zipを展開します
  • 展開したフォルダーのnuvi200_TWN\Garmin\ExtDataを開いて、006-D1053-64.binの名前を006-D0952-06.binに変更します
  • 006-D0952-06.binを、eTrex\Garmin\ExtDataフォルダーに上書きコピーします

以上できたらeTrexをPCから外して電源を入れます。

言語選択でJapaneseを選択すれば、メニューが日本語に変わります。

日本語地図を入れる

日本語用の地図を入れます。

  • eTrexの電源を切ってから、PCにUSBで接続します
  • Downloads – OpenStreetMap for GARMIN を開きます
  • 等高線なしか、等高線ありの2種類あります。入れたい方の日本語のUTF8のをダウンロードします
  • ダウンロードしたZIPファイルを展開します
  • 展開したら、中のimgファイルを複製して、gmapsupp.orgなどの名前にしておきます
  • gmapsupp.imgバイナリエディターStiringで開きます
  • 検索・移動メニューから、置換を選択します
  • 以下で置換します
    • 検索データ E9 FD 13 00 04 80
    • データ種別 16進データ
    • 置換データ A4 03 13 00 04 80
    • データ種別 16進データ
    • 置換範囲 データ全体
    • 以上設定したら、一括置換をクリックします
  • かなりの箇所の置換が行われます。完了したら、上書き保存します
  • 作成したgmapsupp.imgファイルと、gmapsupp.orgファイルの2ファイルを、eTrex\Garminフォルダーにコピーします

コピーにはかなり時間がかかります。コピーが完了したら、eTrexをPCから外して、起動して地図を読み込みます。この段階では、地名はちゃんと表示されません。最後にファイルを元のに置き換えます。

  • eTrexの電源をオフ
  • eTrexをPCにUSB接続します
  • eTrex\Garminフォルダー内のgmapsupp.imgを削除します(拡張子を間違えないように!!)
  • gmapsupp.orgの名前を、gmapsupp.imgに変更します

以上で完了です。eTrexをPCから外して、電源を入れて確認してください。

まとめ

ファームウェアのダウングレードが駄目になっているのを知らず、全部やり直しました^^; 自己救済が難しい場合は、素直に日本語版を購入した方がよさそうです。この方法もいつ塞がれるか分かりませんし、この辺が並行輸入盤の値段が下がった理由かも知れませんね。

Open Street Mapの更新はなかなか早い感じなので有難いです。

参考URL

Raspberrypi4にWindowsで接続してLaravel開発

ラズパイ上のLaravelをWindowsから開発できるように設定した時の手順です。学校などで利用することを想定して、複数のユーザーを登録して、お互いのユーザーフォルダーやデータベースは参照したり書き換えができないような設定をしました。

Laravelの環境構築は以下にて。

am1tanaka.hatenablog.com

目次

想定の動作環境

LAN内で、ラズパイを固定IPで接続する前提です。

Windowsからラズパイに接続する

WindowsPuTTYをインストールして、PuTTYからラズパイにアクセスします。インストールについてはこの辺りをご覧ください。

www.atmarkit.co.jp

インストールしてPuTTYを起動したら、ラズパイのIPを入力して接続します。

LaravelのページをWindowsから表示する

Laravelの開発用サービスを開始するだけだと、ラズパイのIPのポートにアクセスしても接続できないようだったので、ngrokを使って一時的にグローバルIPでサービスを動かします。以下を参考にセットアップしました。

its-office.jp

  • こちらのページを開きます
  • Linux (ARM) をダウンロードして、適当なフォルダー(/usr/local/bin/など)に展開します
  • chmod 755 ngrokで実行権限を与えます

LaravelのWebページを表示する手順

使い方は以下の通りです。

  • ngrok http 8000でngrokを起動
  • もう一つPuTTYを起動してログイン
  • 以下で、Laravelを起動
cd blog
php artisan serve

以上で、一時的なURLが作成されてWindowsスマホなどからアクセスできるようになります。Forwarding欄に表示されているURLをコピーなどして開きます。

利用が終ったら、[Ctrl]+[C]キーでサービスを停止して、PuTTYを閉じます。

Linuxのユーザーを作成する

ユーザーを作成します。newusersコマンドで一括で作成できます。以下に詳しいので割愛します。

4thsight.xyz

ユーザーごとにsambaにログインできるようにする

プロジェクトの編集はWindowsで行いたいので、ユーザーごとにログインして、ユーザーフォルダーをWindowsと共有できるようにします。

sambaの設定

先に以下を設定して、少しだけ追加します。

am1tanaka.hatenablog.com

以下、設定の参考にしました。

http://www.samba.gr.jp/project/translation/current/htmldocs/manpages/smb.conf.5.html

  • sudo nano /etc/samba/smb.confで設定ファイルを開きます
  • [homes]以下の設定をします
    • read only = no
  • sudo service smbd restart で再起動して設定を反映させます

ユーザー作成

全体的な手順は以下を参考にしました。

www.virment.com

一括登録スクリプトは以下を参考にしました。

qiita.com

登録済みのユーザー名でSambaにユーザー登録するためのシェルスクリプトファイルを作ります。以下のようにしてパスワード入力させるようにして、pdbeditのユーザー登録コマンドに既存のユーザー名を並べていきます。ユーザー名は、あらかじめLinuxに登録したユーザーと同じにします。

echo -e "password1\npassword1" | sudo pdbedit -a -t -u foo_user1
echo -e "password2\npassword2" | sudo pdbedit -a -t -u foo_user2
echo -e "password3\npassword3" | sudo pdbedit -a -t -u foo_user3

保存時は、ASCIIフォーマットかUTF-8Nで、改行をLF Onlyにします。

(pdbeditの-aはユーザー登録、-tはstdinからのパスワード入力、-uはユーザー名を指定を表します。)

作成したら、他のユーザーから見えないようにパーミッション700にします。

sudo chmod 700 foo_user1

接続方法

エクスプローラーか、或いは「ここに入力して検索」欄に\\192.168.11.5のようにラズパイのIPを入力すると、ユーザー名とパスワードの入力ダイアログが表示されます。登録したユーザー名とパスワードでログインできます。

切断方法

Sambaでは他ユーザーから同時接続ができないようです。Windowsを再起動したり、電源を落とせば切断されますが、他のユーザーが接続したままだったり、何らかの原因で接続しっぱなしだった場合、以下で切断できます。

  • Windowsのスタートメニューからcmdと入力して、コマンドプロンプトを開く
  • net useで接続状態を確認
  • 特定のものを切断したい場合は、net use /delete <リモート名>
  • 全て切断してよければnet use /delete *

MariaDB用のユーザーの作成

アクセス用のユーザーと、ユーザー用のデータベースを作成します。これはPHPのコードで実行しました。

  • ホームディレクトリーの適当な場所で、makeusers.phpなどの名前でファイルを開きます
  • 以下のPHPプログラムをコピーペーストします
  • 3行目と5行目を、MySQLを操作できるユーザーとパスワードに書き換えます
  • 8行目以降の配列に、作成したいユーザー名とパスワードに書き換えます
    • ユーザー名は、あらかじめLinuxのユーザーとして登録されている必要があります
    • ユーザー名にはハイフンは使えません
  • 書き換え出来たら上書き保存します
  • ターミナルでphp makeusers.phpを実行すれば完了です

以上で、設定したユーザー名とパスワードでユーザーが作成され、ユーザー名と同じ名前のデータベースが作成されます。ここで作成するユーザーは、ユーザー名と同名のデータベースにしかアクセスできないようになります。

権限を変更したい場合は、GRANTの部分を変更してください。

まとめ

Sambaのファイル共有でユーザーのホームディレクトリーに接続することで、WindowsからAtomエディターやらVS Codeなどでラズパイ上のファイルの操作、編集ができるようになります。

ngrokを起動しておくことで、Windowsをはじめ、スマホなどでもラズパイで作成中のWebページを表示することができます。

MySQL(MariaDB)のユーザーを作ったので、一つのラズパイを共有しつつ、他の人のファイルを覗いたりできない状況で開発を進めることができます。これは学校などでの利用を想定した設定です。1つのDBを共有するなら、それ用の権限を与えたユーザーを作ってアクセスします。

完成したサービスはXFreeあたりで公開を検討しています。Herokuだとクレジットカードが必要みたいなので。その辺りができたらまたブログに書きます。

参考URL

Raspberrypi4にLaravelの環境を構築する

ラズパイ4を入手したので、Laravelの開発ができるように環境構築してみました。その時のメモです。

目次

構築する環境

Laravelのインストールは、WindowsLinuxならHomestead、macならValetを推奨しています。しかし、Homesteadを使うにはVirtualBoxなどの仮想マシンのインストールが必要です。ラズパイでは荷が重そうなので、手動で環境を設定することにしました。

phpenvとphp-builderをインストールする

Laravelの公式ページではComposerの操作から書かれています。Composerを使うにはPHPが必要です。せっかくなので、PHPのバージョンを切り替えられるようにphpenvとphp-buildの環境を構築します。ラズパイにpiアカウントでログインしたらターミナルを起動して、以下を実行します。

sudo apt-get update
sudo apt-get upgrade

ここで、依存がどうのこうのというエラーが出たら、以下を試したら解決しました。

update / upgrade fails on older Raspian Installation - Raspberry Pi Forums

sudo apt full-upgrade
sudo apt dist-upgrade
sudo apt autoremove

以下を参考に、ビルドに必要そうなものを入れていきます。

Raspberry Pi 2 に Raspbian を入れた時にやっておいた方が良いことをまとめた - しばやん雑記

gitはあるので、以下ぐらいで。

sudo apt-get install autoconf libtool automake build-essential libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libreadline-dev libtidy-dev libxsltl-dev

re2cをインストールする

$ autoreconf -i -W all
$ mkdir /usr/local/bin/re2c
$ ./configure --prefix=/usr/local/bin/re2c
$ make
$ make install

最後に、.bash_profileファイルに以下を追加してre2cにパスを通します。

export PATH="/usr/local/bin/re2c/bin:$PATH"

phpenvをインストールする

phpenv-installerはエラーでうまくいかなかったので、手動でgitリポジトリーをクローンして構築しました。

github.com

今回、他のユーザーも使えるように/usr/local/bin/phpenv以下にクローンしました。

  • ドキュメントに従ってrootの.bash_profileに対して、パスとphpenv initを追加
  • exec $SHELL -lでシェルをリスタートしました

次に、/usr/local/bin/phpenv/plugins/php-build以下に、php-buildをクローンします。

github.com

クローンしたら、php-buildフォルダー内のinstall.shを実行します。

./install.sh

実行できなければ、sudo chmod 755 install.shで権限を与えます。

これで、phpenv installが利用できるようになります。phpenvが実行できない場合は、source ~/.bash_profileを実行します。

PHPのインストール

以下のコマンドでインストール可能なPHPのバージョンを調べます。

phpenv install --list

7.2以降をインストールします。7.2.26の場合、以下の通り。

phpenv install 7.2.26

ビルドには1時間弱かかりました。

The Log File is not empty,という表示が表示され、ログファイルを確認するか、--verboseスイッチをつけてリビルドするように表示されますが、ビルド自体は成功していました(今のところこの設定でそのまま使っていますが、あれこれ警告が出たのでインストール時に--with-libzipをつけた方がいいかも。)

以下で、PHPを全ユーザーから見れるようにします。

phpenv global 7.2.26

Composerをインストールする

getcomposer.org

今回はグローバルで使いたいので、composer.pharをダウンロードしたら、/usr/local/bin/composerにリネームして配置します。

curl -sS http://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

以上でComposerが利用できるようになります。これでようやくLaravelをインストールできます。

Laravelをインストールする

以下に従ってインストールします。

laravel.com

composer global require laravel/installer
  • sudo nano /etc/profileで共有プロファイルを開きます
  • 以下を最後に追加します
export PATH="/home/pi/.phpenv/shims:$PATH"
export PATH="/home/pi/.config/composer/vendor/bin:$PATH"
  • source /etc/profileを実行して、更新を反映させます

以上で、Laravelへのパスが通ります。

試す

一般ユーザーでログインして、以下を実行します。

laravel new blog

サンプルブログの生成が完了したら、以下でサービスを開始します。

cd blog
php artisan serve

サービスが開始したら、URLが表示されるので、ブラウザを起動してアクセスします。うまくいけば、Laravelのページが表示されます。

f:id:am1tanaka:20200215230725p:plain
Laravelのサンプルブログページ

少し変更してみる

ちゃんと変更できるか表示内容を変えてみます。

cd ~/blog
nano resources/views/welcome.blade.php

これで、ウェルカムページを構築するためのVueのテンプレートページが開きます。84行目付近に表題のLaravelとある行があるので、そこを適当に変更してみましょう。

f:id:am1tanaka:20200215230933p:plain
welcome.blade.php

  • 変更したら、上書き保存をして先ほど表示したらWebブラウザーをリロードします。すると、変更した通りに表題が変更されるはずです。

f:id:am1tanaka:20200215231114p:plain
変更されたか試す

MySQL(MariaDB)をインストール

Laravelを使うならデータベースも使うでしょう。ラズパイではMySQLから派生したMariaDBがよく使われているそうなので、そちらをインストールします。なお、使い方はMySQLと同じです。参考資料は以下の通り。

www.ossnews.jp

手順は以下を参考にしました。

nort-wmli.blogspot.com

  • 端末を開いて、以下でインストールします
sudo apt install maria-client maria-server
sudo systemctl restart mariadb

これでインストールは完了ですが、そのままだとsudo抜きでは接続できません。これを修正します。

  • DBに接続します
sudo mysql -u root
USE mysql;
UPDATE user SET plugin='' WHERE User='root';
exit;

設定ができたらDBを以下でリスタートして、sudo抜きで接続を確認します。

sudo systemctl restart mysql
mysql -u root

うまく接続できればOKです。exit;MySQLから退出します。続けて、セキュリティ設定をします。

  • ターミナルでmysql_secure_installationを実行します

rootのパスワードの設定をして、あとはそのままyesで進めれば完了です。

MySQL用のユーザーを作成

rootで操作するのも嫌なので、MySQLを操作するユーザーを作成しておきます。

  • mysql -u root -pでパスワードを入力してログインします
  • ユーザー登録をします。以下は、ユーザー名hoge、パスワードpiyoの場合の書き方です。適宜、変更してください
CREATE USER 'hoge'@'%' IDENTIFIED BY 'piyo';

以上で、最低限の準備は完了です。あとは、データベースを作成したり、作成したユーザーに権限を与えれば、PHPやLaravelから作成したユーザーでログインして作業をすることができます。

閉じる

MariaDB(MySQL)のクライアントから出るには、exit;と入力します。

Laravelを停止するには、php artisan serveしたターミナルで[Ctrl]+[C]キーを押して、サービスを停止します。あとはターミナルなどを閉じてOKです。

まとめ

以上で環境構築完了です。

  • phpenvとphp-builderのインストール
  • phpをビルドする環境のインストール
  • phpのインストールとグローバル設定
  • composerのインストール
  • laravelのインストールと環境設定
  • サンプルblogプロジェクトを作成して、表示と編集確認

調べながらだったので結構時間がかかりましたが、手順通りなら2時間ぐらいで設定できると思います。1万円ぐらいのPCで開発環境が作れるのは面白いです。実際には、このラズパイにユーザーを作って、そのユーザーがWindowsからラズパイに接続してLaravelの開発ができる環境を作りました。それは別のブログにまとめます。以下、Windowsとの連携のための設定ブログです(2020/2/16追記)。

am1tanaka.hatenablog.com

参考URL

CRI ADX2 LEを使ってみる(音が鳴らない時の対処を追加)

f:id:am1tanaka:20200116181208p:plain

Unityで音関連を制御するとなると、必ず名前が挙がるのがCRIWAREさんのADX2 LEです。これまでなかなか開拓する機会がなかったのですが、学校で音ゲーを作っているTさんが使い始めたということで便乗して使ってみることにしました。音を鳴らすまでにやったことのメモです。

game.criware.jp

基本はチュートリアルでできるのですが、ちょくちょく話が前後したり、別の場所に書いてある情報などがあったのをまとめた記事です。

目次

情報源

game.criware.jp

こちらの公式のチュートリアルにて。

ADX2LEを利用する前提

無償版だとWebGLで使えません!!unityroomなど向けの場合はお気をつけください。以下、通常版の手順が紹介されていました。

unityroomでADX2を使う - Qiita

無償で利用できる範囲を『CRI ADX2 LE』に関するユーザー使用許諾契約書 – CRIWARE for Games第3条 (別途使用許諾契約が必要な場合)で確認しておきます。以下、2020/1/16時点での抜粋です。更新される可能性があるので、利用時にはちゃんと本家で確認してください。

  1. 前年の年商が1,000万円を超える企業、団体が対象コンテンツの配信をする場合。
  2. 前項に該当する企業、団体の、関連会社及び子会社が対象コンテンツの配信をする場合。
  3. パブリッシャーまたはエージェントを介して対象コンテンツの配信をする場合。
  4. 対象コンテンツの配信による累計売上額(広告、アプリ内課金、サブスクリプションモデルの売上を含む)が1,000万円を超えた場合。

また、第4条 (対象コンテンツの配信を行う場合)で、ADX2LEを組み込んだアプリを配信する際には、以下が条件になります。

  1. ロゴ表示または文書による本ソフトウェアの著作権表記。
  2. 対象コンテンツ使用者に対する禁止事項、著作権、免責ならびに権利事項の表記。

無償で利用する場合、これらの条件に合致していることと、ライセンス表記と各種注意事項の表記が必要です。ロゴ表示は、自動的にやってくれるものがアセットに組み込まれています。詳しくは、公式サイトに記載されています。

音を鳴らすまでの流れ

Unityで音を鳴らすまでの流れは以下に記載されています。

game.criware.jp

ここでのポイントは以下の通り。

  • 鳴らしたい音源データ(wavのみらしい)を、AtomCraftというツールを使って、ADX2用のデータ(キューシート)に変換します
  • Unityにインポートできるように指定をしてエクスポートします
  • Unityに、ADX2LEを指示に従ってインポートして、初期設定します
  • 作成したキューシートをUnityのプロジェクトに読み込みます
  • 必要に応じて、再生するためのスクリプトを書きます

必要なものをダウンロードする

game.criware.jp

このページのダウンロードをクリックして、規約に目を通したらダウンロードをクリックして開発ツールを入手します。ダウンロードしたzipファイルは、ドキュメント内のToolsフォルダーなどの中に展開します。展開すると、criという名前のフォルダーが作成されて、その中にAtomCraftやUnityのプラグインをはじめ、必要なものがすべて入っています。

扱えるデータ

mp3やoggからを直接インポートはできないっぽいです。使いたい音源がmp3やoggなどの場合、オンラインのフォーマット変換ツールを利用するか、Audacityなどであらかじめwavに変換しておきます。

「Audacity」無料の音声編集ソフト - 窓の杜

Audacityは無音部を切り取ったりできる便利ツールで重宝してます。

キューシートを作成する

Unityで作業を始める前に、AtomCraftを使って音源データを作成する必要があります。AtomCraftを起動します

  • criフォルダーから、tools > criatomex > win と辿っていくと、CriAtomCraftがあるので、起動します
  • スタートページが開いたら、新規作成をクリックして、新しくプロジェクトを作成します。名前はFirstADXなど
    • 場所は、特に必要がなければそのままでよいでしょう。ユーザーのドキュメント内にCRIWAREというフォルダーが作成されて、その中にプロジェクト用のデータが設置されます
  • ワークユニットの追加ウィンドウが表示されます。とりあえずそのまま追加してOKです
    • 注意。プロジェクトは名前などを内部で紐づけているようで、AtomCraft以外の環境で名前を変更したり、削除したり、移動すると予想外のことが発生するようです。AtomCraft上で操作するようにしてください

あとは、以下のチュートリアルに沿えばおおよそ大丈夫でした。

game.criware.jp

2点だけちょっと注意。

  • 3のボリュームの一括確認方法がわからなかった
  • 最後のエクスポート時、Unityで利用する場合は、Unity Assets出力へのチェックが必要

以上でビルドして、出力パスを開くをしておけばデータの生成は完了です。

Unityで音を鳴らす

Unityも公式チュートリアルを見ていきます。入門編の01と02はバージョンアップで少し楽になっていたので、以下でいけます。

  • 先にダウンロードして展開したcriフォルダーから、unity > pluginフォルダーを開くと、criware_unity_pluginがあるので、これをUnityのProjectウィンドウにD&Dするなどしてインポートします
  • Windowメニューから、CRIWARE > Open CRI Atom Windowを選択します
  • ウィンドウが起動したら、Use Copy Assets Folderにチェックを入れます
  • Select Assets Rootボタンをクリックして、AtomCraftでビルドした時に開いた出力パスから、プロジェクトフォルダー > Public > Assets フォルダーのパスをコピーして、Unityの方に設定します
  • Update Assets of "CRI Atom Craft"ボタンをクリックします

以上で、必要なキューシートデータが、UnityのプロジェクトのStreamingAssetsフォルダーにコピーされます。

ここからは入門編03に沿って作業します。

game.criware.jp

  • 音を鳴らしたいシーンや、システムシーンがあればそこに、指示に従ってGameObjectメニューからCriWareLibraryInitializerCriWareErrorHandlerを読み込みます
    • CriWareErrorHandlerは開発用なので、必須ではありません
  • 指示に従って、空のゲームオブジェクトを作成して、Cri Atomスクリプトをアタッチします
  • 出力したAtomCraftのキューシートデータのファイル名を設定していきます。例えば、効果音用のSeCueとBGM用のBgmCueを作成していたら、以下のような感じです

f:id:am1tanaka:20200116140219p:plain
Cri Atomの設定

効果音はすべてメモリにしたのでawbファイルはありません。よって空欄です。BGMは、いくつかのものをストリーミングにしたので、awbファイルも指定しています。

これらのファイル名は自力入力です。

音を鳴らす

入門編04に従って、音を鳴らしてみます。

game.criware.jp

  • 先ほど開いたCRI Atom Windowを閉じていたらもう一度Windowメニューから開きます
  • UnityのPlayを開始します(Playしないとうまく動きません!!)
  • Reload Infoボタンを押して情報を取得します

以上で情報が取得できたらOKです。Playを停止します。

シーンにBGMを設定する

鳴らしたいBGMをウィンドウから選択したら、Create GameObject ボタンをクリックすると、BGM再生用のゲームオブジェクトがシーンに生成されます。

ここで作成されたオブジェクトを見ると、音の鳴らし方が分かります。

ここまでできたら、あとはやりたいことをチュートリアルやマニュアルから探せばOKでしょう。

game.criware.jp

音が鳴らない時(2020/1/31追記)

以下のようなエラーが発生する場合があります。これは、ストリーミングで出力したキューシートをCIR Atomウィンドウで自動生成した時に発生します。

[CRIWARE] Warning:W2010053100:An AWB file [CueSheet_0.awb] is not attached to an ACB handle.

原因は、自動的に生成したCRIWAREオブジェクトのAWBファイルの設定が空欄のままというものでした。手動でAWBファイルを入力することで、音が鳴るようになりました。

f:id:am1tanaka:20200131170817p:plain
AWBファイル

ライセンス表示

無償版サウンドミドルウェアCRI ADX2 LE – CRIWARE for GamesADX2 LEを使ったアプリ・ゲームを配布する方へのあたりに、ライセンス表示の仕方や、UnityでADX2 LEのロゴを表示するためのサンプルがあります。便利!

まとめ

音データを作成して、鳴らすことができました。Unityのオーディオシステムが不要な場合は、以下をしておくとよさそうです。

  • ProjectSettingsのAudioで、Disable Unity Audioにチェックを入れると、Unityのオーディオを無効にできる

AtomCraftというツールを使ってwavからキューシートを生成することと、Unityにちょこちょこと初期化設定が必要ですが、1時間もあれば音を鳴らすまではいけると思います。ちょっと時間がある時にやっておくと良さそうです。

導入するだけで音周りの速度アップが期待できるのは大きいです。機能は大量にありますが、差し当たり以下のあたりを活用しようと思ってます。

  • 同じ音の最大音数の制限(効果音でこれはとてもありがたい)
  • いくつかの音のランダム再生(足音などで便利)
  • イントロを飛ばしたループの設定

Sofdec2を使えば動画もよしなに行けそう。もしかしたらVoxelorerBirdで難航していた部分もこれで解決できるかも?

WebGLが無償で使えないというのはありますが、スマホ版のアプリには早速導入してみようと思います!

参考URL