2020年6月20日土曜日

ゲームのグラフィックを FBX ファイルに吸い出す方法 (AssetStudio)

How to rip Unity games to FBX files

AssetStudio というオープンソースソフトウェアを使って Unity で作ったゲームからグラフィックデータを FBX ファイルに出力できたのでその方法をまとめました。

環境

  1. Windows 10
  2. Unity 2019.4
  3. AssetStudioGUI v0.14.38

Unity で吸い出す対象のゲームを作る

構造ががシンプルな「クエリちゃん SD版」を使って吸い出し方法を説明します。
「クエリちゃん SD版」は Asset Store から無料でダウンロードできます。
このアセットのプレファブを追加しただけの Scene を作り、キャラクターを吸い出すことを目標とします。

exe ファイルにビルドします。
今回は sample.exe というファイル名でビルドしました。

AssetStudio をダウンロードする

AssetStudio は Unity でビルドしたファイルからFBXのほか、アニメーション・オーディオ・画像などを出力できるツールです。
公式サイトの Download the latest build version from here をクリックしてzipファイルをダウンロードします。
https://github.com/Perfare/AssetStudio/releases
zipファイルを展開し、AssetStudioGUI.exe のプロパティを開いてセキュリティの 許可する をクリックします。

これで AssetStudioGUI.exe が起動できるようになります。

正常に起動しない場合は .NET Framework 4.7.2 と Microsoft Visual C++ 2017 Redistributable もインストールしてください。

AssetStudio で吸い出す

AssetStudio のメニュー
Flie -> Load folder
でUnity をビルドしたフォルダーを指定します。
AssetStudio の左の階層に level0 というツリーで Scene が表示されます。
今回はこの中の Query-chan-SD のみを指定しました。


メニューの
Model -> Export selected object をクリックます。

エクスポート先のフォルダーを指定すると FBX ファイルとテクスチャ画像が出力されました。

Blender にインポートする方法

FBX ファイルが正常に再現されているか確かめるため、3次元CG編集ソフトの Blender 2.83 を使いました。
メニューの
File -> Import -> FBX
から出力したファイルをインポートします。
ボーンも確かめるので Automatic Bone Orientation にチェックを入れておきました。

AssetStudio で出力した FBX は Unity Assets Bundle Extractor で出力したメッシュに比べると100分の1の大きさになるので Transform の X Y Z とも100倍にします。

Viewpoint Shading を Material Preview にするとテクスチャが正常に表示されました。

Pose mode でボーンを動かすとポーズも正常に動作します。

AssetStudio から出力した 再現性の高いFBX ファイルを出力できることがわかりました。
ただし、どんなことが正常に再現できないか不明な点もあります。
大事なアセットはバックアップしておくことをおすすめします。

市販のゲームも吸い出しできる

プライエタリーなゲームでも Unity 製なら AssetStudio で吸い出しできることがあります。
二次利用不可のアセットを使って Unity でビルドしたゲームを公開する場合は、エンドユーザーライセンス契約でリバースエンジニアリングや逆アセンブルの禁止などで保護することをおすすめします。

関連ブログ

ゲームのグラフィックや音声を吸い出す方法 (Unity Assets Bundle Extractor)

2020年5月31日日曜日

[Windows] 内蔵システムドライブを外付けにしたらフォーマットできないときの対処方法

How to solve error "Operation is not supported by this object"

PCのシステムドライブとして使っていたSSDをUSBの外付けドライブに変換するケーブルでPCに接続してフォーマットしようとしたところ、エラーメッセージが表示されフォーマット出来ません。
仮想ディスクマネージャー この操作は、オブジェクトによってサポートされてません。


blog.fujiu.jp 内蔵システムドライブを外付けにしたらフォーマットできないときの対処方法

このエラーはバージョンの古い Windows では見たことがなかったので対処方法を調べてその方法をまとめました。


環境

  • Windows 10

エラーが出るまでの手順

スタートボタンを右クリックして ディスクの管理 を開きます。
ディスク1のパーティションをすべて削除したいのですが、いくつかのボリュームはメニューがグレーアウトされて削除出来ません。

左側を右クリックすると表示される ダイナミックディスクに変換 というメニューをクリックすると「この操作は、オブジェクトによってサポートされてません」というエラーが表示されました。

ボリュームの拡張ウィザードなども試しましたが、これ以上何をしても解決しそうにありませんでした。
ディスクの管理 では回復パーティションなど一部のパーティションは削除出来ないようになっているようです。


対処方法

DiskPart コマンドを使って解決しました。
検索バーかコマンドプロンプトに
diskpart
と入力します。(要管理者権限)
DiskPartのコマンドラインが起動したら、今回は ディスク 1 を初期化したいので
select disk 1
clean
と入力します。


これでディスク1が未割り当てになり、フォーマット出来るようになりました。


今回はすべてのパーティションを一度に削除するために clean と入力しましたが、パーティションを選んで削除する場合は
select partition
でパーティション番号を指定して
delete partition override
で削除できるようです。

