2014年8月23日土曜日

XPパソコンにCentOS Linuxを上書きインストール

Windows XPの時代に買ったノートパソコンがあるのですが、勿体なくて処分できずにいます。
かといってOSがXPのままというのも問題がありそうです。
前回は VirtualBoxにCentOSをインストールしましたが、今回は実機にCentOSをインストールしてみます。

インストール先の環境

・32bit PentiumM (シングルコアでHTTすらない)
・512MBのRAM


CentOSのISOイメージファイルのダウンロード

XPは使いたくないのでWindows8のPCでダウンロードしました。
インストール先のPCはCPUが32bitなので下のURLからi386版をダウンロードします。
http://wiki.centos.org/Download

このブログを書いている時点では、32bit版はCentOS6.5が最新版のようです。
CentOS-6.5-i386-bin-DVD1.iso というファイルをダウンロードしました。


ISOファイルをブート可能なUSBメモリーにコピーするのはNGらしい

UNetbootinというフリーウェアを使ってUSBメモリーにISOファイルの内容をコピーしてインストールを試みました。
http://www.forest.impress.co.jp/docs/review/20090907_312720.html
この方法だとブートは出来るのですがインストールの途中で失敗します。ライティングソフトを使ってDVD-Rに書き込んだ方がいいようです。
ファイルのダウンロードやDVD-Rへの書き込みはWindows8で行いました。


DVD-Rからブートしてインストールする

ISOファイルの内容をDVD-Rに書き込みます。ライティングソフトがISOファイルの書き込みに対応してなければフリーウェアのImgBurnを使うといいと思います。
XPパソコンをDVD-RからブートさせるためBIOS画面を開いて設定します。
昔はやったテカテカの液晶なので写真が撮りづらいです。


インストール

インストールは2時間くらいかかったと思います。
特に苦労することなく出来ました。
PC本体の無線LANのボタンを押さないと無線LANが有効にならないとか、Firefoxのバージョンがやたら古いとか気になるところがいろいろあります。
インストールオプションはDesktopとしてインストールしました。Workstationを選んだ方がよかったかも?


この先どうする?

XPのまま放置するよりはいいと思ってCentOSをインストールしてはみました。
XPに比べるとCentOSの方が軽快に動作しているするような気がします。
この先の使い道は人それぞれですが、Webアプリの開発用サーバーとか、svnやgitのサーバー、USBハードディスクをつなげてsambaをインストールしてNASとして使う、などがあるかと思います。
XPの代わりとして使うならCentOSよりはUbuntuやKNOPPIXの方がいいかもしれません。

タッチパネルのPCならx86版Androidをインストールするのもいいと思います。


関連ブログ

