2016年2月27日土曜日

[Windows] 掃除しやすいキーボードにこだわる

To dwell on the cleanable keyboard

パソコンで文字を入力するのになくてはならないのがキーボードです。
キーボードは手が触れるモノなので毎日使えば汚れが気になります。
掃除のしやすいキーボードに満足できるまでの出来事をまとめてみました。


環境

  • Windows 8.1
  • USB接続のキーボード


発端はキーボードを汚したくないから

下の画像はデスクトップPCに付属するキーボードです。
この形状の特徴はキーの隙間に埃が入り込み、長年使ってると見栄えが悪くなることです。
キートップを外して掃除する方法もありますが、それなりに手間のかかる作業です。
掃除しやすい形状のキーボードを買うことにしました。


掃除しやすそうな低品質なキーボード

見た目が掃除しやすそうなので買った「独立キータイプ」のキーボードです。
ディスカウントショップでよく見かけます。
キートップがモグラ叩きのモグラのようにミゾからでています。

実際に使ってみるとキートップとミゾの隙間にホコリが溜まりやすいです。
写真は割愛しますがすぐにミゾが埃だらけになりました。
その結果、キートップがストローク中に摩擦が起きタイピングしても接点まで潜らなかったり、斜めに埋没して文字を入力できないことが多発します。
CtrlキーやエンターキーやTABキーなど頻繁に使うキーほど入力できないことが多く、ストレスの溜まりやすいキーボードでした。


掃除しやすく入力もしやすいキーボード

USBキーボードが認識されないトラブル が起きたのをきっかけに買い換えたのが「丸洗いできるキーボード」です。
ディスカウントショップで見かけませんが独立キータイプに匹敵する安さです。

キートップがむき出しなので摩擦が発生する部分にホコリが溜まらない構造です。
実際に使ってみると独立キータイプのようにミゾに引っかかることはありません。

ただしキートップがむき出しのため、タイピング音がうるさいというデメリットがあります。
タイピング音が気になりますが、キーボードは文字を入力するための周辺機器なので接触不良が無く入力できる点は独立キータイプより軍配が上がります。
品質が低そうな値段でしたが意外にも買ってよかったと思えるキーボードでした。


関連ブログ

[Windows] USBキーボードが認識されないトラブルを直すまで
ノートPCのメモリー(RAMモジュール)を交換しました
夏に負けないパソコンのメンテナンス2015年版
[ThinkPad] サーマルファン故障
ノートPCのハードディスクをSSDに交換
[BIOS] 起動しなくなったHP ProLiant ML115 G5が直った

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

2016年2月20日土曜日

[Windows] USBキーボードが認識されないトラブルを直すまで

How to stabilize the USB keybord recognition

2016年1月頃からパソコンの電源を入れるとUSBキーボードが認識されないことが起きるようになりました。
たまに認識されることもあります。
USB端子を刺し直せば必ず認識されます。
キーボード以外のUSB接続の周辺機器は正常に動作しています。
デバイスマネージャーでも正常に動作していると表示されます。

原因は不明ですが、色々試して認識されるようになるまでをまとめました。


環境

  • Windows 8.1 64bit

やってみたけど直らなかったこと

  • USB端子を別のUSBポートにつないでみる
  • USBキーボードを買い換える
  • デバイスマネージャーのUSBキーボードの項目を削除して再起動する

キーボードをつなぎ替えたり買い換えても改善しなかったのでキーボードの故障ではないようです。


試していないこと

  • Windows OSの再インストール

ハードウェアの故障でないならソフトウエアの問題です。
Windowsの再インストールで直る可能性がありますが、手間と時間がかかるので今回は見送りました。
2016年1月のWindows Updateが怪しいです。


結論・ハイバネーションをオフにしたら直った

ハイバネーションを無効に設定したところUSBキーボードが必ず認識されるようになりました。
Windows8.1は初期設定でハイバネーションが有効にされています。
ハイバネーションを無効にするには Command Promppt を管理者として実行します。

管理者権限の Command Promppt に次のコマンドを入力します。



これでハイバネーションがオフになります。


ハイバネーションとは

ハイバネーションが有効の場合、シャットダウンする際にメモリーの一部の内容をディスクドライブに保存します。
次の起動時に保存した内容をメモリーに読み込んで一部のプログラムの読込と実行を省略するため、起動が高速化されるメリットがあるとのことです。

ただしSSDにWindowsをインストールしているパソコンでは、ハイバネーションを無効にしても起動時間は変わりませんでした。


ハイバネーションのデメリット