diskpart コマンドdiskpart command - Microsoft Docs
https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/diskpart



関連ブログ

Windows 10 の冷却ファンの回転を減らす方法
Windows バックアップが正常に完了しないのを回避する方法 (0x80780048)



2020年4月30日木曜日

[Windows10] フルスクリーン表示してもタスクバーが消えないときの対策

How to fix non-hiding taskbar in fullscreen

かつてはゲームの画面をフルスクリーン表示にするとタスクバーの領域までゲームの画面がは表示されていたのですが、Windows10 をバージョン 1909 にアップデートした頃からゲームの画面にタスクバーが重なって表示されることが増えました。
blog.fujiu.jp [Windows10] フルスクリーン表示してもタスクバーが消えないときの対策

ネットで調べた直し方をいくつか試しましたがどれも効果がなかったのですが、独自の手段で直りました。
その方法をまとめました。


環境

  • Windows 10


タスクバーが重なったときに消す方法

Ctrl + Shift + Esc キーを押すか、タスクバーを右クリックしてタスクマネージャーを起動します。
左下の詳細をクリックして詳細タブをクリックし、Explorer.exe を選んでタスクの終了をクリックします。

これでタスクバーが消えますがデスクトップも消えてしまうので
ファイル -> 新しいタスクの実行 から
explorer.exe
と入力して OK をクリックします。

これでデスクトップが復活しフルスクリーンも正常に表示されるようになりました。


タスクバーが重なるのを防げるようになった方法

エクスプローラーのフォルダーオプションを
別のプロセスでフォルダー ウィンドウを開く
を有効にしてからフルスクリーンの画面がタスクバーに隠されることはなくなりました。

設定方法はエクスプローラーの
表示 -> オプション
からできます。

すべての環境で動作保証するわけではありませんが同じ症状でお困りなら試してみることをお勧めします。


関連ブログ

Windows10 で古い Internet Explorer を使う方法


2020年3月29日日曜日

Firefox の遅いレンダリングが直るまで

How to fix Firefox slow rendering

正確な時期は不明ですが、この数ヶ月以内に Firefox をアップデートしてから Web 画面のレンダリングが遅くなりました。
具体的には Web 画面が表示されてから下にスクロールするとしばらく真っ白に表示されます。
下の画像のようなイメージです。

正常に表示されるまで数秒かかります。
原因は不明ですが、Windows の電源設定を変更したら改善したのでその方法をまとめました。


環境

  • Windows 10
  • Firefox 74.0 (これより前のバージョンから起きていました)


電源とスリープの設定を見直す

スタートボタンのコントロールパネルから
システム -> 電源とスリープ
を開き 電源の追加設定 をクリックします。

もし省電力になっていたらバランスに変更します。

この設定変更してから Firefox の画面をスクロールしても真っ白になることはなくなりました。
過去のブログ Windows 10 の冷却ファンの回転を減らす方法 で紹介した最大のプロセッサの状態を低く設定すると真っ白になることが多くなります。
PC の性能によってはバランスより高パフォーマンスを選択した方がいいかもしれません。
原因は不明なままなのでこの設定では直らない可能性もありますのでご了承ください。


関連ブログ

Windows 10 の冷却ファンの回転を減らす方法


2020年2月22日土曜日

Selenium IDE でヤフオク!のブラックリストにIDをまとめて登録する方法

How to register dubious ID at Yahoo Auction blacklist all at once

個人売買サイトのヤフオク!は、特定の ID のユーザーとの取引を拒否できるブラックリストの機能があります。
悪意を持った利用者の ID をブラックリストに登録しておくと嫌がらせやいたずらを防ぐことができます。
ブラックリストに登録されると、同一人物が使っていると推測される ID もブロックの対象になるのでサブアカウントも含めて取引の拒否ができます。
ヤフオク!要注意IDリストの Web サイト(以下「要注意IDリスト」と略します) に記載されている数十件の ID を登録しようと思ったのですが、ブラックリストに登録する画面は一度の操作で一つの ID しか登録できません。
一度の操作で全ての ID を登録したいので、Web ブラウザーの Firefox に自動テストツールの Selenium IDE を使って一括登録しました。
90件の登録に4分くらいで済みました。
一般的な手段ではありませんが、そのときのソースと使い方をまとめました。
blog.fujiu.jp Selenium IDE でヤフオク!のブラックリストにIDをまとめて登録する方法


環境

  • Windows 10
  • Firefox 71.0
  • Selenium IDE 3.16.1


