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] Firefox の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の設定では直せないようです。


※2016年7月1日、タイトルを修正しました。

関連ブログ

[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が動画ファイルの投稿に対応すればこんな苦労は不要なのですが。


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

2014年7月5日土曜日

[Unity3D] Unityでプロ生ちゃんMMDモデルを扱う

How to import the MMD models to Unity3D
プロ生公式暮井慧(プロ生ちゃん)MMDモデルをUnity3Dで動かしてみました。
プロ生ちゃんMMDモデルはこちら
http://3d.nicovideo.jp/works/td8608


Unity3Dとは

ゲーム開発ツールです。Blenderなどのモデリングツールで作ったモデルを取り込んでアニメーションさせることができます。
C#やJavaScriptでプログラムを書いてゲーム進行や条件判定をつけることもできます。


動作検証した環境

・64bit Windows8
・Unity3D 4.3.4
プロ生公式サイトではUnity用プロ生ちゃんモデルを公開予定としていますが、このブログを書いている時点ではまだ公開されてません。
Unityは得意だけどMMDは苦手という方はUnity用プロ生ちゃんモデルが公式に公開されるまで待った方がいいかもしれません。
2014年8月、Unity用プロ生ちゃん公式パッケージが公開されました。
http://pronama.azurewebsites.net/2014/08/20/kurei-kei-3d-model-unity-package/
以下は公式パッケージが公開される前の内容です。


新規Unityプロジェクトを作成する

Unityを起動して
File - New Project
新規のプロジェクトを作成します。
シーンも保存しておきましょう。


MMD for Unityをインストールする

下記GitHubにてMMDモデルデータをUnityにインポートするためのツールが有志により公開されています。
http://mmd-for-unity-proj.github.io/mmd-for-unity/howto.html

画面右上の「ZIP」ロゴの画像をクリックするとダウンロードできます。
このブログを書いてる時点でダウンロードしたMMD for Unityは
mmd-for-unity-proj-mmd-for-unity-v2.1b-0-gde6d097
というファイル名でした。

このZIPファイルを解凍し、UnityのProjectウィンドウのAssetsフォルダーにコピーします。
コピーはドラッグ&ドロップの操作で出来ます。


プロ生ちゃんMMDモデルをインポートする

プロ生ちゃんMMDモデルをフォルダーごとUnityのProjectウィンドウのAssetsフォルダーにドラッグ&ドロップします。


プロ生ちゃんをオブジェクト化

Unityのメニュー
MMD for Unity - PMD Loader
をクリックします。

PMDLoaderの PMD File の右のボタンをクリックしてプロ生ちゃん.pmdを選択します。「プロ生ちゃん.txt」というファイルもインポートされていると区別しにくいので拡張子まで確認しましょう。
そしてconvertボタンをクリックすると

Unityにプロ生ちゃんが!


夢の共演?

2014年4月に公開されたUnityのマスコットキャラクター「ユニティちゃん」と共演させてみました。
二人を並べるとプロ生ちゃんが大きく見えます。
プロ生ちゃんの身長は公式設定では「156cmくらい」です。
ユニティちゃんの身長は不明ですが、Unity3Dの単位はメートルです。
立方体で背比べした結果、ユニティちゃんの身長は150cm位でした。
プロ生ちゃんに比べて小さいと不自然な気がしたので、今回は公式設定を無視して二人を同じ背丈にしてみます。
Hierarchyでプロ生ちゃんを選択してInspectorのScaleをX,Y,Zとも0.85にすると二人の身長が同じくらいになりました。
背景が殺風景すぎるのでSkyboxも表示してみました。


MMDモデルをインポートすると

インポートしたMMDモデルのボーンの名前はMMDのものを引き継ぎます。
Unityで一般的に使われるボーンの名前ではありません。
日本語で分かりやすい反面、ユニティちゃん付属のモーションを使い回すのが難しいです。


ここから先は

プロ生ちゃんを動かすにはプログラミングが必要です。
その反面モデルデータを自由に扱うことが可能です。
市販のゲームソフトで出来ることはUnityでもほとんど出来るはずです。

完成したアプリをiOSやAndroid用に公開してもいいですし、Web Playerとしてビルドすればニコニ立体に投稿することが出来ます。

このエントリーをはてなブックマークに追加


関連ブログ

[Unity3D] 透視投影と平行投影を合成するには[Unity Chan]
[Unity] オーディオの音量が小さい
プロ生ちゃんをキャラミんで踊らせよう
プロ生ちゃんMMDモデルを踊らせよう
OpenGLでプロ生ちゃんをアニメーションさせる
[Android] 壁紙のギザギザ(ジャギー)を直すには
wavファイルの書き出しは要注意 [CUBASE][StudioOne]

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

2014年7月1日火曜日

[Application] ザ・数唱 v1.03 を公開しました

Androidアプリケーション ザ・数唱 / Digit span PLAY / 數字跨度 / 수반복 をバージョンアップしました

v1.03の変更内容は次の通りです。
・MEKKOのロシア語を追加
MEIKOはとシア語は特に関係がありませんがザ・数唱がロシアで評価が良いため、発音が明瞭なMEIKOをロシア語の担当として追加しました。


アプリの内容紹介

ザ・数唱は短期記憶力が勝負の数字記憶ゲームです。
記憶力に自身がありますか?
メモをとらなくても聴いた内容を覚えられますか?
ザ・数唱の読み上げられた数字を記憶して答えるゲームです。
ワーキングメモリーと呼ばれる短期記憶の能力が高い人ほど沢山の数字を覚えられます。
メモをとらず記憶力だけでチャレンジしてください。
ナビゲーターは初音ミク(日本語、英語)、洛天依(中国語)、SeeU(韓国語)、結月ゆかり(ドイツ語)、メイコ(ロシア語)です。

Android2.3以上対応、HVGA以上の解像度推奨、縦画面専用
価格は無料

ザ・数唱 / Digit span PLAY はGoogle Playから無料でダウンロードできます。
※ダウンロード前に エンドユーザーライセンス契約(EULA)プライバシーポリシー を必ずお読みください。
https://play.google.com/store/apps/details?id=jjp.fujiu.digitspan

ザ・数唱 / Digit span PLAY の詳細はこちらからご覧いただけます。
http://www.fujiu.jp/AndroidApp/app010_digitspan.shtml

Digit span PLAY is the game.
You should input the numbers that the navigator read out.
Make your working memory excel.
Don't make memos.
Navigators :
HATSUNE MIKU (English, Japanese)
LUO TIANYI (Chinese)
SeeU (Korean)
YUDUKI YUKARI (German)
MEIKO (Russioan)

數字跨度 (Digit span PLAY) 是游戏。
你应该输入的数字,导航器读出。
别拿备忘录。
向导 :
洛天依 (中文)
初音未来 (日语、英语)
SeeU (韩语)
YUDUKI YUKARI(德语)
MEIKO (俄語)

수반복 (Digit span PLAY) 은 게임이다
당신은 네비게이터가 읽어 해당 입력 번호를해야합니다
메모를 작성하지 마십시오
안내인 :
시유 (한국어)
하츠네 미쿠 (일본어, 영어)
루오 티엔 (중국어)
유즈키 유카리(독일어)
메이코 (러시아어)

使用したMMDモデル
Lat式 初音ミク、Tda式 初音ミク、ままま式 SeeU、ケミリア式 洛天依、キオ式結月ゆかり、マシシ式MEIKO
Copyright (C) CRYPTON FUTURE MEDIA, INC. All Rights Reserved.
Copyrignt (C) SBSARTECH. All rights reserved.
Copyright (C) 上海禾念信息科技有限公司 All rights reserved.
Copyright (C) AHS Co. Ltd. All rights reserved.