2016年11月19日土曜日

不安定なオンラインゲームを安定させる方法

How to make online games get stable

2016年8月、Unity Web Playerで動作するオンラインゲームを始めました。
開始当初このゲームのフリーズや異常終了が日常茶飯事でした。
blog.fujiu.jp 不安定なオンラインゲームを安定化させる方法
© 日本ファルコム © USERJOY JAPAN © USERJOY Technology

この画面のように時計が回転するアニメーションのまま進まなくなることがよくありました。
ふとしたことからフリーズや異常終了がなくなったのでその方法をまとめました。
PCと周辺機器が正常であることとゲームのバグが原因ではないことが前提です。


環境

  • Windows 10
  • Internet Explorer 11


結論・インターネット回線を変えたら安定した

ゲームが不安定だった頃はCATV回線でインターネットに接続していました。
ある日、プロバイダーのインフラが老朽化による故障のため丸1日インターネットが使えませんでした。
そこで同じプロバイダーの光回線に変更したのですが、それ以来このゲームがフリーズしたり異常終了することがなくなりました。


オンラインゲーム以外で変わったこと

CATV回線の頃はWebブラウザーのタブでたくさんのサイトを開くと、Webブラウザーにサーバーエラーと表示されることがよくありましたが光回線に変えてからはそのようなエラーもなくなりました。
AndroidスマートフォンのOneDriveアプリで写真をアップロードすると、回線変更前はアップロードできないことが多々ありましたが、回線変更後は安定してアップロードできます。

これらの症状は当時は原因不明でしたがプロバイダーのインフラ老朽化が影響していたようです。


まとめ

インターネットが不調なときはパソコンやモデムやルーターを再起動します。
これで調子がよくなればパソコンやモデムやルーターの買い換えをおすすめします。
それでも不調な場合は回線やプロバイダーの変更をおすすめします。


関連ブログ

[Adblock] Twitterのプロモーション・おすすめ・アンケートを消し去る方法
ツイッターのアカウントをブロックやミュートせずにタイムラインから消し去る方法
「Firefoxは現在Twitterに接続できません」の対処方法
FirefoxでJavaSriptが応答しなくなるサイトの対策と高速化
Internet Explorer 11の動画再生のプリフリーズ(コマ飛び・コマ落ち)が直るまで

以上、参考になれば幸いです。

2016年11月12日土曜日

MODO Indie のFBXの互換性を試してみました

How to import FBX files into MODO Indie

MODOは3次元CG編集ソフトです。
MODOの廉価版である MODO Indie でFBXファイルのインポートとエクスポートを試してみました。
blog.fujiu.jp MODO IndieのFBXの互換性を試してみました


環境

  • Windows 10
  • MODO Indie 801


MODO Indieを選んだ理由

このブログを書いている時点で MODO Indie の販売価格は1ヶ月1480円のサブスクリプション制(一括購入で割引きあり)です。
ちょっと試したい人も長く使い続けたい人も低予算で済みます。

また、MODOのフル機能版はゲームエンジン・Unity3DのStandardマテリアルをほぼ完全に再現できます。
MayaやBlenderと異なりMODOで作成したモデルはUnity3Dにインポート後にマテリアルを手直ししたり再現不能な箇所を妥協する必要がありません。
Unreal Engineのマテリアルも再現できるようです。
グラフィック担当者がMODOでデザインしたモデルをゲームエンジンにインポートした後、手直しすることなく利用できます。

価格が安く、フル機能版にアップグレードすればゲームエンジンとの親和性が高いことからMODO Indieを使ってみることにしました。


ユニティちゃんのFBXファイルをインポートする

MODOのFBXファイルのエクスポートはUnity3DやUnreal Engineと親和性の高いことがわかっているので、MODOにFBXファイルをインポートした場合の互換性を試してみます。
FBXファイルはユニティテクノロジーズジャパンが無料で公開しているUnity3Dアセットの「ユニティちゃん」を使います。