実手順

  1. 要注意IDリスト (http://ochisatsu.com/caution/) のIDを抽出する (配列の書式にならべる)
  2. 抽出した ID をヤフオクのブラックリストに登録する
時間短縮のために1番目は JavaScriptで抽出し、2番目は Selenium IDE を使いました。


要注意IDリスト (http://ochisatsu.com/caution/) のIDを抽出する方法

これが最大の難関です。
ID を一つずつダブルクオーテーションで囲み、カンマでつなげます。
三人分 ID を登録したい場合は次の構文になります。

return ["一人目のID", "二人目のID", "三人目のID"]

要注意IDリストなどに記載されている ID を配列にならべて出力する JavaScript を作りました。
このブログを書いている時点で要注意IDリストの Web サイトを Firefox で開き、F12 キーを押して Console で下の JavaScript を実行すると表示されている ID を全て配列の構文でコンソールに出力できます。




抽出した ID をヤフオクのブラックリストに登録する方法

Firefox に Addon の Selenium IDE をインストールする

Firefox に Selenium IDE がインストールされていなければ下記の URL を Firefox で開いて 「Add to Firefox」をクリックすればインストールできます。
https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/

Firefox のメニューバーに Selenium IDE のアイコンが表示されればインストール成功です。


Selenium IDE のスクリプトをダウンロードし展開する

抽出した ID をヤフオクのブラックリストに登録するスクリプトを Gist に載せました。
https://gist.github.com/mtk-f/4e8c31306171460b9e61021933b026cb

画面右上にある「Download ZIP」をクリックして ZIP ファイルをダウンロードし、展開しておきます。


Selenium IDE を起動してスクリプトファイルを開く

Selenium IDE のアイコンをクリックして Selenium IDE を起動させます。
Open an existing project をクリックします。
Gist からダウンロードして展開したファイルを選択します。

スクリプトを編集する画面が表示されるので、コマンド1行目の Target に要注意IDリストから抽出した return 文をコピー・貼り付けて Run Current test のボタンをクリックします。

これで ID がブラックリストに次々に追加されていきます。

関連ブログ

Selenium IDE でWebブラウザーを自動操作する方法
UWSC でアプリケーションを自動操作する方法
JavaScriptをWebコンテンツを見ながらデバッグする [Intenet Explorer] [firefox]


2020年1月25日土曜日

Androidアプリ Shuffle V! 公開終了のお知らせ

誠に勝手ながら2012年から公開していたAndroidアプリ Shuffle V! が、2020年1月で公開を終了します。
今までご協力いただいた皆様やダウンロードしていただいた皆様には厚くお礼申し上げます。

2019年12月29日日曜日

QC検定2級 攻略法

The Quality Management and Quality Control Examination strategy

私事で恐縮ですが、当ブログの著者はQC検定2級に合格しました。
実際に試験を受けてみて効果があったと思われる攻略方法をまとめました。


「1回で合格」は1冊で合格できない

試験直前、会場に集まった受験者の多くが成美堂の「1回で合格! QC 検定2級テキスト & 問題集」を読んでました。
当ブログの著者もこの参考書を買ってお世話になりました。
blog.fujiu.jp QC検定2級 攻略法
この参考書はQC検定2級の参考書として必須の内容だと思います。
しかし合格に必要な検定の説明が不足しています。
「1回で合格」というタイトルは魅力ですが、これ1冊で合格できる内容ではありません。
特に「1回で合格」に載っていないが出題頻度が高いと思われる検定について計算式を下記にまとめました。
ここに載ってない計算式が必要になることもあるので他の参考書や過去問にも目を通すことをおすすめします。

二つの母集団の差の検定
母集団の分散が既知の場合
検定統計量

両側検定の棄却域

ただし

片側検定の棄却域 (大きくなったか)

片側検定の棄却域 (小さくなったか)

ただし


母集団の分散が未知で標準偏差が同じ場合
検定統計量

ただし

両側検定の棄却域

片側検定の棄却域 (大きくなったか)

片側検定の棄却域 (小さくなったか)


母集団の分散が未知で標準偏差が異なる場合
検定統計量

両側検定の棄却域

片側検定の棄却域 (大きくなったか)

片側検定の棄却域 (小さくなったか)



データに対応のあるt検定の場合
検定統計量

ただし

両側検定の棄却域

片側検定の棄却域 (大きくなったか)

片側検定の棄却域 (小さくなったか)



相関係数のt検定

棄却域



d2を使った標準偏差の推定値



二元配置実験の伊奈の式


穴埋め問題は穴の前後に注目する

実践編の穴埋め問題は、問題文を読む前に選択肢に目を通します。
その後、穴の前後の文章から最適と思われる選択肢を選びます。
何を最適と判断するかは国語力と暗記した内容次第なので、実践編も参考書の暗記が基本です。


まとめ

QC検定2級は90分試験時間で100前後の問題数が出題されます。
100問もあると解答用紙のマークシートを塗りつぶす時間も無視できません。
試験本番で解答を導出しようとすると時間が足りないので、出題頻度の高い問題はすぐに解答できるようにしておく必要があります。
特に手法編の計算問題は計算式を使うのかを判断する練習と、必要な計算式を暗記しておくことをおすすめします。


関連ブログ

乙種危険物取扱者試験 攻略法