VirtualBoxにCentOS7.0をインストール
Windows8をVMWare Playerにインストールする
[Android] Android4.0をVmwareやVirtualBoxで起動する
[Android] x86用Android4.0(ics-x86)はVmwareで使えるか?
[[Android] VmWare PlayerでAndroidをデバッグする


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

2014年8月16日土曜日

VirtualBoxにCentOS7.0をインストール

CentOS on VirtualBox
バーチャル・プライベート・サーバー・サービスのConoHaに登録してみました。
http://www.conoha.jp/
ConoHaで利用できるOSはLinuxディストリビューション各種やWindows Serverが選べます。ISOイメージの持ち込みも可とのことです。
リーズナブルなのはLinuxで、デフォルトではCentOSが使えます。
ConoHaデビューする前に自分のパソコンで練習したいということで仮想環境にCentOSをインストールしてみました。


環境

・64bit版 Windows8


uEFI(BIOS)の設定変更

今回はVirtualBoxを使うので仮想化機能を有効します。
大抵のパソコンはCPUの仮想化機能を使わないように初期設定されています。
uEFI(BIOS)のセットアップ画面を起動して、仮想化機能をEabledに変更します。
IntelのCPUは
Intel Virtualization Technology
Intel VT-d Feature
の両方をEabledにします。

AMDのCPUはAMD-V や Secure Virtual Machine Mode という項目を有効にします。


VirtualBoxのインストール

ConoHaはKVMによる仮想化OSを提供しているとのことですが、WindowsをKVMのホストOSにすることはできないのでVirtualBoxを使います。
VirtualBoxのインストールは過去のブログに記載済みです。
Windows8 を VirtualBox にインストールする
最新のVirtualBoxをダウンロードしてインストールして下さい。


CentOSのダウンロード

CentOS公式サイトからISOファイルをダウンロードします。
http://www.centos.org/download/

今回は「DVD ISO」をダウンロードしました。

ちなみに旧バージョンの6.5は下記URLからダウンロードできます。
http://isoredirect.centos.org/centos/6/isos/x86_64/


VirtualBoxにCentOSのインストール

ConoHaの1GBプランで使うことを想定してメモリーサイズは1024MBに設定します。
CPUのコア数は設定ボタンをクリックしてシステムのプロセッサーから設定できます。
仮想環境を作ったら起動してISOファイルをマウントしてインストールを進めます。
rootパスワードとユーザー作成して再起動するとログインできます。
初期設定のまま進めたらX Windowがインストールされませんでした。


インストールし直したい

X Windowがインストールされなかったのでやり直したい、と思ったらこの環境を残したままインストールし直すことができるのが仮想環境のいいところです。
もう一度インストールしてみたら途中の「ソフトウェアの選択」が最小限になっていたのでX Windowが使えなかったようです。
このボタンをクリックして「サーバー(GUI)」を選んでインストール直しました。
結果はこの通り。


その後は

起動するとネットワークがオフになってるのでオンにしました。
ConoHaのVPSと同じ環境にするなら少なくともApache、PHP、MySQL、WordPressをインストールして使えるようにする必要があります。
実際に使ってみるとUbuntuとかWindows Serverの方が良かったと思うかもしれません。
じっくり使ってみて納得できる手段でConoHaデビューするといいと思います。


関連ブログ

[Android] Android4.0をVmwareやVirtualBoxで起動する
Windows8 を VirtualBox にインストールする
[Android] VmWare PlayerでAndroidをデバッグする
Windows8をVMWare Playerにインストールする
[Android] x86用Android4.0(ics-x86)はVmwareで使えるか?

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

2014年8月9日土曜日

[Unity3D] 透視投影と平行投影を合成するには[Unity Chan]

How to blend 2D veiw and 3D view
2014年4月、ゲーム開発エンジンUnityのマスコットキャラクター「ユニティちゃん」が公開されました。
早速使ってみました。

ユニティちゃんを表示するまで

・公式サイト http://unity-chan.com/ から UnityChan.unitypackage をダウンロードする
・Unityを起動してNew Projectを作成する
・ダウンロードした UnityChan.unitypackage をUnityの Assets フォルダーにドロップする
・UnityChanフォルダーのPrefabsPrefabフルダーのunitychanをHierarchyにドロップする

以上のUnityの基本的な操作でユニティちゃんを表示することができました。
さらにDirectional Lightを配置して背景を適当に作ってみた結果が下のスクリーンショットです。


3Dならではの問題

正面のユニティちゃんは自然に表示されます。
カメラ付近の右や左にユニティちゃんをに配置すると不自然な見え方になります。
これは遠近感を表現するため近くのものは大きく、遠くのものは小さく表示されるためです。

カメラのInspectorで、ProjectionをPerspectiveからOrthographicに変更すると遠近感がなくなりアニメのような表示になります。
Perspectiveは遠近法や透視投影などと呼ばれる投影方法です。OpenGLのglFrustum()に相当します。
Orthographicは正射影や平行投影(並行投影)などと呼ばれる投影方法です。OpenGLのglOrtho()に相当します。
ユニティちゃんはOrthographicで表示してみます。
視野の広さは size で調整します。

個人的にはユニティちゃんはOrthographicで表示した方が好みです。
ところが背景の奥行き感がなくなってしまいました。


キャラクターは2D、背景は3Dにしたい

ユニティちゃんはOrthographic(平行投影)でアニメのように、背景はOrthographic(透視投影)で立体的に表示する方法を試してみました。


開発環境

・64bit Windows8
・Unity3D 4.3.4


ユニティちゃんのLayerを設定

UnityChanのHierarchyでUnityChanを選択し、InspectorのLayerからAdd Layerを選択します。

User Layoer 8 に「Ortho Layer」と設定しておきます。


透視投影用のMain Cameraの設定

初期状態で「Main Camera」というカメラが設定済みだと思います。
このカメラを背景用とします。
Main CameraのInspectorを開き、ProjectionをParspectiveにしておきます。
そして、Culling Maskから先ほど追加した「Ortho Layer」をオフにします。
これでユニティちゃんが表示されなくなりました。


平行投影用のカメラのを追加

メニューから
GameObject - Create Other - Camera
で新しいカメラを追加します。
追加したカメラが区別できるように、名前はCamera 2としておきます。
Camera 2は
Clear Flags を Depth Only、
Culling Mask を 「Otho Layer」に設定します。
ProjectionはOrthographicにしてください。

「Ortho Layer」に設定したユニティちゃんがCamera 2の視界に入るように位置やSizeを調整して下さい。


各カメラのDepthの設定

Sceneに複数のカメラを持たせると、Depthが小さいカメラから順に描画されます。
背景用カメラのDepth を 平行投影用のカメラのDepthより小さい設定にします。
今回はMain CameraのDepthを0、Camera 2のDepthを1にしました。
これでユニティちゃんの後ろの背景は立体的に、ユニティちゃんはアニメのように表示することが出来ました。


ParspectiveとOrthographicの比較

左側がParspective、Orthographicで表示してます。
左右対称にしただけで位置もポーズもほとんど同じです。
見え方が全然違いがはっきり分かります。


Orthographicの問題

Orthographicで表示されるオブジェクト(ユニティちゃん)はカメラから離れた場所にいても小さく表示できません。
2D表示に特化したゲームならそれでいいかもしれません。
奥行きを表現したい場合はカメラとの距離に応じてScaleを小さくするプログラムが必要です。


実用的な使い方

3Dと2Dの表現を混在させるのに便利です。
下の画像はプロ生ちゃんのドット絵をOrthographicのレイヤーに、背景をParspectiveのレイヤーに表示させた例です。
プロ生ちゃんの素材はこちらからダウンロードできます。
http://3d.nicovideo.jp/works/td8608


影響を受けたのはストリートファイターIV

「(スーパー)ストリートファイターIV」グラフィックス講座(後編)
http://game.watch.impress.co.jp/docs/series/3dcg/20111201_494567.html
によると、ストリートファイターIVは「X軸方向のみ正射影でレンダリング」という処理をしています。
この方法なら画面の左右にいても大きさが変わらないし、遠ざければ小さく表示されます。
今回は同じ事をしているわけではありませんが、近いこと(?)がプログラムなしでできたので良しとします。

関連ブログ

[Unity3D] Unityでプロ生ちゃんMMDモデルを扱う
[Unity3D] MonoDevelopのテキストエディターを使いやすくする
[Unity 3D] Blender could not be found.を解決するには
[Unity] オーディオの音量が小さい


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

2014年8月2日土曜日

[Android] Unable to execute dex でアプリが起動しなくなった

How to fix the dex
今まで動作していた開発中のAndroidアプリが突然エラーが起きて動かなくなってしまいました。

エラー内容

エラーはLogCatではなくコンソールに表示されます。


環境

・Windows8
・Eclipse LUNA + Android SDK


原因と解決

原因はAndroid SDK Managerにある新しいAndroid SDK Build-tools Rev.20を興味本位でインストールしたことでした。
このAndroid SDK Build-tools Rev.20をアンインストールしたら直りました。
アンインストール方法は、Android SDK Managerを起動して Android SDK Build-tools Rev.20 にチェックをつけて画面右下のDeleteボタンをクリッです。
Android SDK Build-tools Rev.20はAndroid Wear(ウェアラブルデバイス?)をサポートするだけのようです。

build targetsがAndroid 4.2 (API level 17) までをサポートするアプリを作るならAndroid SDK Build-tools Rev.17が必要です。

Build toolsの公式説明はこちら
https://developer.android.com/tools/help/index.html

最新バージョンをインストールすればいいってものではないようです。
ちなみにdexとはDalvik用実行ファイルの拡張子のようです。


関連ブログ

[Android] Android-SDKでやってはいけないこと
[Android] OSをバージョンアップするとアプリが動かなくなる理由
[Android] Wi-FIルーターに接続できない、接続後も不安定
[Android] 端末を充電中に画面をつけたままにするには
[Android] アプリの履歴を調べるアプリの作り方


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

2014年7月26日土曜日

[Java] Eclipseプラグイン開発のトラブルシューティング

Troubleshooting developing the Eclipse plugins
統合開発環境・Eclipseはプラグインにより機能を拡張することが出来ます。
Java言語を使ってプラグインを自分で開発することもできます。
公開できるようなプラグインは作ってませんが開発しようとしたらトラブルが多く発生したので、それぞれの対策方法をまとめてみました。
他の方法で解決できるトラブルやここに載ってないトラブルも多々あると思いますのでご了承ください。


開発環境

次の環境で開発しました。
・Windonws8 64bit
・Eclipse Juno SR1 + 日本語化プラグイン


必要なプラグイン

Eclipseプラグインを開発するには、Eclipseに次の二つのプラグインをインストールします。
一般ツール - Eclipseプラグイン開発環境
Eclipse SDK


プラグイン開発のリファレンスはどこにある?

まず最初に目を通すべきリファレンスはEclipseの
ヘルプ - ヘルプ目次
を開き、
プラットフォーム・プラグイン開発者ガイド(Platform Plug-in Developer Guide)にあります。
ただし、日本語化プラグインをインストールしても日本語化されない部分が多いです。


マニフェストの拡張で、新規の下に汎用(Generic)しか表示されない

Eclipse SDKのプラグインをインストールすれば直ります。


アクセス制限、必須ライブラリーは制限されているためアクセスできません

アクセス・ルールの追加設定が必要です。
上の画像だと
アクセス制限: 型
TextViewer のメソッド getTextWidget() は必須ライブラリー D:\eclipse-jee-galileo-SR1-win32\eclipse\plugins\org.eclipse.jface.text_3.5.2.r352_v20091118-0800.jar で制限されているためアクセスできません
とあるので、プロジェクトのプロパティーを開き
Javaのビルド・パス - ライブラリータブ - プラグイン依存関係
を編集ボタンで開き、型のアクセス・ルールにアクセス可能なルールに
org/eclipse/jface/**
を追加します。
※アクセスルールに追加するライブラリー名はドット区切りではなくスラッシュ区切りです。
@SuppressWarnings("restriction") というアノテーションでビルドエラーを回避できますが実行時にエラーが起こるかもしれません(未確認)。


実行時にClassNotFoundException

マニフェストの設定漏れです。
上の画像だと
java.lang.NoClassDefFoundError: org/eclipse/ui/forms/editor/FormEditor
とあるので、マニフェストの依存関係の必須プラグインに
org.eclipse.ui.forms
を追加します。


(クラス・インターフェイス)を解決できません。必要な.classファイルから間接的に参照されています のビルドエラー

マニフェストの設定漏れです。
上の画像だと
型 org.eclipse.ui.texteditor.ITextEditor を解決できません。必要な .class ファイルから間接的に参照されています。
とあるのでマニフェストの依存関係のインポート済パッケージに
org.eclipse.ui.texteditor
を追加します。


Eclipseが起動しなくなった

Eclipse SDKプラグインをアンインストールすると
エラーが発生しました。ロ・グファイル を参照してください。
と表示されEclipseが起動しなくなったり、スプラッシュスクリーンが表示されなくなることがありました。
Eclipseフォルダーの configuraiton\connfig.ini の が壊れたのが原因です。
Eclipseをダウンロードし直して、config.iniだけ上書きしたら直りました。
eclipse.application=
の行を
eclipse.application=org.eclipse.ui.ide.workbench
に置き換えても直りました。


関連ブログ

[Windows8][Android] EclipseをXP互換モードで起動する理由(Can't bind to local 8600 for debugger)
[Android] Unity + Eclipse のRuntimeException unable to link library を解決する
[Android] Unity + EclipseのClassNotFoundExceptionを解決する
[Android] Unity + Eclipse の unityplayerproxyactivity.jarの欠落を解決する

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

2014年7月19日土曜日

[Fiferox] Firefox30をインストールしたらURLの左に隙間が出来た

URL offset trouble on Firerox30
Forefoxを30にバージョンアップしてからアドレスバーに表示されるURLの左側にスペースが出来てしまいました。
Firefoxのリセットという機能を使って初期化してみましたが隙間ができたままです。
旧バージョンから使い続けて都度バージョンアップしてきたFirefoxに起こる現象です。
ポータプル版Firefoxではこの現象は起こりませんでした。


解決方法

C:\Program Files (x86)\Mozilla Firefox\distribution\bundles\websitelogon@truesuite.com
フォルダーの
chrome.manifest
というファイルを削除したら直りました。


なぜ解決できたか

Googleで
firefox space URL left side
という言葉で検索したら下記のコンテンツにたどり着きました。
http://forums.mozillazine.org/viewtopic.php?f=9&t=2841677
ここに書いてあるとおりフォルダーを丸ごと削除したら隙間が消えたため、chrome.manifestが原因と分かりました。
about:configの設定では直せないようです。


な関連ブログ

[Firefox] 消えてしまったブログのHTMLソースを復元するには
JavaScriptをWebコンテンツを見ながらデバッグする [Intenet Explorer] [firefox]
HTMLのソースをWebコンテンツを見ながら素早く見つける [Internet Explorer][Firefox]
HTMLソースのミスやエラーを素早くチェックする
[Windows] FirefoxでFlashがクラッシュ

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

2014年7月12日土曜日

[GIMP] GIFアニメーションの作り方

How to create the animation GIF files
2014年6月、TwitterにGIFアニメーションの投稿がサポートされました。
今までもGIFアニメーションの投稿は出来ましたがスマートフォンから見るとアニメーションしないなど問題がありました。
今回のサポートにより投稿したGIFアニメーションはMP4に変換されPCやスマートフォンでも正常に表示されやすくなりました。
GIFアニメーションを作ってみまたのでその方法をまとめました。


環境

・Windows8 64bit
・GIMP 2.8.10
GIMPはオープンソースの画像編集ソフトです。Photoshopに似た感覚で操作できます。
http://www.gimp.org/


GIFアニメーションの仕組み

GIFアニメーションはGIFフォーマットの画像を表示する順にまとめたものです。
テレビアニメの作画のように表示させたい画像を用意する必要があります。
次の画像に切替えるまでの時間の長さを指定することが出来ます。


動画ファイルとの違い

GIFアニメーションには音声を含めることができません。
動画再生用コーデックは不要で、Internet Explorer等で開くことができます。
他に、最大発色数は256色とか圧縮方式などの違いがあります。


アニメーションにするための画像を用意する

GIFアニメーションをTwitterに投稿するとMP4フォーマットの動画に変換されるようです。
Twitterに投稿できるGIFアニメーションは、容量が5MB以内という制限があります。5MB以内でもフレーム数が多すぎると投稿できないようです。
今回作るGIFアニメーションは30fps=1枚当たりの表示時間が33.333...ミリ秒とします。
プロ生公式暮井慧(プロ生ちゃん)MMDモデルを使って、MMDでプロ生ちゃんが吹っ切れたモーションを1枚ずつ画像に出力してみました。
プロ生ちゃんMMDモデルはこちら
http://3d.nicovideo.jp/works/td8608

全部で15フレーム作りました。
元ネタはいませんさんの「【ニコニコ動画】プロ生ちゃんが吹っ切れた」です。
http://www.nicovideo.jp/watch/sm19626732


GIMPに画像ファイルをレイヤーとして取り込む

出力した画像をレイヤーとしてGIMPに取り込みます。エクスプローラーで画像ファイルを複数選んでGIMPにドロップすれば取り込めると思います。
GIFアニメーションにすると下のレイヤーから上のレイヤー順に画像が切り替わります。
もしレイヤーが上下逆に読込まれてしまったら
メニューの
レイヤー - 重なり - レイヤー順序反転
で修正できます。
背景が透過色の場合は白などで塗りつぶして下さい。


GIFファイルとしてエクスポート

メニューの
ファイル - Export As
で保存先を指定します。ファイル名の拡張子を.gifにするとGIFファイルとして出力されます。
エクスポートの画面で次のように指定します。
出力したGIFファイルをInternet Explorerなどで開くと見られます。


結果はこの通り

完成したGIFファイルをTwitterに投稿するとこんな感じになります。


動画ファイルをGIFアニメーションに変換するフリーウェア

今のご時世、GIFアニメーションより動画ファイルを作る方が簡単です。
MMDはAVIファイルに出力することは出来ます。
古溝 剛さん制作のGiamというソフト( http://homepage3.nifty.com/furumizo/ )を使うとAVIファイルをGIFファイルに変換することが出来ます。

MMDからAVIファイルに出力した動画を、GiamでGIFアニメーションに変換してGIMPで編集してみました。
左は「ななみ式重音テト」、右は「ななみ式唄音ウタ(デフォ子)」のMMDモデルです。
AVIファイルをGIFアニメーションに変換した方が短時間で済みます。
そもそもTwitterが動画ファイルの投稿に対応すればこんな苦労は不要なのですが。


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