ハイバネーションが有効だとシャットダウン時にメモリーの内容をディスクドライブに書き込みます。
そのため次のようなデメリットがあります。
  • シャットダウンが遅い
  • ディスクドライブの空き容量が減る
  • USBキーボードが認識されないことがある

ハイネーションで起動時間が速くならないPCではデメリットの方が大きいという結果になりました。


関連ブログ

ノートPCのメモリー(RAMモジュール)を交換しました
夏に負けないパソコンのメンテナンス2015年版
[ThinkPad] サーマルファン故障
ノートPCのハードディスクをSSDに交換
[BIOS] 起動しなくなったHP ProLiant ML115 G5が直った

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

2016年2月13日土曜日

[Android] Xamarin でアプリを作ってみました

How to create Android apps with the use of Xamarin

Xamarinは「C# で iOS、Android、Mac、Windows アプリを開発」できる統合開発環境です。
日本ではエクセルソフトが販売・サポートをしています。
http://www.xlsoft.com/jp/products/xamarin/

2016年3月、企業のXamarinはマイクロソフトに買収されました。
開発ツールのXamarinはエディションによりますがVisual Studioに組み込まれたり無償化されます。
従来よりライセンスを入手する機会が広がりました。
2016年4月2日追記

Xamarinはこのブログを書いている時点では次のエディションに分かれています。
  • Xamarin Starter
    Visual Studio 2015にも付属する無料版。かなり制限あり
  • Xamarin Indie
    月額サブスクリプション制、少し制限あり
  • Xamarin Business
    年間サブスクリプション制、一番人気といわれる実用レベルのエディション
  • Xamarin Business
    年間サブスクリプション制、制限無しの全部入り

2015年12月、Xamarinがゲームアプリ開発者向けに1年分の無料サブスクリプションを配布しました。
Indie Game Developers Get Xamarin for Free
https://blog.xamarin.com/indie-game-developers-get-xamarin-for-free/

申し込んでみたら5日後に返信が来たので早速使ってみました。
今回の無料サブスクリプションは2015年12月31日までの期間限定でしたが、過去にも似たようなキャンペーンがあったので興味があればチェックしておくといいと思います。


環境

  • Windows8.1 Home Edition
  • Visual Studio Community 2015
  • Android SDK Windows


Visual Studio と Android SDKをインストールする

XamarinはExpress版のVisual Studioでは使えません。Community以上のエディションが必要です。
Visual Studio Community 2015 のインストール方法はこちら

Visual Studio Community/Professional/Enterprise のいずれも使えない場合は Xamarin.Studio で開発できます。

Android SDK はAndroid公式サイトの下の方の画面からダウンロードできます。

Android SDK をインストールして実行すると必要なファイルをダウンロードしてくれます。


Xamarinをインストールする

公式サイトでアカウント登録してXamarinをダウンロードします。

Androidアプリを作ることを目標とし Xamarin.Android をインストールしました。
Xamarin.Forms を使うには Xamarin.iOS も必要です。


Androidエミュレーターをインストールする

開発環境にAndroidエミュレーターをインストールしておくと開発中のアプリの動作確認に便利です。
Android SDKにエミュレーターが付属するのですが動作が遅く効率が悪いです。

XamarinからVirtualBoxを使ったXamarin Android Playerという高速なAndroidエミュレーターがが公開されているのですが、このブログを書いている時点では Xamarin Android Playerはサブスクリプションを支払っているXamarinユーザーにライセンスを提供しているようです。英訳が間違っていたらすいません。
http://developer.xamarin.com/guides/android/getting_started/installation/android-player/

マイクロソフトからWindows Professionalエディション向けにHyper-Vを使った Visual Studio Emulator for Androidが公開されてます。
HomeエディションのWindowsでは使えません。

どちらの使用条件にも当てはまらない場合は、実機を使うか、Android SDK付属のエミュレーターを使うか、自分でVirtualBoxにx86版Androidをインストールするか、BlueStacks などをインストールすれば動作確認できます。

[Android] Android4.0をVmwareやVirtualBoxで起動する (2012年のブログです)
[Android] 高速Androidエミュレーター・BlueStacks (2013年のブログです)


Visual Studioの設定を忘れるとエラーになる

Visual StudioのAndroid SDKのパスが未設定のままだと次のエラーが出ました。
値をNullにすることはできません
パラメーター名:path1

Visual Studioの
ツール - オプション
からAndroid SDKのパスを設定すればこのエラーは起きません。


Visual Studioを起動してXamarinをアクティベーションする