過去にユニティちゃんのFBXファイルを別の低価格なCG編集ソフトにインポートしてみたことがあります。
その結果、 Metasequoia EX では一部のShape Keyが削除され形状が崩れてしまいました
Shade3D では形状は正常ですがすべてのShape Keyが扱えないことがわかりました。

このユニティちゃんのFBXファイルをMODO Indieにインポートしてどうなるか試してみます。

MODOにFBXファイルをインポートするとface_00.psdというファイルを要求してきますが無視してよさそうです。

インポートしたらマテリアルごとにテクスチャ画像ファイルを指定します。

形状は正常のようです。ポーズもボーンを動かした通りに動きます。

モーフも正常に動きます。

Blenderへのインポートと比較するとMODOへのインポート方がオリジナルに近い結果になりました。


ユニティちゃんをFBXファイルにエクスポートする

MODOの初期設定のまま ユニティちゃんをFBXファイルにエクスポートし互換性を試してみました。

CLIP STUDIO MODELERにインポートしたところ、顔のメッシュが行方不明になりました。
CLIP STUDIOは元からこの挙動なのでMODO IndieがエクスポートするFBXファイルは互換性が高いようです。

Blenderでは UnicodeDecodeError によりにインポートできませんでした。


インポートできないFBXファイルもある

サファイアート株式会社が公開している「サファイアートちゃん」のFBXファイルをインポートしたらMODO Indieがフリーズしてしまいました。
サファイアートちゃんをFBX ConverterでコンバートしてたFBXファイルもフリーズします。

株式会社ポケットクエリーズの「クエリちゃん」は正常にインポートできました。
MODOにインポートできるファイルとでいないファイルの違いは今のところ不明です。


MODO Indie の制限

MODO Indie は低価格ゆえフル機能版に比べて制限があります。
制限された機能は下記URLのコミュニティの掲示板を参考にまとめました。
http://community.thefoundry.co.uk/discussion/topic.aspx?f=4&t=122158
間違っていたら済みません。
  • OBJ と FBX へのエクスポートは10万ポリゴン以内に限る
  • (テクスチャ画像にベイクできる?)解像度は4k以内に限る
  • evalコマンドは利用できない
  • Command、scripts、command history panel は undo と history のみ利用できる
  • Python editorやサードパーティー製のスクリプト・プラグインは利用できない
  • フル機能版MODOがインポートできるフォーマットはIndieもすべて対応するが保存できるのは .lxf に限る
  • エクスポートできるフォーマットは OBJ と FBX に限る
  • 対応する画像ファイルフォーマットは .png、.jpg、.tiff、.tga、.exr に限る
  • ネットワークレンダリング機能は利用できない
エクスポートできるポリゴン数が制限されていますが、未確認情報ながらPlaystation3やXbox360の世代の高品質なゲームキャラクター一人分が数万ポリゴンと言われているのでリアルタイムレンダリング用モデルには十分だと思います。

入手方法はSteamのダウンロード販売のみで、国内代理店のMODO JAPAN GROUP(株式会社ディストーム)のサポートは受けられません。
インターフェイスの日本語化はできません。


関連ブログ

Metasequoia EX の FBXファイルの互換性を試してみました
Shade3D の FBXファイルの互換性を試してみました
[Blender] CLIP STUDIOにUnity3DやMMDのキャラクターを移植する方法
Blenderで作ったアニメーションがUnity3Dで違う動きをする原因と直し方
BlenderのモデルデータをMMDに変換する方法

以上、参考になれば幸いです。

2016年11月5日土曜日

[Adblock] Twitterのプロモーション・おすすめ・アンケートを消し去る方法

How to erase useless tweeets

過去のブログ ツイッターのアカウントをブロックやミュートせずにタイムラインから消し去る方法
特定のアカウントをブロックせずにタイムラインから消し去る方法を書きました。
今回は特定の条件のツイートを消し去る方法をまとめました。

なお、消し去れるのはAdblockをインストールしたWebブラウザーに限ります。
Androidなどスマートフォン版Adblockはユーザーがフィルターを追加設定できないため未対応です。


