最近の100件  1  2  3  4  5  6  7  8  9  10 

2015.06.20

Effekseerの導入に当たって調べた長い道のり?3

Visual Studio 2012がインストールできたので
Effekseerのサンプルを動かしてみます。


ここのリンクが、かげさんが検証した時のサンプルの場所になります。
https://t.co/MZOLDCQOnv

2015/06/21修正
上の取り消し線のところでは、
かげさんが検証した時のサンプルの場所をリンクしてましたが
現在は削除されて下記のURLになっているとのことです。

DXライブラリのフォルダの指定が相対指定になっているみたいで
展開された「プロジェクトに追加すべきファイル_VC用」フォルダを
見てくれているようで、サクッと動きました!happy02

こうなると初音ミク冒険記に組み込んでみたくなります!

さて、ここで現状の初音ミク冒険記本体のソースフォルダ
HatsuneMikuBoukenkiをコピーして
コピーしたフォルダ名をHatsuneMikuBoukenkiEffekseerに変更。
(Visual Studioのバージョン違いによる問題が起きた時の対策です)

実は今、記事を書いていてHatsuneMikuBoukenkiEffecseerと
kとcを間違えてたことに気づきました。bleah
いかん、いかん・・・

早速、Visual Studio 2008版のソリューションファイルを開きます。

まずは、おもむろにF5キーで、この段階で動くかの確認です。

はい、予想通りVisual Studio 2008 → Visual Studio 2012に
ソリューションファイルをコンバートする時に
勝手に落とされる情報がありました・・・bearing

プロジェクトのプロパティの項目がいくつか抜け落ちてます。

error C1083: include ファイルを開けません。 'DxLib.h': No such file or Directory

ということで
DXライブラリのパスは、2か所の指定どちらも落ちていたので
DXライブラリのホームページのVisual Studio 2012の設定を
見ながら設定し直しました。

また、Luaのパスは、「..\」を使った相対パスにしていたつもりが
2箇所、「F:\」から始まる絶対パスになっていました。

Windows7とWindows8のデュアルブートだと
ドライブレター(ドライブの文字)が変わるので
Windows7でFドライブだったのは、Windows8ではDドライブになってるので
変更が必要です。

次にリンクエラーの話。

error Lnk2026: モジュールは SAFESEH イメージには安全ではありません。
ってやつだ。 そもそも日本語がおかしい気がするけど これはVisual Sutdio 2012のエラーなんで ツッコミは無しでお願いしますcoldsweats01

こいつは「構成プロパティ」-「リンカー」-「詳細設定」にある
「安全な例外ハンドラーを含むイメージ」で
いいえ(/SAFESEH:NO)を選択すると回避できました。

error LNK1207: ~の PDB形式に互換性がありません。 削除して再度ビルドして下さい。

初音ミク冒険記は、
基本的にプロジェクト構成をReleaseで作っているのだが、
Releaseフォルダにできるpdbファイルの形式に互換性がないようで、
Relaseフォルダの拡張子pdbのファイルを削除する必要がありました。
(単純にリビルドしたほうが良かったのかもしれません)

