最近の記事

2020年11月22日

LinuxでのWindowsアプリ動作環境をPlayOnLinuxからSteamとWineの環境へ移行しました

Linux上でWindowsのアプリを動かすには、Wineと言うWindows APIレイヤーを使う事で対応していました。複数の環境をGUIで一元管理が出来るのがPlayOnLinuxというクライアントソフトです。
今までは、PlayOnLinuxでWindowsアプリを動作させていましたが、これをSteamと直接Wineで管理する方法に切り替える事にしました。Wineで動作させる際には、./local/usr/share/applicationsに.desktopファイルを用意して、lxpanelのアプリケーションメニューで選択するようにすると、Linuxアプリのように扱えて便利でした。
32bit環境でしか動作しないアプリに関しては、WINEPREFIXとWINEARCHで32bit専用環境を別途作成しました。これで、ほぼPlayOnLinuxの環境を再現出来ています。

Steamで購入したアプリは、Steamで稼働させています。各ゲームのProtonのバージョンと起動オプションの設定を行い、購入する時にはProtonDBで動作確認をしてから購入するようにしています。

◇Wineで64bit環境と32bit環境を構築する(Ubuntu系)
1.32bitアプリをインストール出来るようにする

sudo dpkg --add-architecture i386


2.WineHQのPPAを追加し、APTのデータベースを更新(Ubuntu 18.04 LTSの場合。20.04はbionicをfocalに変更、20.10はgroovyに変更)

$ wget -nc https://dl.winehq.org/wine-builds/Release.key && sudo apt-key add Release.key
$ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'
$ sudo apt update


3.Wineの安定版のインストール

$ sudo apt install winehq-stable


5.32bit環境を作る(ここでは、作成するディレクトリを「.win32」とします)

$ WINEARCH=win32 WINEPREFIX=~/.win32 winecfg

以後、32bit環境を呼び出す時には、「env WINEPREFIX=~/.win32 Windowsアプリの実行ファイル」というようにWindowsアプリの実行ファイルを呼び出すと、32bit環境でアプリを使えます。
WINEARCHやWINEPREFIXを付けない場合にwinecfgを実行すると、homeディレクトリに「.wine」が出来ますが、これは削除しなければ、64bit環境として動作します。他のサイトでは、これを削除してWINEARCH=win32を付けて64bit環境から32bit環境へ切り替える方法が紹介されていますが、個人的には64bit環境を残して、WINEARCHやWINEPREFIXで別途32bit環境を作った方が利便性は高かったです。PlayOnLinuxで仮想環境を複数作るのと同じ事をしています。

6.winetricksをインストールする。GUIでライブラリやフォントなどをインストール出来るようになる。

$ sudo apt install winetricks


以後、端末でwinetricksを呼び出すと、GUI操作で色々とライブラリやフォントなどをインストール出来るようになります。32bit環境で使う場合には、WINEPREFIXを付ける必要があります。

7..desktopファイルを作っておくと、各種パネルのアプリケーションメニューにWindowsアプリケーションの項目が出てくるようになります。設置場所は、「/usr/share/applications」、あるいは「~/.local/usr/share/applications」の下です。
.desktopのテンプレートは以下の通りです。

◇xxxというアプリケーションの.desktopファイルのテンプレート(xxx.desktopを作成)

[Desktop Entry]
Encoding=UTF-8
Name=xxx
Comment=アプリの説明文を入れる(任意)
Type=Application
Exec=sh -c "wine 'xxx.exe'"
Icon=アイコン用の画像がある場所を指定
Categories=


Execは、「wine xxx.exe」でも良いですが、アプリケーションの名前が日本名で1文字空白がある場合などにおいて、シェルコマンドを実行させるには、「''」で文字列を括っておく必要があります。その為、「sh -c "wine 'アプリケーション名'"」という書き方に慣れておくと応用が効きます。実行ファイルによっては、同じディレクトリ上のファイルやライブラリを読み込む作りのアプリケーションがあるので、cdでディレクトリを移動してから実行ファイルを実行させると良いでしょう。