環境

  • Windows 10
  • Firefox 49.0.2 + Adblockアドオン
Adblockのインストールや設定方法は ツイッターのアカウントをブロックやミュートせずにタイムラインから消し去る方法 に記載してあります。
将来の仕様変更によりフィルターの効果がなくなることがあるかもしれません。


プロモーションツイートを消すフィルター

下の画像のようなプロモーションを消すフィルターです。
blog.fujiu.jp Twitterのプロモーション・おすすめ・アンケートを消し去る方法
Twitterは広告収益で運営しているためプロモーションツイートを消すことはおすすめしません。
よく検討した上でご利用ください。



アンケートだけを消すフィルター

下の画像のようなアンケートを消すフィルターです。
アンケートは負荷の高いJavaScriptを使っているようで、消し去るとブラウザーの動作が軽快になります。
選択肢の数ごとにフィルターが変わります。

四択のアンケートを消すフィルター


三択のアンケートを消すフィルター



おすすめユーザーを消すフィルター

下の画像のようなおすすめユーザーを消すフィルターです。



最近の出来事を消すフィルター

スクリーンショットはありませんが、最近の出来事というツイートを消すフィルターです。



特定のツイートを消すこれらの方法は消し去るもが目的ではなく、DOM APIの勉強がてら偶然見つけたものです。
消し去りたいツイートがあまりにも多い場合はツイッターを見る回数を減らすことをおすすめします。


関連ブログ

「Firefoxは現在Twitterに接続できません」の対処方法
[セキュリティ] 引用サイト・Togetterに引用された自分のツイートを検索・削除する方法
Blogger.com (blogspot)のツイッターカードにサムネイルを設定する 2016年版

以上、参考になれば幸いです。

2016年10月29日土曜日

[Blender] Pythonスクリプトで頂点グループをまとめて選択する方法

How to select multiple vertex groups

過去のブログ CLIP STUDIOにUnity3DやMMDのキャラクターを移植する方法 で書いたとおり、3DキャラクターをCLIP STUDIOへ移植するにはスカート部には専用のマテリアルが割り当てられている必要があります。
「サファイアートちゃん」のように誰でも利用できるスカート着用の3Dキャラクターモデルはたくさん公開されていますが、そのほとんどがスカートと衣服に共通のマテリアルが設定されています。
しかし、スカート部に割り当てられた頂点グループに別のマテリアルを割り当てれば解決します。
とはいえ、たくさんの頂点グループを選択する操作が必要なので手間がかかります。
そこで、複数の頂点グループをスクリプトで一括選択する方法をまとめました。
blog.fujiu.jp [Blender] Pythonスクリプトで頂点グループをまとめて選択する方法
© SAPPHIART CHAN


環境

  • Windows 10
  • Blender 2.78


頂点グループを一括選択するPythonスクリプト

スカートの頂点グループは Skirt という文字列が含まれている場合次のようになります。


「オブジェクト名」の文字列はモデルに応じて変更します。
3D ViewをEdit Modeにし、Python Consoleに次のように入力またはコピー・ペーストします。
サファイアートちゃんの上着は ClothOuter というオブジェクト名なので次のようになります。




どんなときに役立つか

複数の頂点グループをまとめて編集したいときに役立ちます。
下の画像は「Imagine GIrls・R1N4(リナ)」の3DモデルをBlenderにインポートしたものです。
スカートの頂点グループが100個近くあるので手作業で選択するのは気の遠くなる作業ですが、スクリプトなら一瞬で済みます。

© ImagineVR Inc.
スクリプトの Skirt を別の文字列に置き換えれば名前にその文字列を含む頂点グループを一括選択できます。
また、select() を deselect() に書き換えれば選択状態を一括解除するスクリプトになります。


関連ブログ

[Blender] 複数のShape keyを一つにまとめる方法
CLIP STUDIOにUnity3DやMMDのキャラクターを移植する方法
[Blender] Pythonで複数の設定を一瞬で編集する方法
[Blender] ボーンを削除したらメッシュが動かないときの直し方
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
BlenderのモデルデータをMMDに変換する方法

