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

2015.11.01

GitHubのお勉強


Web制作者のためのGitHubの教科書 チームの効率を最大化する共同開発ツール

EffekseerとかssbpLibなどがGitHubを使っているので
上の書籍でGitHubのお勉強をしている。

Kindle版で安売りしている時に購入したので
かなり前に購入していたんだが、全然読んでいなかったともいう・・・coldsweats01

とりあえずクローン化するところまでは、実際にやってみた。

ソースを改造したりしなければ、とりあえずクローン化までできれば
リリース前でも最新ソースを使ったビルドができると思うので
とりあえずクローン化まで覚えれば良いかな?と思っている。

この本は、コマンドラインでの操作とGUI(SourceTree)での操作説明が
交互に載っている。

実は、かげさんは、こっちの本も持っている。
マーケットプレイスで安くなっていた時に購入して
GitHubのサイトの操作方法を覚えるのに読んでいた。

こっちの本は、最初にコマンドラインのGitで雰囲気を覚えて
その後、GitHubの操作をするという構成になっている。

かげさんは2冊購入したけど、普通はどちらか読みやすい方だけで良いと思う。

GitはSubversionと較べてリモートリポジトリという考え方があったり
Git独特の管理用語があるところが、分かりにくいところだと思うなぁ。

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

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

2015.10.18

ssbpLib 1.0.1 → 1.1.1 に変更した時、ちょっと「つまずいた」ので手順をまとめてみた

本題に入る前に、軽く、近況などを。

久々のブログの更新になります。

作業途中だったメニュー関連のイージング関数対応は、
一区切りしてたんですが
仕事で10月から新しいプロジェクトに入ったので
覚えることが多くて勉強とかしたりしてたこともあって
ブログの更新をサボってしまいました。coldsweats01

今思うとメニューの処理が一区切りついたところで
1つ記事を書いておけば良かったかもね。

さて、そろそろ本題のssbpLibに入りましょう。
実は、下記のツイートを見逃していたことに今日気づきました。

なので早速、ssbpLibのバージョンを上げることにして
せっかくなので手順をまとめようと思って作業を始めたところ
ちょっと「つまずく」ことがあったので
tracだけじゃなく、ブログにも記事を書くことにしました。

▼2015/11/01追記ここから▼
かげさんが作業した時には、調べながらだったのでつまづきましたが、
D.KさんがGitHubのWikiに情報記載してくれたので
2015/10/22以降にGitHubのWikiを見た人は、つまづかないと思います。



▲2015/11/01追記ここまで▲

まずダウンロードするものですが
SpriteStudio5-SDK
必要なのはSs5Converterだけなのでコチラでも良いです。

それと「ssbpLib」の2つです。

なお、ssbpLibは、新しいのをダウンロードする時に
前のバージョンのファイル一式は消さずに残しておきましょう。
消しちゃった場合は、以前のと同じバージョンも一緒にダウンロードしましょう。
(後で差分比較に使うので、古いバージョンも展開するのを忘れずに)

ダウンロードしたファイルを展開したら
ssbpLibのPlayers\ssbpLibフォルダにあるファイル一式を
F:\Visual Studio 2008\Projects\HatsuneMikuBoukenki\SSPlayer
に上書きコピーし
ssbpLibのsamples\DXLibrary\basic\Resources\character_template_comipoフォルダにあるファイル一式を
F:\Visual Studio 2008\Projects\HatsuneMikuBoukenki\character_template_comipo
に上書きコピーする。
(F:\Visual Studio 2008\Projects\HatsuneMikuBoukenki\は各自の環境に合わせてね)

さて、このままビルドすると大量にエラーやワーニングが出ます。
前回と違って

warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。

というメッセージはでてませんでしたが、
SSPlayerフォルダにあるソースファイルが、文字コードがUTF-8になっているのが原因です。

SSPlayerフォルダにあるソースとヘッダファイル全部の文字コードをSJISにします。
初音ミク冒険記はSJISで作っているのでSJISにしましたが
DXライブラリのUnicode版を使っている人はUnicodeに変換するのが良いのだと思います。