ちなみにReleaseモードでも
ブレイクポイントを使ったデバッグはできるので、
かげさんは初音ミク冒険記の本体の開発では
Debugモードでコンパイルすることはほとんどありません。
(C#側の開発ツールは何も考えずDebugモードですが・・・)

Debugモードでビルドするとデバッグ情報が付く。
Releaseモードの方がexeファイルが小さくなるのはこのためだ。
exeファイルのサイズが小さいとロードが早いし、
Releaseモードでだけポインタ系エラーが出る
なーんてことがあることを経験的に知っているので
VC++の時は、Releaseモードでしか開発していないのです。

これで起動できたものの、今度はデバッグ時に設定されているはずの
コマンドライン引数が外れてました。
初音ミク冒険記はコマンドライン引数に1とか適当なのをつけると
ピアプロ・キャラクター・ライセンスなどの説明を省略して起動できる
開発用モードがあるのです。

ここまでで、Visual Studioのバージョン違いによる問題は解決!happy01

Effekseerのサンプルを見る限り、ほとんどコピペでいけるはずと
思っていたんですが、どこに貼り付けるか考えないといかんのぉ・・・
という状態に。

何気に初音ミク冒険記の初期化処理は
結構いろいろとやっています。

そもそも初期処理にしても、
・プラットフォームのプレ初期処理
・DXライブラリの初期処理
・プラットフォームの初期処理
・ゲームシステムの初期処理
とやってることが多いのです・・・

とりあえずコピペの場所は、
サンプルのDXライブラリの関数を目安にしました。

ソース修正は、終わったので
ビルド前に環境の確認をします。

サンプルのお手軽なところは
DXライブラリの「プロジェクトに追加すべきファイル_VC用」が
そのままあるところです。

DXライブラリの使い方解説は
コチラを参考にどうぞ。

上記リンクのVisual Studioのバージョンごとの説明で出てくる
「プロジェクトに追加すべきファイル_VC用」が展開されたフォルダに
なっています。

念のため、今現在DXライブラリを使っている人は、
今現在の「プロジェクトに追加すべきファイル_VC用」として設定しているフォルダを
名前を変更するなどしてバックアップしておいて
展開された「プロジェクトに追加すべきファイル_VC用」フォルダを
コピーすると良いでしょう。

なお、既にDXライブラリを使っている人だと
DXライブラリのバージョンを変えずに済ませたいという人もいると思います。

が、ココで問題があります。
かげさんはココでハマりました。

error LNK1104: ファイル 'DxDrawFunc_vs2012_x86.lib'を開くことができません
とかが出て、全然、リンクが通りません・・・

たしかにEffekseerのサンプルには、エラーになっているlibファイルがあり
かげさんが元々使っていたDXライブラリ3.13dには存在しません。

なのでエラーが出るファイルを
地道にコピーしてビルドを繰り返していきました。

が、libを開けないの後には

error LNK2005: ~は既に DxLib.lib(DxGraphicsWin.obj)で定義されています
と言ったエラーが大量に出て、今度こそ意味不明な状態に・・・

Effekseerの開発者さんに確認してみたところ
Effekseerから始まるlibではないので
DXライブラリの古いバージョンと新しいバージョンの競合が
原因ではないか?とのこと。

DXライブラリのバージョンを変えずに済ませる時は
readme.txtに書かれている
Effekseerから始まる6個のlibファイルと
Effekseerから始まる3個のhファイルをコピーするんですが
問題は、コピー先にあるDXライブラリのバージョンです。

2015/06/21追記
上のlibファイルの個数ですが、
かげさんが検証した時とは現在違って増えているみたいです。
詳細は、実際にreadme.txtを参照してください。

実は、DXライブラリの3.14cとそれ以前だと
DXライブラリの中の構成が結構変わっているみたいで
3.14cからは、~_vs2012_x86.libという類のlibが大量に増えています。
(過去バージョンのDXライブラリのフォルダ比較で確認しました)

どうやらこれが原因で競合が起きているみたい。
なお、2015/06/20時点ではDXライブラリは3.14cではなく
3.14dを使った方が良いです。
3.14dだと前の記事で書いた2013だと動かない
という問題も解消されます。
(が、かげさんがハマっていた段階では3.14dは公開されていなかった)

ということで、かげさんところの
「プロジェクトに追加すべきファイル_VC用」フォルダを
Effekseerのサンプルにあった
「プロジェクトに追加すべきファイル_VC用」フォルダに
ごっそり入れ替えて実行!

すると
Boukenkideeffekseer

やりました!happy02

実は、かげさん、寝る直前にここまで確認した関係で
テンションが上がりすぎて、全然眠れませんでした・・・

さすがに翌日の仕事に影響しそうで
思わず精神安定剤を飲んで寝たくらいです。coldsweats01

かげさんにとっては、そのくらいの事件だったのです!happy02

そして
Effekseerを使うにあたっての疑問」につながるのでした。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

Effekseerの導入に当たって調べた長い道のり?2

Windows アップデートをした後は
Visual Studio 2012の入手なんですが
そもそもVisual Studio 2012にしようとした理由を書いてなかった。

Effekseer003

というのと次の画像はタイムラインの都合で
画像の下から上に向かってみてもらうと良いかもです。
Effekseer004

とこのようにVisual Studio 2013が良いという話の流れでした。

が・・・
実はこの段階ではEffekseerの開発者さんが
DXライブラリの掲示板で
VS2013のLibについて」という
やりとりをしている段階でVisual Studio 2013では
うまく動かなかったようです。

Effekseerの開発者さんも
Effekseer005
というツイートをしていました。

これが2012になった理由です。

この記事を書いている段階では
上記の問題は、解決したとのことで
2013でもイケるから、
Visual Studio Community 2013にした方が良いと思う。happy01

なお、Visual Studio 2012以降じゃないとダメな理由を
Effekseerの開発者さんに教えてもらいました。

Effekseer006

なるほどッて感じです。

えーと、意味がわからない人もいると思うのでちょこっと書くと
C++11というのは、Wikipediaにもあるように2011年時点の
最新C++のISO標準です。
http://ja.wikipedia.org/wiki/C%2B%2B11

C++って、Visual C++、Borland C++、Objective C++など
いろいろありますよね。
それで標準的なC++のルールをまとめようぜってことらしいです。

ブラウザの世界でHTML5が話題になった時にも
Internet Explorerだけ、
めっちゃ波に乗るのが遅かったってのとかにも似てますが
これそれぞれのC++がすぐに完全に対応しているかというと
そうでもないんですよね・・・

たしか今はC++14という2014年時点のC++のISO標準もあったはず。

こんな感じで開発言語自体も洗練化されていっているわけです。

さっきの話に戻すとC++11は、2011年時点のものです。
なのでVisual Studio 2010には反映されているはずもなく
必然的に2012以降じゃないと反映されていないってことになるんです。


ゲームエンジン・アーキテクチャ 第2版

この本でもC++11のことについて書かれているので興味はありました。

また、かげさんも個人的に
C++のenumでコロンコロンしたい。(warning C4482)
と思っていたってのもあります。

warning C4482
C++11以降に関連するんですよねぇ・・・

こういった前提知識があったので、先のツイートに納得だったのです。

さて、2012のインストールの話に戻ります。

最初、かげさんはVisual Studio 2012を
Visual Studio のダウンロード
からしようとしたんですが、Visual Studio 2012のリンクがない・・・coldsweats02

Visual Studio Community 2013や2010のExpressはあるんだが・・・

ということで、このリンクは2013にするのに使うために
この記事に書いておいて
Download Microsoft Visual Studio Express 2012 for Windows」から
改めてダウンロードする。

上のページで濃いオレンジのダウンロードボタンを押して
「VS2012_WDX_JPN.iso」にチェックを入れて次へでダウンロードします。

ちなみにwdexpress_full.exeの方が簡単なんで
wdexpress_full.exeをダウンロードしてダブルクリックでも良いです。

wdexpress_full.exeは
内部で結局VS2012_WDX_JPN.iso相当のものを
ダウンロードするんでどっちでも良いんですが
ダウンロードの後にダウンロードがされるのがしゃくなので(笑)

ちなみにアホかと思うんだけど、IEで上記操作をすると
自社のサイトなのにポップアップブロックが出るんだよねぇ・・・

それを解除するとダウンロードが始まります・・・

ダウンロードしたファイルをつかってインストールします。
Microsoft Visual Studio 2012 Expressのダウンロードとインストール
という記事を参考にしても良いかもしれません。

長く使うかもしれないので、一応プロダクトキーは
もらっておきました。

はい、これでWindows 8 + Visual Studio 2012までは
準備出来ました。

次の記事では、
Effekseerのサンプルを動かしたりするところを書きます。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

Effekseerの導入に当たって調べた長い道のり?1

最初に1つことわっておきます。

この記事は、かげさんの環境的な都合もあって時間がかかったという話で
この記事を見る人は、もっと簡単に済むかもしれません。

なお、Visual Studio 2012以降をインストール済みの人は
Effekseerの導入に当たって調べた長い道のり?3」へどうぞ。

記事の投稿順としては、
1つ前の記事である「Effekseerを使うにあたっての疑問」よりも
この記事を先に書くべきだったのだが
あの記事はかげさんがEffekseerの開発者さんに教えて欲しかったので
書いたのだったりする。

Effekseerの開発者さんとのやりとりはTwitterを中心にしてました。
さすがに文章量が多すぎてやりとりしづらかったんですよねぇ。

さて、そろそろ、
1つ前の記事「Effekseerを使うにあたっての疑問」を書くまでにしたことや
調査したことをまとめようと思う。

なお、この情報は、2015年06月14日の週の情報です。
この記事を読む段階によっては、情報が古くなっているかもしれません。

ちょっと「エフェクトツールBISHAMON、Effekseer、Prominenceのこととか、いろいろまとめたかったけど、実際は、まとまりきっていないZE☆
の記事と重複するところもあるかもしれないけど、
そこも含めてご容赦を。coldsweats01

すごく前置きがながくなったけど、ここから本題です!happy01

まず、このように動かすためにした環境について書いてみる。
Boukenkideeffekseer2

OS:Windows8
開発環境:Visual Studio 2012 Express
DXライブラリ:3.14c(2015/06/20現在は3.14d以降が良いです)
Effekseerの開発者さんに教えていただいたサンプル

Effekseer001

というツイートがあったので
サンプルソースは、ここを参考にしました。
https://github.com/effekseer/EffekseerForDXLib/blob/master/Dev/Sample2D/main.cpp

が、サンプルソースだけ見ても環境が・・・
と思っていたらすぐにこのツイートが流れてきました。

Effekseer002


ここのリンクが、かげさんが検証した時のサンプルの場所になります。
https://t.co/MZOLDCQOnv

2015/06/21修正
上の取り消し線のところでは、
かげさんが検証した時のサンプルの場所をリンクしてましたが
現在は削除されて下記のURLになっているとのことです。
https://t.co/Qf2fS6w93h

書きやすさの都合で先にサンプルの場所を書いたけど
ちょっと戻って、OSをWindows 8にした理由とか
Visual Studioを2012にした理由も書いてみようと思う。

現在の初音ミク冒険記のメイン開発環境は、以下の通り。
OS:Windows7
開発環境:Visual Studio 2008 Express
DXライブラリ:3.13d

前述の動かすためにした環境とは、全部一致してません。coldsweats01

まず、Windows 8にした理由なんですが、
これは、かげさんの開発環境をVisual Studioを2012にする必要があったためです。

いかん、この書き方だとVisual Studio 2012を使うためには
Windows 8が必要に思うかもしれないと混乱させちゃいますね。

以下は、マイクロソフトの公式サイトの情報です。
開発ツール対応 OS 一覧
http://www.microsoft.com/ja-jp/dev/support/tools.aspx

リンク先を見てもらうと分かりますが
Visual Studio 2012を使う場合、OSはWindows 7以上である必要があります。

ということで、実はVisual Studioを2008→2012にするのに
OSを7→8に変える必要は、ありません。

じゃあ、なんでOSを変えたかというと、
Visual Studioをバージョンアップして
既にあるソリューションファイルを開くと
Visual Studioは、
ソリューションファイル(.sln)とか
プロジェクトファイル(.vcproj)のバージョンを上げようとするのです。

2015/07/20追記
上記の説明は、一部間違っています。
正しい情報は以下のリンクを参照して下さい。
Visual Studio Version Selectorの話

バージョンを上げなくても何とかすることもできるんですが
たしか、バージョンを上げないと、ソリューションファイルを開くたびに
アップデートするかというのを確認されたはず。

そう、何回も開いていると
勢い余ってアップデートしてしまう危険性があるのです。

まずはEffekseerをうまく導入できるのかを検証したいので
そこで間違ってバージョンが上がってしてしまうと
古いVisual Studioではそのソリューションファイルを開けなくなります。
これは避けたいところです。
(厳密には開く方法はあるんだけど、それはまた別の記事にします)

2015/06/23追記
Visual Studioのバージョン間の違いについて(2008 → 2012)

また、経験上、Visual Studioのバージョンを上げた時には
ソリューションファイルやプロジェクトファイルのアップグレードで
何らかの不具合が起きることがあるのを知っているので
そこでハマってしまう可能性も考えると、
メイン開発環境を「直接バージョンアップするのは避けたい」
という意識が最初に働きました。

ちなみにVisual Studioは、
1つのOSに複数バージョンインストールすることもできます。

が、当然、後から入れたバージョンの方に拡張子が関連付けされるので
古いバージョン側を開きたくて新しいバージョンを開いちゃった
とか、よくやりそうな気がします。

ということで、まずはメイン開発環境以外で試してみよう!
という気になりました。

Visual Studio 2012をインストールできるのは
Windows 7以降なので、それを考慮すると
インストール先の候補は3つありました。

1.ノートパソコンのWindows 8.1
2.メイン開発環境とデュアルブートできるWindows 8
3.メイン開発環境のVMWare上のWindows 8環境

実は、後から4つ目の選択肢として
VMWareでWindows 10 Insider Preview 上でってのも思いついたのですが
既にサンプルを動かせるようになってからだったので不採用にcoldsweats01

かげさんはWindows 8が出た直後に激安だった時に
Windows 8 Proを3つ購入してたので上のような選択肢がありました。

最初の1つは、マシン購入時がWIndows8発売直前で1,200円
残り2つはそれぞれ3,300円でゲットしてました。

1は、まず最初に対象外としました。
実は以前、Visual Studio 2010を入れていて遅かったので・・・

最初は2ではなく3にしようとしてました。
2だと環境を切り替えるためにマシンの再起動が必要だからです。

VMWareというのは仮想環境を動かすソフトです。
仮想環境って何だ? って人向けに簡単に説明すると
現在起動しているOSを起動したまま、
別のマシンとしてOSを動かすようにするって感じです。

つまり最初にやろうとしたのは
Windows 7でVMWareを起動して、
VMWareで作った仮想マシンにインストールしたWindows8を動かそう
ということです。

Windows 7を起動しながらWindows 8の環境も動かそうぜってこと。

こうすればWindows 7の環境は崩さずに
Windows 8を動かせるのでWindows 8を再起動している最中は
Windows 7で作業を進められます。

この方法の難点は、ディスク容量とメモリです。
ディスク容量は、なんとかなるけどメモリは・・・という人も多いと思いますが
かげさんのマシンは、購入時のキャンペーンでメモリ倍増が無料だった関係で
メモリを32GB積んでいるから仮想マシンに
メモリを4GBとか8GBとか割り当てても問題ないのです。happy01

が、ここで罠が待っていました。
たぶん、原因は、先日グラボをGTX-980に載せ替える時にした
BIOS SWITCHの変更だと思うのですが
これまで何度も起動していたVMWare上のWindows8が起動しないだと!?coldsweats02

Windowsは、マザーボードが変わると
別のマシンに既にインストール済みの
Windowsを載せようとしたと判断します。

起動してくれないことにはOSの認証(アクティベーション)も動かねぇ・・・

しかも、なんか作業中だったのか、
その仮想マシンは電源が入った状態で中断していて・・・

むむむ・・・となりました。

軽く調べたけど理由がわからないので、それは捨てて2の案を採用します。

が、ここでもWindows 8を起動したら問題が発生!shock

ハードコピーとか撮っていなかったので関連する情報のリンクを張ります。
Windows8 電話によるライセンス認証方法とライセンス移行の注意点

元々XP, Vista, 7まではインストールしても30日間はお試し期間として
勝手に認証されることはなく、ライセンス認証をする際もタスクバーに
「認証してください」の吹き出しが出たり、
ライセンス認証ウィンドウが出て認証するボタンをプッシュする必要がありましたが
Windows8はセットアップ後、インターネットに繋げると勝手にライセンス認証されます。

先に書いたように、かげさんはWindows 8を正規に購入しています。
なので、当然、以前は正規にライセンス認証が通っていました。

が、今回起動したらグラボ交換でBIOSを切り替えた影響で
別のマザーボードとして認識されてライセンス認証が通らないのです・・・weep

グラボ交換やBIOS切り替えのことは以下の記事に書いてます。
(こうやって書き出すと、スゲー量だな。
 これも別途記事にしたほうが良かったかも・・・)
グラボを交換したんだががが・・・
グラボの件は、購入したところに問い合わせてみた
よくよく考えたら、そうだよね~
うん、ドライバインストールしたら元に戻った
MSIサポートから連絡が来たが・・・
今日、仕事はお休みです
グラボ関連でBIOSアップデートはギブアップした
そして、グラボには異常がなかった
コメントから始まる一筋の光明、BIOSアップデートができた!
無事にMSI GTX-980 GAMING 4Gが動いた!
BIOSスイッチを切り替えた影響だねぇ

つーことで、正規品なのに起動できず、むむむ・・・となりました。
で、
Windows8 電話によるライセンス認証方法とライセンス移行の注意点
にあるようにしぶしぶマイクロソフトに電話しました。

ちなみにオペレーターに繋がるまでの
プッシュボタンの操作(7桁×9個分)が長くて大変でした・・・gawk
何分かかったのだろう・・・

でオペレータさんにつながったので
WIndows 8のライセンス認証をしたい旨、
なんでこんなことになったのかを説明した上で
6桁×8個分の数字を入力してライセンス認証ができました。happy02

グラボ交換のためにBIOS SWITCHを切り替えてたら
マザーボードのメーカーがサードウェーブ(ドスパラの会社)から
本来のマザーボードのメーカーであるMSIにかわったことで
別のマザーボードと認識されたという話をしたら
あっさり納得してくれました。wink
きっと他にも事例があったのでしょう。

別のマシンにインストールしたわけじゃないので
ダメだと言われても困るんですがね・・・coldsweats01

次はVisual Studio 2012の入手なんですが
ここまでだけでも長くなったので、次の記事にします。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2015.06.18

Effekseerを使うにあたっての疑問

6月はサウンド周りのプログラムを想定していたのですが
Effekseerの開発者の方にtwitterで連絡をもらえたので
やりとりをしながら
初音ミク冒険記の画面エフェクトに
Effekseerを使うための修正をしているかげさんです。

Boukenkideeffekseer

サンプルプログラムを参考に、こんな感じで
Effekseerのエフェクトを読み込んで表示できるところまでは行けました。

ここまでたどり着くまでの過程は、
書くと長いんで別の記事にまとめようと思っています。

2015/06/20追記ここから
Effekseerの導入に当たって調べた長い道のり?1
Effekseerの導入に当たって調べた長い道のり?2
Effekseerの導入に当たって調べた長い道のり?3
ここまで

今は、初音ミク冒険記でEffekseerを使いやすくするための
ローカル処理を考えているところです。

そこで疑問に思ったんだけど
2Dゲームで複数レイヤーでエフェクトが動くとどうなるんだろう?

例えば、初音ミク冒険記だと
1.マップレイヤー1(超ゆっくり動く背景)
2.マップレイヤー2(ゆっくり動く背景)
3.マップレイヤー3(ミクと一緒の速さで動く背景)
4.エフェクト1を再生(赤いエフェクト)
5.ミクを描画するレイヤー
6.マップレイヤー4(ミクと一緒の速さで動くけどミクより手前の背景)
7.マップレイヤー5(ミクより早く動くミクより手前の背景)
8.エフェクト2を再生(緑のエフェクト)
というのがあったとして
上から順番の描画順にしたい。
要するに上から順番に描画するので

この時
PlayEffekseer2DEffect
SetPosPlayingEffekseer2DEffect
UpdateEffekseer2D
DrawEffekseer2D
の関係はどうなるんだろう? って話です。

たぶん、PlayEffekseer2DEffectとSetPosPlayingEffekseer2DEffectがセットで
UpdateEffekseer2D、DrawEffekseer2Dがセットだと思うんだけど
画像レイヤー1~3がDrawGraphやDrawExtendGraph、DrawRotaGraph系なんだが
どうしたら描画順番が期待した通りになるのかな?

UpdateEffekseer2D、DrawEffekseer2Dの引数にエフェクトハンドルがないから
ScreenFlipみたいに最後に1回だけで良いのかな?
だとしたら、PlayEffekseer2DEffectとSetPosPlayingEffekseer2DEffectは
描画順序がどうなるのかな?

DXライブラリのDrawGraph系はその時点で描画してしまっていると想定しているのが
描画順序が気になる原因なんだろうか?

Boukenkideeffekseer2

この画像だとミクの下の赤いエフェクトが
ミクの手前じゃなく、ミクの奥で描画して欲しいといったことはできるんだろうか?

それとも、この考え方がおかしくて2Dだと
エフェクトは常に最前面に描画するものなんだろうか?


2015/06/27追記
この疑問が解決した記事はコチラ
Effekseerの2Dエフェクトの描画順

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2015.06.14

エフェクトツールBISHAMON、Effekseer、Prominenceのこととか、いろいろまとめたかったけど、実際は、まとまりきっていないZE☆

最初に書いておくと
この記事は、過去に書こうと思ったことと
昨夜から今日にかけて調べたことなども交えて
勢いで書いたので、かなりグデグデ、かつ、超長文です。

6月はサウンド周りだな!と過去記事に書きましたが
この記事はエフェクト関連の話が中心です。
(なお、シェーダ周りも調べたことはあるんですが、今回はパスします)


昨日、Astlibraの作者のKEIZOさんとProminenceという
エフェクトツールのことをtwitterでやりとりをしていました。

KEIZOさんの最近のツイートの中では
Effekseer(エフェクシア)の話題もあったようです。
(Effekseerは、新しいサイトを構築中のようなので
 構築の邪魔にならないようにリンク先を現在のURLにしています)

これがキッカケでEffekseerの公式twitterアカウント@Effekseer から
「どのあたりが難しかったでしょうか?」という話を振ってもらったので
情報交換させてもらえました。happy02

twitterの情報は、あっという間に流れてしまうので
重要なのはお気に入りに登録したんですが
ちょっとまとめておこうかなと思います。

まとめ記事のつもりだけど、全然まとまっていないってのは秘密です。coldsweats01

一度ブログの記事にしておくと、
初音ミク冒険記のTracのWikiページからリンクが張れるので
後から見返しやすいのです。happy01
(TracのWikiでまとめページを作ると、検索とかが便利なので)

まぁ、そんな言い訳はいいや、本題、本題。

かげさんとKEIZOさんの共通見解としては

Effekseerは、エフェクトづくりの前段階、自分のゲームにどう組み込むのか
という初期導入が難しく感じていました。

この点はDXライブラリとEffekseerを組み合わせたものの配布の
公開を検討していただけているみたいですので
じきに解消されると思います。

また、かげさんにとっては、Prominenceの方が
8x8とかの連続画像を出力できる分
DXライブラリでLoadDivGraphを使えば良いといった
実装イメージが容易に想像できたってのもありました。

しかし、この点は、完全にかげさんの調査不足でした。

Effekseerでも前から使えたことを教えていただきました。

githubに情報があるので
気になった時にソースが見れて、いろいろと便利かも!
https://github.com/effekseer

後はサンプルソースとかが
クラスを使ったコーディングになっていたので
ほぼクラスを使わない実装にしている今の初音ミク冒険記だと
どうしたものかなぁ?というのがありました。

クラスを使う → オブジェクト指向プログラミングになる → C++を使う
ってことで、C++よりもCの方が実行速度が速いのでC++的なものは
極力使わないようにしていました。

まぁ、オーバーロードとかを使いまくっている時点でアレですし
そもそもC++にするんだったらtolua++を使えるんで
Luaのグルーコード作成には便利なんですがね・・・
さんざん、手でグルーコード作ったんで、手順も確立しているので
もう今さらって感じもしますcoldsweats01

Effekseerの公式twitterアカウントからの返信にもありましたが
最近のPCのスペックだとクラスを使用しても影響が全くないくらい高速であることと、
機能が充実して開発効率が大分上がっているのでVS2013以降をおすすめ
とのことです。

PCスペックだと確かにその通りだと思う。
でも、元々初音ミク冒険記は、PSP版として作っていたこともあって
開発当初は動作的に軽いというのは、結構重要に思っていたんですよねぇ・・・。

ゲームエンジン・アーキテクチャの本でも普通にC++のことがたくさん載っていますし
商用ゲームだとC++にしない方が管理しづらいとは思います。
オブジェクト指向ならtry~catchの例外トラップもし易いしね!


かげさんはVS2013だと、Express 2013 for Windows Desktopという認識でいました。
DesktopがつかないのはWindows 8.1向けだから、
現在のWindows 7 SP1だと使えないはずだと思っていたからです。
さらにDXライブラリの導入ページでExpress 2013 for Windows Desktopがあった
というのもあります。

これもかげさんの調査不足だったのですが
個人のフリーの開発だったらVisual Studio Community 2013が良いみたいです。

個人限定ですがいままで数万してたバージョンが無料で使えます。
(具体的には小規模なチームのために設計および最適化された
 Visual Studio Professional 2013 のすべての優れた機能が含まれています)
当然、Express 2013 for Windows Desktopでも問題ない

とのこと。

VS2013について調べようと思ったけど
例によってマイクロソフト公式ページは最新バージョンの情報しか無くて探しにくい・・・

公式よりも、こっちのほうが分かりやすいかもしれない。
「Pro相当機能が無料!」と話題になった「Visual Studio Community」の光と“影” - Build Insider

将来的にExpressのアップデートが止まることを考えると
Effekseerの公式twitterアカウントで教えてくれた
「Visual Studio Community」にした方が良さそうに思ってます。
(Pro相当ってことはインストールするのにディスク容量が食いそうだが・・・)

安定したらCommunity 2015にしたいところですが
2015previewだと問題があるようで
DXライブラリの掲示板にこんなスレッドがありました。
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=3427

この問題が解決するまでは、バージョンアップできても2013までかなぁ。

実は前々からVS2008からバージョンアップしたいとは思っているのですが、
めったにないもののネットから切り離しているXPのマシンでコンパイルしたい時があって、
2010以降はXP未対応なのでバージョンアップしていなかったりします。

まぁ、めったにないのでバージョンアップ直前のソースをバックアップしておいて
何とかするんでも良さそうに思ってはいます。

他の理由としては、初音ミク冒険記をWindows版にする時に
コメント率の高い人たちのOSがVISTAだったというのもあります。

2013とかだとVIASTが対象外OSになっていますからね・・・

もっとも、ソリューションファイルとか一部の問題で
現状のソース自体は、2008以降であれば、どのバージョンでも良いんで
そのあたりをフォローする記事を書けば良いかなぁと最近は思ったりしてます。

といっても、
実はバージョンアップしたい理由の1つに
C++11の機能を使いたいというのもありまして、
これを使いはじめると
古いバージョンだと未対応なのでダメなんですよねぇ・・・

C++11というのはWikipediaにもあるように2011年次点の最新C++のISO標準です。
http://ja.wikipedia.org/wiki/C%2B%2B11

dangerいかん、エフェクトツールの話から脱線してきたので話を戻そう。


最近のエフェクトツールは3D対応になっています。
(Prominenceも3DバージョンのProminence3Dが出ています)

一応、初音ミク冒険記の内部では
ゲーム内の座標を3次元で管理できるようにしてるので
3Dじゃなきゃダメとなっても、若干対応しやすいはずなのですが
座標管理はともかくとして、初音ミク冒険記自体は2Dゲームなので、
Effekseerが分割画像以外で2Dゲームでも使えるのか気になって確認しました。

すると、こちらのゲームでは
「カメラを正面に置いて使っている」という情報をもらえました。
http://www.nicovideo.jp/watch/sm25714862
参考になる有益な情報でした。

2013以降を導入した時には、改めてEffekseerも使ってみたいと思いました。


実は、かげさん、初音ミク冒険記で実装するエフェクトを作るにあたり
2年前に以下の3つのエフェクトツールの比較をしていました。

・BISHAMON
・Effekseer
・Prominence

過去記事を検索しましたが
比較についての記事を書いたことがなかったようなので書いてみます。

まず、一番最初に見つけたのは、商用のBlendMagicの流れを組むBISHAMONです。

いろいろな動画やプレゼン資料を見ていて使いたいなぁと思いました。

Bishamon for DXライブラリ
という記事があり、この作者さんがDXライブラリの管理人さんと情報交換している
掲示板記事もあったので
DXライブラリでも使えそうなのがポイントが高かったのです。

が、有償ソフトです。
買い取りで5万、年間契約でも約1万円します。
さらに当時だとDirectX 9.0c対応のSDKの購入が必要で18,000円くらいしました。
最近出た1.8は、DirectX 11のSDKになるようです。
(DirectX 11は、Windows7以降、VISTAでもインストールすれば使えます)

趣味で作っているゲームとしては
買い取りのパターンだとしてイニシャルコストが高く、
買い取りでない場合でもランニングコストが高いという問題がありました。

普通に購入すると高額だった
「Adobe Creative Suite 6 Production Premium」を個人で持っている奴が
何を言っているんだって気もしますがcoldsweats01


旧製品なので今は売っていないと思います。

Creative Cloudだとランニングコストが月々数千円するので
Creative Cloudが出始めた時期に通信教育に絡めて安くゲットしました。
安いと言っても、そこそこのPCが購入できる値段でしたが・・・


コスト面が、という話になると
無償のソフトで似たようなものが無いのか? と思います。

そこで見つけたのがEffekseerです。

Effekseerの公式twitterアカウントへはバージョン0.50αの頃に使おうとした
というやりとりをしていたのですが、ダウンロードしたzipファイルを見ると、
どうやら0.17とか0.40とかも調べようとしていたようです。

2013年6月頃に調べようとしてたみたいですが
2013年6月は、復職以降で最も「うつ症状」がひどかった時期なので
(精神安定剤を毎日2~3錠とか飲んでいた時期)
たぶん、調べたことをブログ記事にまとめる元気がなかったのだと思います。

Windows版の初音ミク冒険記の開発環境はVisual Studio Express 2008。

このため、ゲーム制作日記さんの
EffekseerをVisual Studio 2008、DXライブラリ製のゲームに組み込む
という記事を参考にしていました。

この記事が0.17なので、0.17をダウンロードしたみたいです。
なので調査当時の安定バージョンは0.40で、お試し版として0.50αがあったのだと思います。

DirectXのSDKが必要だったり、
0.50αのソリューションファイルがVisual C++ Express 2010だったりして
素直に使えなかったというのがあり、ソリューションファイルのダウングレードとかも
調査したものの、結局うまく行かずに諦めてしまいました。

おそらく精神的に大丈夫な時期なら、もうちょっと調査したと思います。
が、そもそもインフラ系の仕事でうつになった身なので
環境回りでハマった時の精神状態と言ったら、かなりヒドイもので
うつ症状が強く出ていたこの時期だと、
とてもじゃないけど、「もうちょっと」なんていう元気は無かったのです。

そもそも、初音ミク冒険記もエフェクトをゴリゴリ作って
見栄えを良くしていくってのの相当前の段階だったので
(まぁ、現在の作業進捗も似たようなものなんですが・・・)
一旦、そこで調査事態を中断としました。


それでもエフェクトへの興味はあったのでAstlibraを参考に
地震エフェクトとか、フラッシュエフェクト、強調表示の演出とか
VC++側ロジックで組めるものを真似したりしていました。

この作業をしたのは東京に1ヶ月出張していた頃で
毎週、宿泊先が変わるという状況の中で進めた作業で
ほとんどAstlibraのパクリだったので、自分で考えた部分は少ないんですが
それでも、やっていて楽しかった記憶があります。

当時は、宿泊先を転々としていたので、
落ち着いてブログ記事を書いてられなかったので
東京から戻ってから
少し演出のプログラムをしてみた」という記事を書きました。


東京出張から戻ってきて、その後に見つけたのがProminenceです。
今は3D対応のツール(開発コードネームはCoronaでしたが、正式名称はProminence 3Dです)もありますが、2Dでも使いやすそうだったのと
見つけた当時「PhotoshopとProminenceで作るゲームエフェクト」Vol1~3が
セットで単品購入より安価な800円でゲットできたのがポイントでした。

せっかく持っているPhotoShopが役に立ちそうなのと
そもそもテクスチャの作り方からProminenceの使い方までを
一連の流れで理解できるというのが大きかったです。


その後、Prominenceの作者様のサイトやtwitterを継続して見ていたところ
BISHAMONゲームエフェクトデザイン入門」の情報がありまして

BISHAMON ゲームエフェクトデザイン入門
2014年06月30日に書籍のブログ記事を書いたところ
2014年07月01日にProminenceの作者様からツイートしていただきまして
その後、「BISHAMONゲームエフェクトデザイン入門」の著者の一人である
mokoさんからツイートをいただきました。

Kakotweet001_2

その後はmokoさんのツイートからもエフェクト関連の情報収集をしています。

ブログの記事にも書きましたが
BISHAMONゲームエフェクトデザイン入門」は、
600ページ中、260ページまではBISHAMONの説明ではなく
テクスチャとかモデリング、エフェクトの基本の説明が載っています。

また、この本だと、かげさんが持っているAfter Effectsを使った作例もあり
読んでいるだけでも面白かったです。


基本的にかげさんが、まとまった体系的に情報を好む傾向があるので
書籍とかプレゼン資料とかのように、まとまっている情報を好んで調べます。

もっとも書籍を探すにしてもプレゼン資料を探すにしても
入口はネット情報なんで情報が見つけやすいというのも重要だと思います。

Prominenceは、作者さんのサイトにブログ記事もありましたし、
ユーザが作った投稿エフェクトも多数掲載されており見ているだけでも面白かったですし
その投稿エフェクトをブログ記事にしてくれることで
投稿されたエフェクトに見た人がコメントを付けられるというのも
交流している感じがして良いと思います。
(記事にしてもらえた投稿者も嬉しいと思います)

BISHAMONのように掲示板があるというのも
情報がまとまるのでいろいろと調べやすいです。

そこにいくと、ちょっとだけEffekseerは
このあたりが弱かったように思います。
(今思うと、調べ方が甘かったようにも思いますが・・・)

求めている情報
(現在の開発環境のVSのプロジェクトをどう設定すれば
 使えるようになるのかといったこと)
が非常にわかりにくかったような記憶があります。coldsweats02

逆に言うとその辺りが整備されれば、
Effekseerはもっと普及するような気がしてました。
というか、こういうツールを使いたい人はいっぱいいると思ったので。

ちなみにEffekseerの作者さんが現在作成中のサイトは

画像投稿可能なユーザーフォーラム作ろう・・・

というツイートがあったりして
いただいた情報を見ている限り、以前より、かなり「わかりやすそう」に思います。happy02

サンプルプログラムを見ると
クラスを意識しなくて良さそうで処理フローもスッキリした分かりやすいサンプルでした。
https://github.com/effekseer/EffekseerForDXLib/blob/master/Dev/Sample2D/main.cpp
最新情報に注目ですね!note

3D対応の面ではProminence3Dが最近出来たこともあり
Prominence3Dより先に進んでいると思います。
エフェクト描画に効果音を合わせられるというのもポイントが高い気がしてます。
どうしても同期が必要なことだと思うので。

Prominence3Dは、
パラメータがEffekseerよりも直感的な気がしているので
エフェクト初心者には使い勝手が良さそうに思っています。happy01
(動画説明のおかげでイメージしやすかったからだと思う)
Effekseerを最初起動した時は、あまりのパラメータの数に
エフェクトツール未体験だったので
何が何だか分からない気がしたから
そう感じたのかもしれません。

ただ、これは新しいバージョンのEffekseerとの比較ではないので
公平な意見とは言えないと自分でも思ってます。

また、BISHAMONの本もそうでしたが、
テクスチャの作成からの一連の流れの説明があった分
分かりやすく感じている部分も大きいと思うからです。

各ツール一長一短がありますが
無償のツールで比較対象があるってのは良いと思うな。
(選択に迷う、ってのもありますがcoldsweats01


Effekseerを改めて調べていて
Effekseer ってUnityでも使えるのか!と思って歓喜したら、
Proが必要らしく、ってことは15万オーバーなので、
個人開発では無縁な話だった・・・と最初は思いました。

BISHAMONでもUnity対応はProってなってたから仕方ないのかも?
と思ったからです。

Effekseer+Unityで、なぜ歓喜したかというと、
Oculus Rift+Unityを将来やってみようと思っているので、
(グラボをGTX-980にしたのは、その前準備です)
そっちで使えるのでは!?と期待が膨らんだからです。
でも、Proだと個人では手が出せないな・・・と思いました。

エフェクトツール Effekseerの 最近事情2014
http://www.zengeren.com/content/data/15/15_Effekseer2014.pdf
という、うえしたさんのPDFの29ページを見て
Unity Pro (¥157,500)が必要というのがあったので
そう思ってツイートしたら
上のPDFのうえしたさんからのツイートをもらいまして

Unity5ならPersonalでもEffekseer使える

との情報が!happy02

これは、ヤバイ!
Effekseer、超良いかもしれない!note
Oculus Riftをゲットした暁には絶対試さなきゃ!happy02


と、かなりテンションがあがってきたので、ここで若干話題変更。
今の初音ミク冒険記だと
エフェクトの見栄えを考える際には大きな問題も抱えています。

それは画面サイズです。
現状、PSP版の頃からの名残でゲーム画面のサイズは480x272です。

これだと今の高解像度のディスプレイだとエフェクトどころか
文字が小さすぎるという問題があります。
ちまちまフォントサイズを調整したりしているのは
このあたりから来ています。

画面サイズについては、いろいろと考えていることもある分
長くなりそうなので、この記事ではこのあたりにして、
別の記事にしようと思います。
(既にグデグデの記事になっているから記載は残すけど
 この話題自体、書かなきゃ良かったかも?coldsweats01


これまでの初音ミク冒険記の制作の過程から思うこと
・コーディング自体が楽しい → たぶん、職業病です(笑)
・BGMやSEを探していると良い音と出会うことで想像が膨らむ
・アクションボイスなどの声が付くと、なんか楽しい
・画像準備やコーディングが大変なこともあるけど
 画像やエフェクトが付くとテンションが上がる

画像やエフェクトなどで見栄えが良くなるのは
楽しいし、モチベーションアップに非常に有効だと感じてます。note

綺麗に見せるためにはアニメーション用の分割画像を多数用意する必要があり
これだとゲームデータに入れる画像サイズが大きくなってしまいます。

KEIZOさんによると現在のAstlibraだと
エフェクトだけで22メガほどの容量になるようです。

これがエフェクトツールを使うことでテクスチャ容量も減った上で
ヌルヌル動くようになるってのは嬉しいです。
(容量を気にしなければ、分割画像方式でもヌルヌル動くはず)

なので、EffekseerとかProminenceといった
エフェクトツールがあると、とても助かります。happy01


今回、Effekseerの公式twitterアカウントとのやりとりで
かげさんの調査不足だった部分を教えてもらえたのも
とても助かりました。

Visual Studioについては、このところを業務で使っていない分、
情報収集が甘かったのが分かり、調べるキッカケをもらえて良かったです。


ちなみに、ヌルヌル動かすという意味では、
初音ミク冒険記で使っているミクの画像は、
元々MikuMikuDanceの3Dモデルのポーズを連続画像にしているので
3Dモデルで動かすほうが良いんですよね。

ただ、2Dより3Dの方が難しいと
「ゲームプログラマになる前に覚えておきたい本」
にも書いてあったってのもありますが
ねんどろ風なこともありグッドスマイルカンパニーの著作権とか
そもそもMikuMikuDanceのモデル製作者さんに正式な許可を取っていない
というあたりからして既に問題なんです・・・shock

現在公開している初音ミク冒険記でミクたち登場人物が
白抜きなのは、このためです。

著作権的なところの対策としては、
以前から何度もKEIZOさんに言われているように
自分でミクたちの画像を作れば良いんですが
何気にオープニングとかイベントシーンとかでMikuMikuDanceを使った
ムービーを作れたらなぁ、なんて夢みたいなことを考えているので
やるなら自作のMMDモデルを作れるようになりたいんですよね・・・sad

マシシPのこの本を購入したのも、将来的にはと考えてだったりします。

MikuMikuDance キャラクターモデルメイキング講座 Pさんが教える3Dモデルの作り方

まぁ、一人でやっている分、興味があっちこっちに飛んでて
どれも収拾がついていない状態になっているのがダメダメなんですが・・・gawk
(まともにゲーム1本を作りきったことが無い、
 いろいろとスキル不足なかげさんが
 BGMや効果音全般、現在使用している画像やMMDモデル以外は、
 自分で何とかしようとしてるのが、そもそも無茶苦茶なんですが・・・)

環境とか本の準備だけは、細々とだけど進展しています。


エフェクト関連では、今週、下記の本が出ます。

BISHAMONゲームエフェクトデザインレシピ (GAME DEVELOPER BOOKS)

著者は株式会社アグニ・フレアとマッチロック株式会社の後藤誠さんです。
後藤誠さんは、前述のBISHAMONゲームエフェクトデザイン入門の著者の一人で
BISHAMONの会社の人です。

株式会社アグニ・フレアは、今年行われたBISHAMONエフェクトコンテストで
ニコ生でエフェクト作りのアドバイスをしてくれたり、
選考をしていた会社なので、どちらの著者も、ものすごく安心感があります。

税込みで5,000円近い高価な本なんですが、
クレジットカードのポイントを商品券と交換したのが
数週間で届く予定なので、それが届いてから購入しようと思っています。
それが届けば500円足すとお釣りがくるんで。

それが800ページ近いページ数で
プロはこうやって作っているという作例が全部で26あることを考えると
EffekseerやProminence3Dを使うとしても、
読んで役立つ解説があるように思うのです。

いろいろとエフェクト関連の情報が増えてきているのは
やっぱり嬉しいですね!happy01

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (1)

2015.06.13

アクセル・ワールド18巻 黒の双剣士 がちょっと残念な展開だった


アクセル・ワールド (18) ―黒の双剣士― (電撃文庫)

今週の予定では木あたりに入手予定だったんですが
木、金と仕事を休むような体調不良だったので
ようやく入手しました。

8ヶ月待った新刊だったのですが、なんか微妙な感じでした。

全体的に話が転換するタイミングが悪い印象です。
そこまで話を積み上げてきて、肝心の部分がすっ飛ばされて話が進む感じがしました。

最後の展開にしても、このタイミングじゃなくても良いような気がしましたね・・・

おまけ小説でページ数を稼ぐのではなく、
もうちょっとそれぞれの展開をもう少し掘り下げて
綺麗にまとめて欲しい感じがしました。

特にプチパケの3人との初対面は掘り下げて欲しかったなぁ・・・

ずうっと待っていた分、正直、ちょっとガッカリな内容でした・・・

グレートウォールとの会談やコバマガの話が面白かったので
他が残念な感じですね。

次は冬らしいので、なんか良い展開になってくれるといいんですけど。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2015.06.08

VOCALOID 4 Editor for Cubase(ボカキュー4)を購入

記事タイトルに書いたように
かげさんが持っていたVOCALOID 3 Editorのライセンスは
VOCALOID 4 Editor for Cubaseにアップグレードしました。


YAMAHA ヤマハ VOCALOID4 Editor for Cubase

もともと、今月中のどこかでアップグレードしようと思っていたので
(6月までならアップグレードが5,400円なので)
忘れないうちにってことでアップグレードしときました。

仮にボカキューじゃできないような事があった場合でも
「ボカロPになりたい」が全号揃う10月前後には
VOCALOID 4 Editorのライセンスが入手可能なので問題ないでしょう。
(ぼかりすを使いたい時は、VOCALOID 3 Editorを起動すれば良いし)

土曜日はボカキューが起動して動いたところで満足してしまったのですが
ボカキュー4からの追加機能である
「リアルタイムレコーディング」の動作確認を忘れてたので
動作を確認してからアップグレードを決めました。

「リアルタイムレコーディング」以外はPiapro Studioでも確認していたので
忘れていなかったのですが、
ボカキュー4にしか無い機能の確認を怠っていたとは・・・coldsweats01

「リアルタイムレコーディング」を使うとMIDIキーボードで演奏することで
ボカロの音程をリアルタイムに入力できます。

歌声は「あ、い、う、え、お、ら、り、る、れ、ろ」から選ぶので
歌詞を流しこむことはできませんが、
MIDIキーボードの演奏に合わせてミクやルカが歌うのは面白いです。happy02

ポケミクの時も思いましたが、ユーザのアクションで
ミクやルカなどのボーカロイドが歌うというのは良いですね。happy01

ということで、今年前半に揃えたいと思っていた
音関連の環境は一通り揃いました。

今年の後半に揃えたいと思っているものは3つあるんですが
急ぎで欲しいと思っているものはないんですよねぇ。

そのうちの1つは、上述のVOCALOID 4 Editorで
これは順調なら10月か11月あたりに入手できるでしょうし
残り2つのうち1つは、ポイントが溜まったら交換するつもりなので
早くて8月あたりになるんじゃないかな?
もう一つは年内発売予定らしいんですが、まだ詳細情報は出ていなかったりします。

とりあえず大きめの出費は、一段落ってところでしょうか。
ふぅ。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2015.06.07

utapianoを付けたみた

このブログの右のサイドバーにutapianoを付けたみました。

こんなのです。

utapianoは、UTAU を使用したピアノっぽいブログパーツです。
コチラから設置できます。

ピアノっぽいところをクリックすると
Utauのライブラリが発音してくれます。

VOのボタンをクリックすると歌声ライブラリの切り替えができるので
テトやモモにすることもできます。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

SlideShareのスライドを保存したい

初音ミク冒険記の開発とかで調べ物をしていると
SlideShare(スライドシェア)に調べたいことがまとまっていることが
結構あったりする。

TracやJenkinsなどSlideShareにアップされている
プレゼンテーションのスライドで情報収集して
導入に踏み切ったものもあったりします。

ちなみに次に導入を検討しているのは
TestLinkでしょうか・・・

こういった資料は、後から見たくなる事もあるので
できれば保存したいと思うんだけどユーザ登録しないとダメなんだよね。

SlideShareがLinkedInに買収されたのは知ってたので
LinkedInもユーザ登録しないとダメなんじゃないかと思ったりもしてました。

そのうち調べてみようと思っていて放置していたんですが
@ITに「海外Webサービスのトリセツ」というのがまとまっていたのを思い出したので
記事を漁って見たところ
SlideShare(スライドシェア)の使い方(1):登録編
SlideShare(スライドシェア)の使い方(2):活用編
という記事がありました。

詳しく載っているので、詳細はこの記事では書きませんが
無事にユーザ登録したので、スライドを保存できるようになりました。
これで後から見たくなった時に、なんてスライドだったかタイトルが分からなくても
探しやすくなりました。happy01

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

SourceMonitor Version 3.5を導入してみた

おいコラ!
サウンド関連のプログラムをするんじゃなかったのか?
という話もあるんですが、気になって調べたことを忘れないうちに
ブログに書いちゃおうってことでSourceMonitorの話です。

えっと、まずは何でSourceMonitorを使ってみようとしたか
というところから書きますね。


ゲームプログラマのためのコーディング技術

実は最近、上の本を立ち読みしました。
(買ってないんかい! というツッコミは無しですcoldsweats01

この本、第1章は、マーチン・ファウラー著の
リファクタリングの本のC++版みたいな感じでした。

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

リファクタリングについては、かげさんは
VisualStudioにリファクタリングメニューが導入される前からやっているので
というか個人的にVB6やVBA用のリファクタリングツールとかを作っていたので
C++だと、そうだよね~というのはあったんですが
新しい収穫は、あまり無かったです。

第2章は、オブジェクト指向設計について書かれていたので
こちらもあまり収穫は無かったです。

第3章は、ソースコードの品質計測ということで
いくつかのツールは知っていたのですが、
参考文献を見るとSourceMonitorについての記載があったので
気になって調べてみたッて感じです。

現在、初音ミク冒険記の開発では、ソースを修正してテストした後、
ソースをバージョン管理のSubversion(以下、SVN)に登録(コミット)してます。

このコミットの時にTraclightningで管理しているチケット番号にリンクさせている他に
Jenkinsに連動してます。

具体的にはJenkinsが10分おきにSVNのコミット状況を監視していて
VC++のソースがコミットされたらCppCheckとStepCounterが自動的に動きます。
(初音ミク冒険記だとシナリオでLuaや開発ツールがC#なので、そっちの時はまた別の処理が動く)

CppCheckについては、このブログでも以下の記事で紹介しています。
今更だけど、Cppcheckを使って初音ミク冒険記のソースを静的テストしてみた
JenkinsからのCppcheck
このところずっとJenkinsのCppCheckが動いていない気がした原因が判明

StepCounterについては、
Jenkinsの設定をいろいろと変更してみた、が、あと一歩が分かんない
でもチラッと紹介していますが
ソース単位で実行行数、コメント行数、空行数を表示できます。

このように一応、ソースの品質管理としての指標は
少しだけど収集していたんですが、
「サイクロマチック複雑度」とか「メソッドのネストの深さ」は分からなかったのです。

サイクロマチック複雑度については
Wikipediaの「循環的複雑度」に掲載されています。

で、どうやらこの辺りの情報収集ができるのがSourceMonitorらしかったので
導入してみました。

■SourceMonitor Version 3.5のダウンロード
http://www.campwoodsw.com/sourcemonitor.html

■導入方法
「大人になったら肺呼吸」というサイトで
C言語やJavaのメトリクス計測ができるSourceMonitorを試してみたよ。」という記事があったので参考にしました。

そういえば、このサイトはCppCheckの導入時にも参考にさせてもらいました。

■メトリクス(計測値の意味)
SourceMonitorは英語のツールなんですが
上記の導入方法の記事では、各項目の意味の説明が残念ながら無かったので
メトリクス計測 SourceMonitor 紹介」という記事を参考にさせてもらいました。

■かげさんが調べた時の参考情報
ソースコードの品質向上のための効果的で効率的なコードレビュー
C/C++開発環境

■使ってみた印象
stepcounterで取得している情報の内、空行の扱いがオプションになっていますが
それ以外の情報は取得できています。

下図は、初音ミク冒険記では計測不要と判断した項目を抜いた状態のものです。
Sourcemonitor01

% Branchesが、分岐率
Max Complexityが、最も複雑なメソッドの複雑度
Max Depthが、ネスト階層
Ave Complexityが、サイクロマチック複雑度
です。

<サイクロマチック複雑度>
•10 以下であればよい構造
•30 を越える場合,構造に疑問
•50 を越える場合,テストが不可能(テストするのが難しい)
•75 を越える場合,いかなる変更も誤修正を生む原因を作る

ということで実は上図は、サイクロマチック複雑度が10以上のものを出しています。
結構あるな・・・coldsweats02

確かにショップやオプション関連は分岐も多くて複雑なんだが
かげさん的に一番複雑に感じている
myGame.cppがココには出てこないのが意外でした。wobbly

まぁ、上図には微妙に入らないくらいの位置にはなっているんですが・・・

30を超えているソースで今後のメンテでも複雑になりそうなのは
myOption.cpp(オプションメニュー)
myItem.cpp(アイテムメニュー)
myManual.cpp(各種説明メニュー)
myMapEditHookWinProc.cpp(マップクリエーター関連)
といったところかな?

ショップメニューは、ある程度完成形のつもりをしているので
とりあえず放置でも良さそうな気がしている。

ネスト階層が5以上のところは、メソッドの抽出で関数を小分けにした方が
ソースの見通しが良くなりそうだなと思う。

なお、Jenkinsでこのツールの出力情報を取得するプラグインもあるようなんだが
上図で示したようなソースのレベルとか、
もっと詳細なソース内の関数レベルの情報は取得できないようで
トップレベルのベースディレクトリの中全体のレベルのものしか表示できないみたい。

一応、このツールはコマンドラインで情報収集することができるっぽいので
うまくJenkinsと連携させられると良いんだけどな。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)