Visual Studio 2015を起動して
ファイル - 新規作成 - プロジェクト
を開くとVisual C#のカテゴリー内にAndroidがあります。

名前とソリューション名を入力してOKをクリックしたら準備できました。

log inをクリックしてXamarinアカウントのメールアドレスとパスワードを入力したらBusinessエディションとしてアクティベートされました。


動作確認する

新規のプロジェクトを作るとボタンをクリックした回数を表示するアプリのソースが自動でインポートされます。
エミュレーターでも実機でもこのアプリが動作すればインストール成功です。

Visual Studioの実行ボタンでどのエミュレーターを使うか選んで実行できます。

試しにボタンのクリックイベントをデリゲートからラムダ式に書き換えてみましたが、あっさり動作しました。

今までAndroidアプリは動作の遅いEclipseやAndroid Studioを使ってJavaで作ってきたので、Visual Studioで書いたC#のコードが動くのが信じがたい気分です。


アプリを作るには

Xamarinを使ってでできること・できないこと、Javaとの違いなどを把握する必要があります。
日本語で説明されているエクセルソフトの入門ガイドを参考にすると取っつきやすいと思います。
http://www.xlsoft.com/jp/products/xamarin/android_hello_world.html


Xamarin.Formsプロジェクトでエラーがでたら確認するべきこと

サブプロジェクト'XamarinForms.iOS' の作成中にエラーが発生しました。

Xamarin.Formsのプロジェクトを作る場合、iOSアプリを作らなくても Xamarin.iOS SDK がインストールされている必要があるようです。
Xamarinのインストーラーで Xamarin.iOS SDK をインストールすればこのエラー解決します。
エラーを無視して進めても Xamarin.iOS SDK がなければビルドできません。

どうしても Xamarin.iOS SDK をインストールしたくない場合は、ソリューションの中の Xamarin.Forms.iOS をプロジェクトをアンロードします。


メリット

Xamarinを使ってみて感じたメリットです。
  • Visual Studio で開発できる (Windowsのみ)
  • xamarin.Formを使えば複数のプラットフォーム向けにアプリをビルドできる


デメリット

デメリットもあります。
  • JavaやVB.NETでプログラミングできない
  • OS毎に開発が必要な部分がある
  • Mac用やiOS用にビルドするにはMacとXcodeなどが必要
  • ゲームエンジンUnityのAndroid向けプロジェクトをインポートできない

Businessエディションを使い続けるには年間サブスクリプションが必要です。


関連ブログ

Android Studioを使ってみました
[Android] Google Play Services APIを使うアプリが動かなくなった
[Unity3D] Unity5のプロジェクトをAndroid Studioにインポートする方法
[Java] Android StudioやEclipseのお節介な警告を消す方法
[Android] アナログ時計アプリをライブ壁紙に改造する
Live2Dを使ってみました

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

2016年2月6日土曜日

[Blender] Pythonで複数の設定を一瞬で編集する方法

How to automate editing in Blender

3次元CG編集ソフトBlenderはPython言語で機能拡張やバッチ処理をすることができます。
マイクロソフトOfficeシリーズがVisual Basic Application言語でマクロを実行できるのに似ています。
Pythonのスクリプトを使ったら無数のボーンの設定をもれなく一瞬で編集出来たのでその方法をまとめてみました。


環境

  • Windows 8.1
  • Blender 2.75a


Python言語の特徴

Pythonを他のプログラミング言語に比べた場合、特に次の2点が気になりました。
  • 変数名の宣言が不要
    変数名のタイプミスに気付きにくいです。
  • if文やfor文の入れ子はインデント(段落)で記述する必要がある
    見やすさのためではなく仕様です。
オブジェクト指向やラムダ式なども採用されているのでC#やJavaやVB.NETの経験者ならすぐに扱えると思います。


入門編・全てボーンの名前を表示してみる

ここからBlenderを使った説明です。
どのエリアでもいいので Python Console を開きます。

上の画面に映っているキャラクターはポケットクエリーズのクエリちゃんです。
3D ViewのObject Modeでボーンを選択した状態で Python Console に次のコードをコピーペーストします。
※改行やインデントのスペースは省略できません。


青い文字でボーンの名前が全て表示されました。


実用編・ボーンを移動禁止に一括編集する

下の画像はモデルデータを編集中の画面です。
Pose Editorでクエリちゃんの頭のボーンを間違って移動させたらこんなことになってしまいました。

人型モデルにポーズをつけるときはボーンの移動を禁止したほうが安全に操作できると思います。
移動禁止にするにはTransformのLocationのX・Y・Zそれぞれをロックします。