合わせて改行コードもCRLFにしておきます。
こういう時、EmEditorを使っていると
メニュー「ファイル」-「すべてのエンコードを指定して保存」で
EmEditorで開いている全ファイルの文字コードと改行コードを
一括で変更してくれるので便利です。

これで、かなりの量のエラーや警告が減るんですが
なんと、前のバージョンにあったpauseやresumeメソッドが無いというエラーが出てます。
(pauseやresumeを使っていない人には関係ないかもしれません。)

はい、ここで前のバージョンとの比較が必要になります。
かげさんは、フォルダ単位でも比較ができるフリーソフトのDFというので
今回バージョンと前バージョンの比較をしました。

DFの場合、起動した後に比較対象フォルダをドラッグ&ドロップすると
比較できます。
(かげさんは面倒なので、送るメニューにDFを入れて送るメニューから起動してます)

Ssbplibverup01

どうやら関数名が
pause → animePause
resume → animeResume
と変わったようです。

なので、冒険記側で呼び出す時の関数名を新しいものに変更します。

で、これで解消されるのは、このエラーだけで
わんさかリンクエラーが残ります。

これは、今回のバージョンアップでエフェクトに対応しているので
ソースが増えているのが原因です。

再びフォルダ比較をします。
Ssbplibverup02

一番上の階層のフォルダにはソースの増減はないようです。

次にcommonフォルダ。

Ssbplibverup03

Animater
Helper
Loader
と3つフォルダが増えています。
さらに、ssplayer_matrix.cppとssplayer_matrix.hがなくなっています。

実は、かげさん、この段階では
Animater
Helper
Loader
のフォルダが増えているのには気づいていて
上記の3つのフォルダのソースをVC++のプロジェクトを選択して
右クリックメニュー「追加」-「既存の項目」で
プロジェクトに取り込むというところまでは、やっていたいました。

が、ソースのフォルダを比較してなかったので
commonフォルダからssplayer_matrix.cppとssplayer_matrix.hがなくなっていることに
気づいてませんでした。
(実際にはこの2つのソースはAnimaterフォルダに移動されてました)

そうなると、どうなるか?
はい、新旧のssplayer_matrix.cppとssplayer_matrix.hが
VC++プロジェクトに混在した形になります。

つまり、ssplayer_matrix.cppの関数が重複しているので
リンクエラーが残るのです・・・shock

普通ならソリューションエクスプローラ上で
同じソースが2つ並んでたら、すぐに気づきそうなものですが
かげさんは、フィルターを使ってソースを階層構造で管理しているので
同じのが2つあるのに気づいてませんでした。sad

そう、フィルターにソースを入れても
エクスプローラ上ではフォルダ階層が異なるので
重複ファイルにならないのです・・・coldsweats01

ここはフォルダ比較するまで気づきませんでした・・・weep

ということで、古い方のssplayer_matrix.cppとssplayer_matrix.hは
VC++プロジェクトから削除します。

この時、物理的に消すなら「クリア」じゃなく「削除」なんですが
かげさんは、ソースのバージョン管理をしている関係で
この段階で物理的にファイル削除されちゃうと面倒なんで「クリア」にして
プロジェクトファイルからだけ削除しました。

さて、これで動くと思ったのですが
次は起動時にアプリケーションエラーが出るようになりました。

SpriteStudio関連のロジック以外は、変更していないので
今回の変更が原因なのは確定です。

まず最初に疑ったのは、ssbpファイルのバージョンでした。
まだ冒険記ではssbpLibのサンプルの
character_template_comipoのssbpしか動かしていないので
ファイルを見たんですが、今回のssbpLibのサンプルと同じssbpファイルになってます。

???

よくわからないのでssbpLib関連のロジックの呼び出し元を止めてみました。
すると問題なく起動します。

なんでだ? と思ったらSpriteStudio for Indeiを使う条件となっていた
スプラッシュスクリーンのssbpの存在を忘れてて、新しくし忘れてただと!?coldsweats02