以上、参考になれば幸いです。

2016年10月22日土曜日

[Blender] 複数のShape key を一つにまとめる方法

How to mix multiple shape keys

3次元CG編集ソフト・Blenderにはを移動してアニメーションさせるShape Keyという機能があります。
人物モデルの目や口の開閉アニメーションなどによく使われます。
複数のShape Keyを一つにまとめる方法をまとめました。

© SAPPHIART CHAN


環境

  • Windows 10
  • Blender 2.78


Shape Key付きモデルを用意する

過去のブログ Shape key の変形を固定する方法
でBlenderにインポートした実績がある株式会社サファイアートの「サファイアートちゃん」のFBXファイルをサンプルとします。


サファイアートちゃんの顔は右目・左目・口にそれぞれ独立したShape Keyが複数設定されています。


複数のShape key を一つにまとめる方法

ここから本題です。
Object Mode で一つにまとめたいShape Keyをすべて変形させます。
両目と口の変形をまとめることにします。

右の下向き三角ボタンをクリックして New Shape From Mix をクリックします。

複数の変形をまとめたShape Keyが追加されます。

新しく追加されたShpae Keyだけで両目と口をアニメーションできるようになりました。
※GIFアニメーションです
blog.fujiu.jp 複数のShape key を一つにまとめる方法


注意

まとめられるShape Keyは同一オブジェクト上のものに限るようです。
ユニティちゃんのようにまぶたや目など顔が複数のオブジェクトに分かれているShape Keyをまとめる場合はJoinコマンドで結合するとできるようになります。
blog.fujiu.jp 複数のShape key を一つにまとめる方法
© Unity Technologies Japan/UCL


関連ブログ

[Blender] Shape key の変形を固定する方法
[Blender] CLIP STUDIOにUnity3DやMMDのキャラクターを移植する方法
BlenderのモデルデータをMMDに変換する方法
[Blender] ボーンを削除したらメッシュが動かないときの直し方
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
[Blender] Pythonで複数の設定を一瞬で編集する方法

以上、参考になれば幸いです。

2016年10月15日土曜日

[Blender] Shape key の変形を固定する方法

How to freeze deformed vertices with shape keys

3次元CG編集ソフトの Blender には頂点を移動してオブジェクトを変形する Shape Key という機能があります。
人物モデルなら口や目の開閉アニメーションなどによく使われます。
口を開けたまま、目を閉じたままなど、Shape Keyの変形を固定してFBXファイルにエクスポートする方法をまとめました。
blog.fujiu.jp [Blender] Shape key の変形を固定する方法
© SAPPHIART CHAN


環境

  • Windows 10
  • Blender 2.77


Shape Key付きFBXファイルをインポートする

複数のShape Keyを持ち、Blenderに比較的インポートしやすい株式会社サファイアートの「サファイアートちゃん」のFBXファイルをサンプルにします。
サファイアートちゃんはゲームエンジン・Unity3DのAssetストアや公式サイトから無料でダウンロードできます。
BlenderはFBXインポート時のパラメーターによってShapke Keyを動かすと顔が爆発することがあるのですが、今回は下記の設定でインポートしました。

Main
Manual Orientation を オン

Armatures
Automatic Bone Orientation を オン

「faceFlat」というパーツは使わないので削除します。
一部ボーンの向きやマテリアルの割り当てなどが不正な気がしますが無視します。


Shape Key の変形を固定する方法

サファイアートちゃんは15種類ほどShape Keyがあり目や口を変形できます。

ここから本題です。
Shape Keyの変形を固定するには固定したいShape Keyを選んで Move To Top でリスト内の一番上に移動させます
Shape Keyの変形を固定するには固定したいShape KeyをShape Keysリストの一番上に移動させます
口を開けた face_jaw_open_BS という表情で固定したければ、右の下向き三角ボタンをクリックして face_jaw_open_BS を一番上に移動させます。