モデルによっては40個以上もあるボーンを一つずつ移動禁止にするのは骨の折れる作業です。
Pythonスクリプトを使えばこのような作業は一瞬で済みます。

3D ViewのObject Modeでボーンを選択した状態で Python Console に次のコードをコピーペーストします。
※改行やインデントのスペースは省略できません。


これで選択したボーンが全て移動禁止になりました。


オブジェクトやプロパティはツールチップに表示される

入力欄にマウスポインターを補バーさせるとオブジェクトやプロパティがツールチップに表示されます。
スクリプトで変更したいプロパティ名はこの方法で調べられます。



関連ブログ

BlenderのモデルデータをMMDに変換する方法
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
3次元CGソフト・Blenderの脱初心者を目指す
クエリちゃんMMDモデル更新
[Unity3D] 画面表示を左右反転させる方法
[Unity3D] 二つのscene(シーン)を一つにまとめる方法
[Unity3D] サイドバイサイドで立体視できるゲームを作るには
[Blender] obj2opengl.plをJava用に改造する
[Unity3D] Blender could not be found.を解決するには
[Unity3D] Unity4からUnity5へのバージョンアップでの変化

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

2016年1月30日土曜日

BlenderのモデルデータをMMDに変換する方法

How to convert FBX models into MikuMikuDance Models

前回のブログでUnityアセットのクエリちゃんのFBXファイルをBlenderに取り込んで編集する方法を内容を書きました。
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法

今回はBlenderに取り込んだモデルをMikuMikuDance(以下MMD)のモデルに変換する方法をまとめました。
blog.fujiu.jp BlenderのモデルデータをMMDに変換する方法

環境

  • Windows 8.1
  • Blender 2.76


Blenderですること

BlenderのモデルをMMDに変換する場合はPMXにエクスポートするアドオンが必要です。
この様なアドオンは有志により複数公開されてますが、モデルデータによって変換に成功するアドオンと失敗するアドオンがあります。
複数のアドオンを使えるようにしておくことをおすすめします。

Blender2PMXアドオンは頻繁に使わせてもらってます。
ようやく改変Blender2Pmxが完成しました | KAGAYAS
http://kagayas.com/blender_blender2pmxe_addon/


エクスポート時に Repeortエラーに ValueError と表示される場合の対処方法

Blenderは実行プログラム本体とテクスチャ画像のファイルが異なるドライブに保存されていると、エクスポート時にとエラーが起きることがありました。
例えばblender.exeがDドライブにインストールされ、編集中のテクスチャ画像のファイルがCドライブにある場合など。
変換するモデルのファイルはblender.exeと同じドライブに保存してください。

ValueError: path is on mount 'C', start on mount 'D'


PMX Editorですること

pmxに変換できたらおしまいではなく、PMX Editorで編集します。
PMX Editorはこちらのサイトからダウンロードさせていただきました。
ダウンロード: とある工房
http://kkhk22.seesaa.net/category/14045227-1.html

ダウンロードして展開したら30個くらいある全てのdllファイルをセキュリティの「ブロックの解除」をしないと実行中にクラッシュします。
「ブロックの解除」はdllファイルを右クリックしてコンテキストメニューのプロパティを開くと捜査できます。

PMX Editorが使えるようになったらBlenderからエクスポートしたPMXモデルデータを次のように編集します。
  • モデル名とコメントの登録
  • 大きさの調整
  • 材質の調整
    材質はBlenderでいうマテリアルのようなもの
  • ボーンの設定
    日本語化、場所と向きの調整、指のボーンをローカル軸化、「性能」の設定、IKボーンの追加、全ての親ボーンや撚りボーンの追加など
  • 肩の角度の初期設定
  • モーフの設定
    クエリちゃんの場合はヘッドセット消しや表情操作を追加しました
  • 表示枠の瀬邸
  • 剛体の設定
    BlenderのCollisionやRigid Bodyのようなもの
  • Jointの設定
    髪などの揺れものがどこにぶら下がっているかの設定

保存するときは上書きせずに別名で保存します。
少し変換作業をしたらMMDで動かして不具合がないか確認します。不具合があったら古いファイルを開いて編集をやり直します。
満足する出来になるまで数週間も数ヶ月もかかると思います。


関連ブログ