◇同じディレクトリのライブラリやファイルを読み込まないとエラーが出てしまうアプリを実行する例(/home/yyy/zzzにxxx.exeがある場合)

Exec=sh -c "cd ~/zzz && wine 'xxx.exe'"


◇32bit環境用(予め作成した~/.win32という環境を使う場合)

Exec = sh -c "env WINEPREFIX=~/.win32 wine 'xxx.exe'"


◇GPUを切り替えるPRIMEを使う場合(0でプライマリ、1でセカンダリのGPUを使う事が出来る。WINEPREFIXとの併用も可能。)

Exec = sh -c "DRI_PRIME=1 wine 'xxx.exe'"


Windows版Steamのクライアントでは、Steamでインストールした物ではなく、直接システムにインストールしたアプリを動作させる為に「非Steamのゲームを追加」という項目があって、これで追加する事でSteamから動作させる事が出来ました。しかし、Linux版のSteamクライアントでは、この機能を使っても動作しませんでした。
posted by takatan at 13:13| 大阪 ☀| linux | このブログの読者になる | 更新情報をチェックする

2020年10月10日

モニターをオフにして、PCで音楽やラジオだけを流したい時に便利なLinuxのコマンド

モニターをオフにして、PCで音楽やラジオだけを流したい時に便利なLinuxのコマンドは、以下の通りです。これで、モニターが待機状態になります。戻る時は、マウスかキーボードを適当に触れば戻ります。

$ xset dpms force standby


Openboxの右クリックメニューに登録したり、ショートカットを作っておいたりすれば、便利になります。以下のように.bashrcに記述しておいても良いでしょう。

◇./bashrc
alias mpoweroff='xset dpms force standby'

posted by takatan at 10:28| 大阪 ☔| linux | このブログの読者になる | 更新情報をチェックする

2020年07月20日

VRoid Studioで透明メッシュを削減してエクスポートするとBlenderなどで作業する時に少し楽になる

VRoid StudioでアバターをVRMにエクスポートする際には、いくつかのパラメータにチェックを入れる事で、ポリゴン数を減らす事が可能です。出力したアバターをBlenderなどの3Dモデリングソフトにインポートすると分かりますが、結構無駄なメッシュが張られています。Blenderで作業する時に、このメッシュ剥がしから入る事が多いですが、実はVRoid Studioでこのメッシュ剥がしの作業の手間を直感的に減らせます。
それが、エクスポート時の「透明メッシュを削除する」という項目にチェックを入れる事です。若干削り過ぎる面もありますが、ほぼ申し分無いぐらいメッシュ剥がしをしてくれるので便利な機能です。
出力前に、服の編集画面でテクスチャーの不要な部分を消しゴムツールで消すだけですので、直感的に出来ます。

スクリーンショット_2020-07-20_09-22-30.png

スクリーンショット_2020-07-20_09-22-10.png
posted by takatan at 09:41| 大阪 | linux | このブログの読者になる | 更新情報をチェックする

2020年07月18日

Blenderで作ったアイテムをUniVRMでVRoidに装着させる

VRoid Studioで作成したアバターは、VRMとして出力が出来ます。この出力されたVRMをBlenderで編集するには、VRM IMPORTERというアドオンをBlenderに導入する必要があります。しかし、Blenderで大幅に外観を変更して、UniVRMに持っていくと、テクスチャやマテリアル、ボーンなどの情報が失われ、これを再度設定しなければいけないという面倒臭さがあります。
単純にBlenderでアイテムを作成して、アバターに装着させたいだけであれば、Blenderでアイテムのモデルを作成してから、FBXやblendファイルで保存して、UniVRMにインポートして、該当するボーンに設置するようにした方が便利です。