はい、ここでSs5Converterが必要になります。
対象が1ファイルだけなのでコマンドライン版でも良かったのですが
今回は、GUI版の「Ss5ConveterGUI.exe」を起動します。

Ssbplibverup04

シンプルな画面なので使い方も簡単です。
該当のsspjファイルを上のリストボックスにドラッグ&ドロップして
「Convert Start」ボタンをクリックするだけ。
これで「Status」に「Convert Sucsess!」と出ればOKです。

GUI版の「Ss5ConveterGUI.exe」だと「List Save」というボタンがあります。
これで先ほどドラッグ&ドロップしたsspjファイル」のリストが保存できます。

今後、変換が必要になるsspjファイルは増えるはずなので
今からリストを作る意識をつけておくって寸法です。

これでビルドが通るようになりました。happy02

が、なんかssplayer->setPositionの仕様が変わっているっぽくて
前のバージョンと同じ場所に表示されないから
最初表示されなくなったと思って結構焦ったcoldsweats02

たぶん、初音ミク冒険記で言うと
スクリーン座標指定がスクロール対応したマップ座標指定に変わって
表示キャラクターの原点座標も変わっていると思われる。
もしかすると原点座標が左上から左下に変わったのかもしれないが・・・

▼2015/11/01追記ここから▼
その後、教えてもらった情報


かげさんの対応としては、#define UP_MINUSを有効にすることにした。
なお、定義するのは、ss5player.hの
#define UP_MINUSがコメントアウトされている行のコメントアウトを解除することにした。
これは、namespaceの都合でこうしました。
▲2015/11/01追記ここまで▲

こういう変更が入るとなると
直接呼ぶ形式だと問題解消が大変になるから
やっぱりssbpLibのラッパー関数を冒険記側で作っておかないと
こういった仕様変更を吸収するのが大変になりそうだなぁと思った。

とりあえずHSP版のDLLのソースを参考にして
ラッパー関数を作らないとダメそうだな。

そこではゲーム内座標から画面表示座標に変換できるようにしておこう。happy01

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

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

2015.10.03

Windows 8.1 Pro 64bit版のインストール作業中におきた問題

Windows Updateを実行したら「インストールの準備をしています」のまま
何時間も進まない・・・coldsweats02

ちなみにWindows Updateの実行中にキャンセルすると
不具合が起きることがあるため
仕事から帰る前とか、寝る前といったタイミングでWindows Updateが終わらない場合、
念のため放置しておいたほうが無難だ。

危ないのは以下のタイミングらしい
・Windows Updateを途中でキャンセルした場合
・Windows Update後の再起動中にPCを強制終了した場合
・まれにWindows Update中のWebブラウジング等の別作業をすると問題が起きることがある

が、何時間も進まない場合、Windows Updateのプログレスバーが動いていても
内部的にはWindows Updateがフリーズしていることがある。

この場合、「インストールの停止」ボタンでインストールを中止すると
実は更新プログラムの一部は処理可能だったりするのだ。

なお、この場合、Windows Updateの半端な残骸がメモリとかに残っていたら怖いので
一度マシン自体をリブートしてから、再度Windows Updateをするほうが無難だと思う。

ちなみにリブートしてから改めてWindows Updateすると普通に動いたりする・・・wobbly

急ぎでマシンをセッティングしないとダメなときに
こういったトラブルがあると、本当にイライラするな・・・sad

<Windows Updateでトラぶったら参考になるかもしれないリンク>
■Windows Updateが遅い、進まない、終わらない、失敗する問題の解決方法
http://freesoft.tvbok.com/tips/windows_update/not_proceed_update.html

■Windows Update がインストールの準備をしています...から先へ進みません
http://answers.microsoft.com/ja-jp/windows/forum/windows8_1-update/windows-update/13039182-35b4-4815-9d8e-a2e348817c8d?auth=1

■Windows updateが失敗をくりかえす時の一般的な対処方法
http://freesoft.tvbok.com/tips/pc/windows_update_2.html