[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
3次元CGソフト・Blenderの脱初心者を目指す
クエリちゃんMMDモデル更新
[Unity3D] 画面表示を左右反転させる方法
[Unity3D] 二つのscene(シーン)を一つにまとめる方法
[Unity3D] サイドバイサイドで立体視できるゲームを作るには
[Blender] obj2opengl.plをJava用に改造する
[Unity3D] Blender could not be found.を解決するには
[Unity3D] Unity4からUnity5へのバージョンアップでの変化

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

2016年1月23日土曜日

[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法

The duplicate vertex groups should be normalized

3次元CG編集ソフト・Blenderのトラブルシューティングです。
Unityアセットの「クエリちゃん」をMikuMikuDance(以下MMD)に移植するためにBlenderを使いました。
クエリちゃんの指は3種類のポーズが用意されてますが、関節を自由に曲げることが出来ません。
MMDでの使いやすさを考慮して指のボーンを追加したのですが、当初はボーンの通りに指が曲がりませんでした。
「頂点グループ」など専門用語(?)や細かい操作の説明は省略します。


環境

  • Windows 8.1
  • Blender 2.76


クエリちゃんをBlenderに取り込む

クエリちゃんのFBXは次の内容が設定済でした。
・ボーン
・頂点グループ
・ウェイト(重さではなくボーンの影響の強さ)

これらを保ったまま指のボーンを追加する前に必要な手順は次の通りです。
  1. FBXファイルをインポートする
    !EXPERIMENTAL! Apply Transtormをオンにしたほうがいい場合と、オフにした方がいい場合があります。両方試してボーンの位置や向きが最適な方を編集します。
  2. ポーズをデフォルトにする
    取り込み直後は中を浮いているようなポーズですが、Action Editorで Chr_Reference|000_Def|000_Def:BaseAnimation を選択したらデフォルトのポーズになりました。
  3. マテリアルを修正する
    Blenderで正しく表示できるようにマテリアルを一つずつ修正します。
    特に顔は眉・左目・右目・口のテクスチャをそれぞれ独立して差し替えできるように分割しました。
  4. テクスチャを指定する
  5. ボーンの名前を変更する
    X-Asis Mirrorを有効にして左右反対側のボーンも自動で編集するための措置です。
    例:
    Chr_LeftShoulder → Chr_Shoulder.L
    Chr_RightShoulder → Chr_Shoulder.R
  6. ボーンの向きを修正する
    ※MMD付属モデルのようにボーンの向きが頂点グループに重なるように修正します。
  7. 足やつま先にIKボーンをつける
作業途中のクエリちゃん


指のボーンを追加する

3種類の手のポーズのうち、指がまっすぐに伸びているパーの手にボーンを入れることにします。
手を親として指のボーンを追加します。関節は各指に3つとしました。

ボーンごとに頂点グループを設定する

各ボーンと同じ名前の頂点グループを作ってそれぞれの頂点を設定します。

人差し指の先端

人差し指の真ん中
複雑な形の手から全部で30個の頂点グループを作るので慣れないうちは気が遠くなります。


曲げると明らかにおかしい

指を曲げてみるとボーンの通りに曲がりません。階段のようになってます。


原因は頂点グループの重複でした

初期設定のままだと手の頂点グループは指の先まで含まれてます。
手の頂点グループと今回新しく追加した指の頂点グループと重複したため正しく曲がらなかったようです。
手の頂点グループから指の頂点グループを削除しました。
これで指が曲がるようになりました。

ボーンを移動するとボーンに追随しなかったり変形してしまう場合は頂点グループの重複が原因かもしれません。
Blenderに頂点グループの重複を検索する機能があればいいんですね。




関連ブログ

クエリちゃんMMDモデル更新
3次元CGソフト・Blenderの脱初心者を目指す
[Unity3D] 画面表示を左右反転させる方法
[Unity3D] 二つのscene(シーン)を一つにまとめる方法
[Unity3D] サイドバイサイドで立体視できるゲームを作るには
[Blender] obj2opengl.plをJava用に改造する
[Unity3D] Blender could not be found.を解決するには
[Unity3D] Unity4からUnity5へのバージョンアップでの変化
[Unity3D] ゲーム画面をキャプチャしてMovie Studioで動画に編集する

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

2016年1月22日金曜日

[宣伝] 技術評論社・自律神経を整えるスマホアプリ100選

The advertisement

2016年1月22日、技術評論社から書籍「自律神経を整えるスマホアプリ100選」が発売されます。
自律神経を整え心身のバランスを取るアプリ100種を一挙紹介

全ページカラーで全てのアプリにスクリーンショットと編集者による解説が掲載されています。
スマートフォンを持っている人にもそうでない人にもおすすめしたい一冊です。

※拙著のアプリ「Eye元気!2」と「ザ・数唱」が掲載されました。