◇VRM IMPORTER
https://github.com/iCyP


◎Blenderで作成したアイテムをVRoidに装着させる
1.Blenderでアイテムを作成して、FBXかblendファイルで保存する
2.作成したFBXやblendファイルをUniVRMに読み込ませる
3.アバターをHierachyにドラッグ&ドロップし、そのキャラの装着させたい場所のボーンまで移動し、そこへ読み込ませたアイテムのアイコンをドラッグ&ドロップさせる
4.後は、アイテムの位置を調整して、UniVRMの「Export Humanoid」でVRMを出力して完成

アイテムを、装着させたいボーンにドラッグ&ドロップさせる
スクリーンショット_2020-07-18_23-17-59.png

実際にアバターにアイテムを装着させたところです。
20200718231606.png

この方法で注意する事は、VRoidをMMDにコンバートする時です。UniVRMのアドオン「VRMtoPMX Exporter」で出力すると失敗します。VRM2PmxConverterであれば、問題なく出力が出来ますが、VRoidらしさが失われます。ちなみに、アイテムを非表示にすれば、VRMtoPMX Exporterでも出力出来ました。
posted by takatan at 23:34| 大阪 ☁| linux | このブログの読者になる | 更新情報をチェックする

2020年07月05日

【Ubuntu・Wine・MMD】Wine環境でどうしてもMMDのAVI出力機能で動画が保存出来ない場合の対策

Linux上にWindows APIレイヤー「Wine」を導入している場合、MMD(64bit版も動作するが、MMEがコケ易いので、32bit版を推奨)を動作させる事が出来ます。しかし、quartz.dllをネイティブ設定たり、ffdshowをインストールしたりしても、DirectShowの設定が不十分で、MMDのAVI出力機能が使えない事があります。動画に残したい場合には、Linuxネイティブで動く録画ツールや動画編集ソフトを駆使する事で、対応出来ます。

1.OBS Studioのウィンドウキャプチャー機能を使って録画
OBS Studioには、特定のウィンドウをキャプチャーする機能があります。これの設定で気をつける事は、色が反転しているので、「赤と青を入れ替え」にチェックを入れる事です。これで正常に録画出来ます。

スクリーンショット_2020-07-05_16-11-26.png
スクリーンショット_2020-07-05_16-11-46.png

2.OBS Studioで録画した映像をAvidemuxのCropフィルタとswsResizeフィルタを使って、画面に写り込んでいる不要な黒枠などを削除します。この時に解像度は縦1080px以上に設定するだけで構いません。Shotcutに取り込んで出力した際に自動的にアスペクト比やサイズを調整してくれるので、この作業では細かく解像度を気にしなくて良いです。
出力ファイルの映像コーデックは、可逆映像コーデック「Huffyuv」を使っています。このコーデックは無劣化で出力出来るのがメリットですが、ファイルサイズが大きくなるので、ストレージの容量に気をつけてください。

スクリーンショット_2020-07-05_16-16-50.png
スクリーンショット_2020-07-05_16-17-31.png

3.Avidemuxで作成した映像ソースを動画編集ソフト「Shotcut」に取り込みます。カット編集やロゴ入れや映像の結合などの処理は、ここで全てやってしまいます。出力ファイルの映像コーデックや音声コーデックは、好みの物を選んでください。

これで、MMDを使った映像作品を作る事が出来ます。
Ubuntuにおける動画編集は、Avidemuxで黒枠などの不要な部分を削除したHuffyuvの映像ソースをいくつか作って、Shotcutでそれらを採り込んで編集するという方法が効率的で綺麗に映像作品を作る事が出来るのでオススメです。

◇Shotcut
https://shotcut.org/download/
◇OBS Studio
https://obsproject.com/ja/download
◇Avidemux
http://avidemux.sourceforge.net/
posted by takatan at 16:23| 大阪 ☀| linux | このブログの読者になる | 更新情報をチェックする