2番目以降のShape Keyをすべて削除すれば変形を固定したままFBXファイルにエクスポートできます


変形の確認

確認のため、変形を固定したFBXファイルにエクスポートし、CLIP STUDIO MODELERにインポートしてみました。
Blenderでは非表示だった舌や歯が表示されていますが、変形していることが確認できました。

ほかのモデルでも同じ方法で変形を固定できます。

© Unity Technologies Japan/UCL


関連ブログ

[Blender] CLIP STUDIOにUnity3DやMMDのキャラクターを移植する方法
BlenderのモデルデータをMMDに変換する方法
[Blender] ボーンを削除したらメッシュが動かないときの直し方
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
[Blender] Pythonで複数の設定を一瞬で編集する方法

以上、参考になれば幸いです。

2016年10月8日土曜日

[Blender] CLIP STUDIOにUnity3DやMMDのキャラクターを移植する方法

How to port 3D human models to CLIP STUDIO

MMDモデルの「プロ生ちゃん」(PMXファイル)とUnity3Dアセットの「サファイアートちゃん」(FBXファイル)をCLIP STUDIO用3Dキャラクターに移植できたのでその方法をまとめました。
blog.fujiu.jp CLIP STUDIO に Unity3D や MMD のキャラクターを移植する方法

CLIP STUDIOに移植するとマンガ・イラスト作成ソフトのCLIP STUDIO PAINTやCG動画作成ソフトのCLIP STUDIO ACTIONで使えるようになります。
移植には3次元CG編集ソフト Blender などを使います。
CLIP STUDIO MODELERはハングアップすることが多いため移植中に起こったトラブルはすべて自己責任で処理するようお願いします。
また、各ソフトの操作説明は省略します。


環境

  • Windows 10
  • CLIP STUDIO MODELER 1.6.3 無料版 (以下、MODELERと省略します)
  • Blender 2.77a + PMXインポーターアドオン(改変Blender2Pmx)
  • PMX Editor 0.2.2.2
  • PMX2FBX.exe (Nora氏が公開しているUnity3D用ユーティリティ MMD4Mecanim に含まれるコマンド。PMXファイルをFBXファイルに変換するのに使います)


モデルを体・頭・髪の3つに分ける理由

大まかな手順を説明すると、モデルの体・頭・髪ごとのFBXファイルを作成してMODELERにインポートするだけです。
ただし、過去のブログ MakeHumanでCLIP STUDIO用3Dキャラクターを作る方法 のように必ずしも体・頭・髪に分ける必要はありません。
CLIP STUDIO PAINTでは頂点モーフが使えませんが、顔のパーツを表情ごとに分けての用意すれば差し替えることができます。
体は衣装ごとに、髪は髪型ごとに分けて用意すれば差し替えることができます。


[Unity3D・MMD共通] 体のパーツをBlenderでFBXファイルにエクスポートする

MMDモデルの場合はBlenderにインポートする前にPMX Editorで次の通りに編集しておきます。特にモーフは削除しないと MODELER がハングアップすることがあります。
  • 全ての親ボーン、センターボーン、モーフ、剛体、Jointは全て削除する
  • 上半身ボーンの親を下半身ボーンに変更する
  • あらかじめTポーズにした方がいい

移植したいモデルをBlenderにインポートして次の通りに編集します。
  • メッシュは頭・目・髪などを削除し、首から下を残す
  • ボーンは頭を含めて頭から下を残して他(髪のボーンなど)は削除する。頭の末端ボーンはあれば残す
  • 頂点グループに影響がないボーン(Rootなど)を削除する
  • 表示しないパーツのメッシュを削除する
  • 腕や手首の捻りボーンは削除した方がいい
  • 親指の向きを人差し指と同じ向きにそろえた方がいい
  • 指のボーンが4本以上で構成されている場合は削除して3本に減らす
    Blenderでボーンを削除するときの注意点は過去のブログ
    [Blender] ボーンを削除したらメッシュが動かないときの直し方
    にまとめてあります。
  • 衣装がスカートの場合、スカートの頂点グループのメッシュにスカート用マテリアルを割り当てる