■パソコンが重い!大きな原因のひとつ、Windows Updateのトラブルに対処する(Windows 8.1の場合)
http://johokankyo.com/trouble/windowsupdate/

■Win8でディスクの使用率が100%となる現象の回避方法
http://memomo2.blogspot.jp/2013/10/win8100.html

■更新プログラムをインストールしないでシャットダウンする方法
http://www.microsoft.com/ja-jp/atlife/tips/archive/windows/tips/307.aspx

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

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

2015.09.29

2Dカメラに関する記事を見つけたのでメモっておく

テラシュールブログ」というサイトで
【Unity】2Dカメラを制御する奴を試作した日記」という記事が出ているという
ツイートが流れてきたので見てみたら
検証用の動画とかも見ていて
ためになるなぁと思ったので
このブログにも情報を残しておきます。
(Twitterだとお気に入りに登録してても流れてしまって探すの大変なのでcoldsweats01

初音ミク冒険記だと、前にななしあさんから指摘のあった
試練の洞窟エリア3の上下に動く足場でガクガクした動きをするのが
カメラの縦スクロールの処理が関係しているような気がして
カメラスクロールも気になっているのです。sad

最近、いろんなことが気になって何か1つに集中できない感じです。
集中力ならぬ放中力を発揮していると解釈しとこう。note

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

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

2015.09.27

イージング関数の導入テスト(動画あり)

これまでの初音ミク冒険記のプログラムでは
動きを付ける処理の殆どは等速運動をしています。

ジャンプや落下は加速度運動してますが
他は動きがないか、等速運動ばかりなのです。

これだと味気ないなぁ、と思っていました。coldsweats01

そこで動きを付けるために
jQuery Easing Pluginの関数を移植して
初音ミク冒険記に組み込んでみました。

実は、MMDとかでファンクションカーブとか
EffekseerでFカーブとか言われているものは知っていたのですが
この記事を見つけるまでイージングという言葉を知りませんでした。
イージング関数を使いたい@C++

最初は、この記事の処理をそのまま組み込んだのですが
イージング処理初心者のかげさんには
ちょっとパラメータの設定が面倒そうな感じでした。weep
(パラメータの順序が一部違っていれば、まだよかったんだけどね)

なのでjQueryのイージング関数を真似することにしました。
(こっちの方が関数の使用イメージが湧いた)

イージング関数の動きは
イージング関数の早見表」で
グラフにマウスカーソルを合わせたり
jQuery日本語リファレンス Easing/jQuery」の
イージング名のリンクをクリックして見てもらうと分かりやすいです。

移植元のソースはコチラのものを使っています。
jQuery Easing Plugin (version 1.3)

ちなみにかげさんはjQueryを自分で使って
プログラムしたことはないんですが
jQueryは、JavaScriptでできているので
一応、単純な移植ならできるって感じです。wink

jQuery Easing Plugin のイージング関数を直接利用する方法
という記事にjQuery Easing Plugin の2つのイージング関数の結果があったので
同じ値になることを確認しています。

単純にテキストエディタでマクロを組んでゴリゴリ移植したので
2つ合っていれば、多分大丈夫でしょう。

ということで、せっかく移植しても使わないと意味が無いので
お試しプログラムを作ってみました。

30関数もあって単純な動作なので
正直、見てても面白く無いかもしれませんが
一応、後々自分で見返したりするかもしれないので
テスト動画を作りました。note

とりあえず、メニューの動作に組み込んでみようと思います。

フェードイン・フェードアウトの処理や
イベントでのカメラの移動に組み込むのも良いかもしれませんね。happy01

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

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

2015.09.23

ボカロタウン入口に噴水を作ってみた(動画あり)

Effekseerのサンプルの噴水データを
調整して作ってみましたが、どうでしょう?


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

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

2015.09.22

2Dゲームをおもしろくする技術 スタートダッシュ編を読み終わった


2Dゲームをおもしろくする技術 スタートダッシュ編 実例から解き明かすゲームメカニクス・レベルデザイン・カメラの基礎知識

ゲームプログラミングの書籍をチェックしている人は
なんか見たことあるタイトルの本と思った人もいるかもしれません。

「3Dゲームをおもしろくする技術」という本の著者が書いた本です。

実は、3Dゲームの方も本屋で気になって何度か立ち読みしてて
そのうち購入しようかなと思っていたのですが
著者の「CEDEC AWARD2015著述賞」受賞を記念して、
期間限定【半額】セール中!(2015/08/25~2015/09/30)

ということでポチってしまいました。

その後、ツイートしたら著者の大野さんからツイートをもらったので
読後、記事にしようかなぁと思っていました。


ポンとかインベーダーゲームの話から始まり、
気持ちの良いジャンプアクションの技術といった感じで
・プレイヤーキャラの技術
・敵キャラの技術
・レベルデザインの技術
・当たり判定の技術
・カメラの技術
という章立てで各種技術への著者の考察がまとめられています。

あくまで考察なので本当にそうなのかは分かりませんが
かげさんが一通り読んでみた感じでは、
そんなに外れていない、
というより的を得ているんじゃないかなと思います。

なお、「考察」であり「実装」ではないため
プログラムを組む際は、別途ロジックの検討が必要になります。

考察で例としてあげられているのは
・スーパーマリオブラザーズ
・ゼルダの伝説
・メトロイド
・ストリートファイターII
・ボンバーマン
といった実在のゲームなので
解説を読んで納得がいく感じで面白いです。

現在の初音ミク冒険記では、主攻撃がショット系なので
メトロイドの解説とかは、参考になりそうな感じがしてます。

メトロイドは縦方向の面白さもあるので
縦スクロールがある初音ミク冒険記だと
少し意識したほうが良いのかもしれないと思ってます。

まぁ、かげさんの実装スキルとか、
何より初音ミク冒険記に馴染むシステムかといった考慮は必要ですが。

最近気になっていた「その場振り向き」の解説は勉強になりました。
今の初音ミク冒険記は「移動振り向き」方式なんですがね・・・

あと、当初、実装が難しかったノックバックや
ななしあさんの指摘から調整した「無敵時間」についての考察も
実際に自分が調べたり実装していたので興味深かったですね。

プレイヤーキャラのリアクションについても気になりました。
実は初音ミク冒険記のtracには
いくつか気になることをチケット登録しているし
La-Mulanaのキャラのリアクションの多彩さを見ていると
スゴく気になる内容だったので。

敵キャラの部分は、今後、初音ミク冒険記で作りこむ部分なので
参考にしようと思いました。

敵キャラ同士のコンビネーションとか、
地形と敵キャラのコンビネーションなんかは
若干レベルデザインにも絡みますが、考慮したほうが良いですね。

地形と敵キャラのコンビネーションは
現在プレイしているLa-Mulanaが秀逸なので
気にしてはいたんですよ。

レベルデザインの部分は



を読んでいた分、基礎知識があったせいか
実在の2Dゲームで解説があると説得力を感じました。
まぁ、理解していてもそれを初音ミク冒険記に反映できるかは
別問題ですが・・・

当たり判定については、現在の初音ミク冒険記もバグが多いので
課題かなぁと思っています。

カメラも自分で実装していた分、考えるものがありました。
特にカメラ外の世界のことは、
今後もレベルデザインにも関係してきそうだと思っています。

マップ切り替えもLa-Mulanaをプレイしていて気になってた部分で
勉強になりました。

ちなみにマップ切り替え(初音ミク冒険記でいうエリアチェンジ)関連の
不具合とかもいろいろあるんで、考えなきゃと思いました。

最後にこの本「スタートダッシュ編」となっているのですが
続編とかはあるのかが気になりました。
出たら、ぜひ購入したいと思います。

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

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

2015.09.20

ADX2 LEのサンプルを組み込んでみた

ミドルウェア導入の第3弾として
サウンドミドルウェアのADX2 LEを導入する。

といっても、SpriteStudioの時と同様に
とりあえず初音ミク冒険記本体で
サンプルが動くところまでを実装するッて感じです。

SpriteStudioもADX2 LEも本格的に使えるようになるには
時間がかかると思っています。

Effekseerのように便利関数を作るところまで持っていくには
まだまだ勉強不足ですしね。coldsweats01

ADX2 LEの用途としては
ミクたちのセリフの音声ファイルの制御で使おうと思っています。

いつになったら、アクションボイスとかダメージボイスだけじゃなく
シナリオボイスが付くようになるのか分からないですが、
仕組みの取っ掛かりだけは作っておこうってことで。note

初音ミク冒険記では
既にいろいろとサウンド関連の処理は実装しているので
今からLuaも含めて全部を置き換えるってのも大変なので
一応、用途はセリフとか
これから実装する部分に絞ろうかなぁと思っています。

導入しようと思ったのもセリフの音声ファイルの圧縮が目的なんで。

さて、導入にあたり、参考にするのは、今回も以下のページです。
「DXライブラリでADX2LE,Live2D Cubism,OPTPiX SpriteStudioを併用してみる」
http://qiita.com/nicolai_twi/items/c3fdc6115abe184f9f6e

まずは、ダウンロードページからWindows版をダウンロード。
http://www.adx2le.com/download/index.html

zipがダウンロードできたらできたら解凍して、
中身のcriフォルダを適当な場所に保存する。
(今回は初音ミク冒険記のプロジェクトがあるフォルダにcriフォルダを保存した)

その後、「cri/pc/libs/x86/cri_ware_pcx86_LE.dll」をプロジェクト直下にコピーする。

次はVisual Studio側でプロジェクトの設定をする。
メニュー「プロジェクト」-「HatsuneMikuBoukenki(導入したいソリューション名)のプロパティ」を選択。
「構成プロパティ」→「C/C++」→「全般」→「追加のインクルード ディレクトリ」の最後に以下を追加
;.\cri\pc\include

「構成プロパティ」→「リンカー」→「全般」→「追加のライブラリディレクトリ」の最後に以下を追加
;.\cri\pc\libs\x86

「構成プロパティ」→「リンカー」→「入力」→「追加の依存ファイル」の最後に以下を追加
;cri_ware_pcx86_LE_import.lib

「適用」を押して「OK」をクリック。

取り込むソースだが、ADX2LE関連のものだと分かりやすいので
DXライブラリでADX2LE,Live2D Cubism,OPTPiX SpriteStudioを併用してみる」にあるソースをベースに作る。

ただし、その場合、
cri\pc\samples\criatom\programs\Basic\Basic.cppにあるような
キューを使う部分の関数がいくつか省かれているため、
キューの制御が必要になりそうな場合、
cri\pc\samples\criatom\programs\Basic\Basic.cppを参考に
キューの対応をした方が良さそうな気がしてます。

DXライブラリでADX2LE,Live2D Cubism,OPTPiX SpriteStudioを併用してみる」
の実装でサンプルのBGMは鳴らせるようになりました。

ただ、これもSpriteStudioと同様、
実際に初音ミク冒険記内で使うファイルを準備しないと
初音ミク冒険記内で利用するための便利関数を作るところまで
手が回らない感じがしている。

SpriteStudioの方は、少し触ってみて、
何となく最初の段階としては
雰囲気はつかめたような気がしているので良いのだが
ADX2 LEを使うための前段階「CRI Atom Craft」の方は、
全然触っていないです。coldsweats01

一応、下記の本は購入済みなので、これから覚えていく感じですね。bleah

CD付 CRI ADX2で作るゲームサウンド制作ガイド[CRI ADX2公式ガイド] (Smart Game Developer)

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

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

初音ミク冒険記の開発環境のVisual Studioを2013以降に切り替えます

やっぱりC99が使えないと厳しい・・・crying

C99って何の話?って人もいると思う。
簡単に言うとC言語の規格のことだ。

C言語もいろいろとあるから、みんな一定の規格に沿うようにしてね!
ってことなんだが、
マイクロソフトは、長いことC99の正式サポートをしてないんだよね・・・shock

今頃になって、なんでこんな事が気になるようになったか
というとSpriteStudio関連だったりする。

どうもSpriteStudioのアニメーション再生をする
ssbpLibが、C99以降の記載があるようで
VisualStudio 2008だとビルドが通らないのだ・・・crying

現在のかげさんのメイン開発環境の2013だと問題ないんだが・・・

Effekseerの時は、バージョン毎にソースを切り分ける条件コンパイルで
初音ミク冒険記のソースだけで
何とかできる作りにできたから良かったけど
ssbpLibの方は、ちょっと初音ミク冒険記のソースだけでは
対処できなさそうだったりする・・・coldsweats01

つまり、ssbpLibのソースにも手を入れる必要がある。

正直、手を入れれば何とか出来そうな気もしている。
が、それをやるとssbpLibがバージョンアップするたびに
その修正をしないとダメになってしまうのだ・・・

エフェクトの場合、元々コマ送りアニメ処理をしてたからいいけど
SpriteStudioのアニメーションは、
敵キャラなどの多関節アニメがメインで考えているから
別途多関節の処理を組み込むか
敵キャラもコマ送りアニメ処理する必要がある
改めて組み込むとなると、それなりに面倒だ。

一番、簡単、確実なのは、
Visual Studio 2008のソリューションファイルを捨てて
2013以降にすることだ。

これをやると、
初音ミク冒険記のソースをXPやVISTAでビルドしていた人たちは
今後公開する初音ミク冒険記のソースをビルドできなくなる・・・

それでもゲーム自体はXPやVISTAでもプレイできるので
それで良いことにしちゃおう、と思う。

Effekseerの導入時からVisual Studioのバージョンについて
悩んでいて、XPでもビルドできる2008ソリューションも
メンテしていたんだけど、
やっぱり2つのソリューションを合わせて変更するのは、
SpriteStudioなどのライブラリを導入するにあたっては
面倒なこと、この上ない。

趣味で作っているゲームなので
作業しやすさを優先しようと思います。

次のEffekseer for DXライブラリのリリースで
Visual Stuidoは2015に対応してくれるようなので
今後、Visual Studio 2015になる可能性もありますが、
当面はVisual Studio 2013で開発を続けることにします。

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

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

2015.09.13

SsbpLibを使ってSpriteStudioで作成したアニメーションを再生してみた(テスト動画あり)

まずは、導入実験のテスト動画の紹介から

見たら分かるよね! スゴイでしょ!happy02

補足しておくと記事タイトルは
SpriteStudioで作成したアニメーション
となっていますが、ssbplibのサンプルアニメーションを使ってるので
かげさんがSpriteStudioで作成したアニメーションではないです。

導入にあたり、参考にした記事はコチラです。
DXライブラリでADX2LE,Live2D Cubism,OPTPiX SpriteStudioを併用してみる

先に上の記事を読んでいたので
文字コードが問題になることが分かっていました。

ちなみに上の記事だと3つ全部を一緒に導入してますが
今回はSpriteStudioに絞ってやりました。

紹介されているソースには謎の変数もあるし
最初のSDKのダウンロードとかssbplib関連が、
少しわかりにくく感じたので
かげさんなりにまとめてみました。

実は、SpriteStudio for Indieのサンプルデータには
上の記事で使っている拡張子ssbpがありません。

導入できるのは分かっても、肝心の再生に使うファイルが無いのでは困るのです。

ssbpについては、OPTPiXのブログに
C++で使用できる汎用アニメーションライブラリssbpLibのご紹介
という記事がありました。

SpriteStudioの販売元のブログなので信頼性がある情報です。

要約すると

SpriteStudio5-SDKというのがGitHubに公開されている。
が、アニメーション再生目的で考えるとアプリへの組み込みは手軽ではない。

そこでアニメーション再生情報に特化した汎用フォーマットである
ssbpフォーマットを開発された。
再生のための情報に最適化することで再生プログラムをシンプル化。
コンパクトであり手軽に扱えるアニメーション再生ライブラリ、それがssbpLib。

ということらしいです。

この記事に「ssbpファイルの作成」の手順もあり、ひとまず安心しました。happy01

ちなみにSpriteStudio単品の導入であれば、公式の情報に従うのが良いです。

ただし、最初に紹介した記事に書かれている
文字コードの問題については書かれていなかったので
最初の記事も役に立ちました。

最初に紹介した記事で、ssbp以外の点のもう1つのネックは
ssbpLibのサンプルソースから不要な部分を抜いてあるところです。

不要な部分を抜いてくれてシンプルになっているんですが
一部抜き忘れがあって、意味がわからない変数が残っているんですよ・・・

ssbplibのダウンロードは、コチラから行えます。
https://github.com/SpriteStudio/ssbpLib/releases

画面中央あたりにzipのアイコンが縦に並んでいるので、
一番上をクリックしてファイルをダウンロードする。

ダウンロードしたzipファイルを展開する。

samples\DXLibraryフォルダにあるREADME.mdをテキストファイルで開き内容に従う。

■ビルドエラーが発生する人、「プロジェクトに追加」の部分が分からない人向けの情報
------ここから------

<作業前提条件>
DXライブラリの使い方解説
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
にある設定が終わっていること

samples\DXLibrary\basicフォルダには以下の3つがある
1.SSPlayerフォルダ
2.Resourcesフォルダ
3.sssample.cpp

1と3は、Visual StudioのDXライブラリのテストソースのあるフォルダにそのままコピーする
2は、Resourcesフォルダの中身をDXライブラリで作ったexeが実行できるフォルダにコピーする
※Resourcesフォルダも含めてコピーしてしまうと、実行時にエラーが出ます。

sssample.cppとSSPlayerフォルダにあるソースファイルは、文字コードがUTF-8になっています。

ビルドすると以下のようなビルドエラーが発生するかもしれません。

warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。

この問題が起きた時の対処方法については、
最初に紹介した記事によるとUnicodeにするとなっていました。

文字コード(エンコード)変更ができるテキストエディタで対応します。
できれば、合わせて改行コードもWindows用にCRLFにした方が良いでしょう。

ちなみに、かげさんは、コードページが932で表示できないとなっていたので
UNICODEではなく、シフトJIS(SJIS)で保存しました。
(コードページが932は、シフトJISなのです)

これでもビルドは通ります。
(SSPlayerフォルダのソースは警告メッセージがいくつか出ますが、実行はできます)

<Visual Studioの設定>
メニュー「プロジェクト」-「既存項目の追加」を選択する。

「既存項目の追加」画面で
sssample.cppをクリック後、「追加」ボタンを押下する。

同様の手順でsamples\DXLibrary\basic\SSPlayerフォルダにあるファイル全部と
同様の手順でsamples\DXLibrary\basic\SSPlayer\commonフォルダにあるファイル全部を追加します。

なお、上の2つのフォルダでのファイル指定は、
フォルダの一番上のファイルをクリック後、
Shiftキーを押しながら一番下をクリックすると
複数ファイルまとめて追加できて便利です。

------ここまで------

これでうまく動けば、第1段階は突破です。

かげさんの場合、初音ミク冒険記に
こういったテストをしやすくする仕組みを作ってたので
それを使って第1段階の確認をしました。

そうすると実験動画のようなことが
第1段階確認後、すぐに確認できるので
この仕組は作って正解だったと思います。

ここからは、初音ミク冒険記でもっと使いやすくするための
関数作りですね。

公式の情報に、以下の説明もあったので役立ちそうです。note
・ResourceManagerクラス
・Playerクラス

ということでEffekseerに続くミドルウェア導入の第2弾SpriteStudioの情報でした。

次の連休には、ミドルウェア導入の第3弾として
ADX2LEのことをまとめていく予定です。

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

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