最後のスカートは、後述するMODLERのスカート設定でスカートのメッシュをマテリアル名で指定する必要があるため特別な措置です。
サファイアートちゃんの衣装 ClothOuter を例に説明します。
この衣装は Sapphi_clothes というマテリアルが割り当てられています。

Sapphi_clothes マテリアルをコピーして Skirt_Sapphi_clothes というマテリアルを作り、スカートの頂点グループに割り当てます。

こうしておくとMODLERで Skirt_Sapphi_clothes のマテリアルを選んでスカート設定できるようになります。
サファイアートちゃんのスカートは複数の衣装が重なっているのでこの作業を全てのスカートの頂点グループに行います。

以上の編集が済んだらFBXファイルにエクスポートします。


[Unity3Dの場合] 顔のパーツをBlenderでFBXファイルにエクスポートする

  • メッシュは顔、目、耳などを残して他は削除する
  • ボーンは頭を含めて頭から上を残して他(首から下)は削除する
  • 髪のボーンは削除する

以上の編集が済んだらFBXファイルにエクスポートします。


[MMDの場合] 顔のパーツを PMX2FBX.exe でFBXファイルに変換する

顔パーツに必要なメッシュとボーンは [Unity3Dの場合] と同じです。
ただし、原因は不明ですが自分の環境ではMMDモデルの顔をBlenderでFBX化すると MODELER がハングアップしてしまいます。
PMX Editorでモーフ、剛体、Jointを削除した顔のみのPMXファイルを作り PMX2FBX.exe でFBXファイルに変換したら MODELER にインポートできました。

ちなみに自分の環境ではPMX2FBX.exeでFBX化したモデルとBlenderにPMXをインポートしてFBX化したモデルとでは2.5倍のスケール差がありました。
そのためBlenderにインポートした体と髪を、顔と同じスケールに倍率修正する必要がありました。


[Unity3D・MMD共通] 髪のパーツをFBXファイルにエクスポートする

MMDモデルの場合はPMX Editorでモーフ、剛体、Jointを全て削除してからBlenderにインポートします。
  • メッシュは髪と付随するアクセサリーを残して他は削除する
  • ボーンは頭を含めて頭から上を残して他は削除する
以上の編集が済んだらFBXファイルにエクスポートします。


MODELER に体のFBXファイルをインポートする

MODELER に体のFBXファイルをインポートして標準ボーンマッピングを行います。
この操作は MakeHumanでCLIP STUDIO用3Dキャラクターを作る方法 にまとめてあります。

スカートを着用したキャラクターならスカート設定をします。

脚がスカートを突き抜けないようコライダーを設定します。

長い髪に物理演算を入れる場合は、髪が体を突き抜けないように物理設定で衝突グループやジョイントを設定をします。
揺らせたいところがあれば物理演算とジョイントを設定します。


MODELER に顔のFBXファイルをインポートする

顔をインポートします。位置や向きがずれる場合は数値入力して調整します。


MODELER に髪のFBXファイルをインポートする

顔をインポートします。位置や向きがずれる場合は数値入力して調整します。
揺らせたいボーンには物理演算とジョイントを設定します。


ここまで完成したら
ファイル - 新規素材として登録
でCLIP STUDIO PAINTなどで使えるようになります。


注意点

  • Blender や PMX2FBX.exe で作成したFBXファイルはCLIP STUDIOでは動作保証外です。
  • 各モデルのライセンスには十分にご注意下さい。
  • いかなるライセンスであってもライツホルダーでなければCLIP素材に出品することはできません。


関連ブログ

[Blender] ボーンを削除したらメッシュが動かないときの直し方
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
[Blender] Pythonで複数の設定を一瞬で編集する方法
MakeHumanでCLIP STUDIO用3Dキャラクターを作る方法
BlenderのモデルデータをMMDに変換する方法

以上、参考になれば幸いです。