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

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)

SpriteStudio for Indieについて導入前に気になることを調べてみた

DXライブラリでのSpriteStudioの導入記事を見つけているので
SpriteStudioについて調べてみる。

SpriteStudioの紹介は、
公式サイトに書かれている内容を引用すると
以下のとおりだ。

OPTPiX SpriteStudio はスプライトアニメーションデータを制作する際の煩雑な手間を削減することで、制作効率を大幅に改善します。 OPTPiX SpriteStudio を使えば、スプライトアニメーションデータの制作をデザイナー単独の作業で完結できるようになります。 また制作されるデータは、あらゆるゲームシーンで利用できる「超汎用」データで、使用展開が思いのまま。

実際、動画紹介を見てみよう。

なかなかイイ感じだ!happy02

実を言うと「多関節アニメーション」は、
わからない箇所は、KEIZOさんに教えてもらおうって考えで
Astlibraのソースを参考に作ろうとしてました。

調べてみるとSpriteStudioだと、
・PhotoShopからの連携ができる仕組みがある
・IKやキーフレームが使える
・最近のバージョンだとエフェクト機能がある
・Unityにも対応している
ということで、良さそうなんです。note

多関節用に画像を分解するのにPhotoShopを使う予定なんで
PhotoShopとの連携する仕組みがあるのはありがたい。

MMDやAfterEffectsを使っていると
IKやキーフレームが使えるのは良さそうに思います。

エフェクトは「Effekseer」と一部「Prominence 3D」を使うつもりでしたが
更に選択肢が増える感じですね。

エフェクト編集ソフトは
「ノードで管理する」のと「タイムラインで管理する」のがあるんですが
かげさんが調べていたのは「ノードで管理する」の中心だったので
時間経過でのエフェクト編集はしづらいという弱点があるのです。

キーフレームを使うってことはタイムラインで管理できるので
そこの補完にもなると思います。

DXライブラリで作っている初音ミク冒険記なのに
なんで、ここでUnityが出てきたかというと
前にも書きましたが、かげさんは、Oculus Riftに興味があるからです。
Oculus Riftは、来年の正式版が出るまで購入予定は無いですけどね・・・。


Oculus Riftでオレの嫁と会える本 UnityとMMDモデルで作る初めてのバーチャルリアリティ
には、UnityでMMDモデルを使ったVRプライベートライブの作り方が載ってます。

エフェクトソフトのEffekseerもUnityに対応していて
次の連休に記事を書く予定のADX2LEもUnityに対応しています。

つまり、これらは「初音ミク冒険記」の開発、
「Oculus Rift」向けのプログラムを作る時、
どちらでも使えるミドルウェアなのです。
使い方を覚えるソフトは、少ない方が良いですからね。

して、お値段は・・・

6ヶ月サブスクリプション
33,000円 (5,500円/月) 1ライセンス (税別)

フルライセンス
95,000円 1ライセンス (税別)

アップグレード
48,000円 1ライセンス (税別)

はぅ! 高額だから導入を見送ったLive2Dより高いですぜ、だんな・・・coldsweats02

とりあえず使うだけならトライアルライセンスがあるんで
それでも良いけど、ここは動画の最後に出てきた
インディーゲームの開発者なら無料で使える
機能制限なし、商用利用も可能なライセンス、
La-Mulana 2でも導入される「SpriteStudio for Indie」でしょ。wink

ココで気になるのが「インディーゲーム開発者」って言葉です。

ひとまずインディーズをWikipediaで調べてみる。

インディーズとは、ある業種においてメジャー(大手)に属さず、独立性の高いもののこと。 大手(メジャー)に対して中小のものをマイナーというが、そのマイナーの中でもメジャーと資本関係や人的交流などを深く持たず、系列化されていない独立性の高いものを指す。

続いて、インディーゲームを調べてみると
ニコニコ大百科には以下のように書かれている。

インディーゲーム(Indie game)とは「Independent game」(独立系ゲーム)の略称で、個人や小規模の開発チーム、新規独立系企業、同人サークルなどによって作られたビデオゲームタイトルの総称である。国内では和製英語の「インディーズゲーム」とも呼ばれている。自作ゲームや同人ゲーム、フリーゲームもこれに該当する。

ふむ、自作ゲームや同人ゲーム、フリーゲームが該当するなら
初音ミク冒険記もインディーゲームになるんだろうか?

OPTPiX SpriteStudio for Indieの利用条件についても見てみよう。

1.別途、利用期間を設定します。 2.本ソフトウェアを使用して開発した製品のタイトル画面に、スプラッシュスクリーンを表示させる義務があります。 3.本ソフトウェアが独立系開発者の開発環境支援等を目的としていることに鑑み、本ソフトウェアを使用して開発した製品の商用利用は、直近の決算期において、ソフトウェア開発・販売による売上が年間1,000万円未満の会社、または、昨年のソフトウェア開発・販売による収入が1,000万円未満の個人の方に限ります。 4.その他、インディーゲーム(インディペンデントゲーム)開発者向け無料特別版のライセンス付与に当たっては、当社の指定条件を満たしていただく必要があります。条件に違反した使用が判明した場合、ライセンスの使用を停止させていただく場合がございますので、ご了承ください。

とある。

ココで気になるキーワードが、3つ。
・利用期間がある
・独立系開発者
・当社の指定条件を満たす

期間限定ってことは、その期間内に作りきれなかったら、もう使えないの?

何か独立系開発者であることを示さないとダメなの?

スプラッシュスクリーンについては2で書いてあるのに
4でも「指定条件」と言っているってことは、追加で何かあったり審査があるの?

公式サイトだけ見ててもよく分かんないし
ライセンス申請フォームもシンプルでよく分かんない。

問い合わせする前にSpriteStudioの公式Twitterを見てみる。
一部、公式Twitterがリツイートしているのも含め、まとめてみた。

おお! 利用期間が切れても更新すれば良いのね!

ほぅ! 審査は無いんだね。

勉強会に行くと、こういう情報もあるのね。

ふむふむ、更新申請は、最初の申請フォームと同じなのか。

あ、かげさんもたまに見るサイト「ぴぽや」のぴぽさんのツイートだ。

おお、こういうのあると楽しそうですな!

役に立つ人が多い情報かもしれない。

やっぱり、かげさん以外でも気になる人がいるのね。

強者がいる!

うん、ここまで情報があれば、導入しても良さそうだね。happy01
Twitterの情報は、なかなか検索でヒットしないんで
目的の情報をみつけられなかったんですよねぇ。

実際に申請すると、すぐにメールが返ってきました。
その情報を使ってインストールします。

インストールしたんだけど、サンプルファイルは無いの?

補助ツール・ライブラリ群・サンプルのダウンロード」にありました。

よし、SpriteStudioは、後でやってみるとして、
初音ミク冒険記に組み込んでみるか
ってところで、この記事は終わろうと思います。

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

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

次の記事を書くにあたっての長い「前フリ」

次の「初音ミク冒険記」の記事で書くことは
「SpriteStudio」についてであることが決まっています。

が、それを書き始める前に
いったん、ここまでの「おさらい」をしておきます。

いきなり本題でも良いんだけど
かげさんがブログを読み返して情報整理する関係で
経緯をまとめる、という意味があるのです。

エフェクトツールBISHAMON、Effekseer、Prominenceのこととか、いろいろまとめたかったけど、実際は、まとまりきっていないZE☆
を書いた時みたいに何年も前のことを思い出しながら書くのは
書く方も時間がかかるんで・・・

さて、前回の記事でEffekseerを導入して
エフェクトの見映えを良くするところまでいけました。

エフェクトの描画までの流れは
確立した感じです。

エフェクトに関して残っている大きな問題としては
ゲームエフェクトとセーブに関する疑問
に書いたことがあります。

この問題の解決方法も、1つ思い当たることがあって
構想上はイケるんじゃないか?と思ってる。

が、これに着手すると
セーブデータ関連でいろいろと整合性を取らないといけないので
まとめて一気に作業しないと他の作業ができなくなるのだ。

実は、セーブデータ関連では、エフェクトの他にも
装備できるアクセサリ数を増やすなど
予定していることが既にいくつかある。

さらにセーブデータに関わるかもしれない懸念事項が他にもあるので
このタイミングでは着手せず、後にした方が良いと判断した。

じゃあ、次は何をやるか?

ここで今年3月、Qiitaに投稿された下記の記事を読んで
導入を検討していた「OPTPiX SpriteStudio」関連の調査することにした。

DXライブラリでADX2LE,Live2D Cubism,OPTPiX SpriteStudioを併用してみる

この記事は、ADX2LEについて調べていた時に見つけたものです。
ADX2LEについては、次の連休あたりに書こうと思います。

それと、これまでブログには書いていなかったけど
「Live2D Cubism」についても過去に調べたことがありました。

なのでDXライブラリを使って初音ミク冒険記を作っているかげさんには
興味を引くタイトルの記事だったのです。

「Live2D Cubism」は、下記の本で興味を持ってました。

公式Live2D Cubism モデリング&アニメーション

「Live2D Cubism」にはアカデミック版があり
この本が出版された頃は、

を通信教育で購入した時期が近かったため
学生証明書が有効期間だったのでアカデミック版とか使えないかなぁ?
と調べていたのです。

最終的には、「Live2D Cubism」の製造元に問い合わせて
一時的な通信教育の学生証名ではダメと分かり
通常ライセンスは、高額なので諦めたんですけどね・・・

ようやく本題の「SpriteStudio」に入るんですが
そもそも「SpriteStudio」に意識が向いたのはなぜか?
という、追加の前フリをします。

かげさんのTwitterを見ている人は知っていると思いますが
現在、かげさんは、PS Vita版の「LA-MULANA EX」という
『遺跡探検考古学アクションゲーム』をプレイしてます。

以下、最初の開発元NIGOROの公式サイトで配布されている画像素材で紹介しますね。
Ss_0000

Ss_0004

Ss_0005

Ss_0007

このゲーム、かげさんは、すごく「面白い」と思ってます。

現在のプレイ時間は27時間40分ですが
かなりリトライが多いので、実際はもっとプレイ時間は行っているはず。

それでも、ガーディアンを倒した数から想像するに
まだ中盤辺りじゃないかと思います。

VITA版の動画もあるんで載せておきます。

正直、1,500円とは思えないボリュームです。

しかし、下記の記事を書いた人がいうように
ジャンプ軌道にクセがあり、HP回復チャンスが限られているため
難易度が高いゲームで、万人向けではないとも思います。
ファーストインプレッション『LA-MULANA』

かげさんが気に入っているのは以下の点。
・2Dアクションであること
・探索型であること
・遺跡探索であること
・謎解き要素が半端無く多いこと
・頭身が低いキャラなのに動きが良いこと

何度も書いていますが、初音ミク冒険記の当初構想は
・メニューなどのシステム:軌跡シリーズ
・アクション:2D探索型ドラキュラシリーズ
です。

さらにインディー・ジョーンズなどの考古学アクションものが好きなので
遺跡探索アクションで謎解きがあるってのは良いです。

もっとも謎解きの難易度もかなり高いです。

序盤くらいしか直接のヒントになることは提示されないので
ヒント自体を読み解くという試行錯誤が必要で
昔のゲームみたいにメモを取りながらゲームする方が楽しめるタイプですね。

頭身が低いキャラなのに動きが良いってのも
初音ミク冒険記を作る上では参考になるんです。

そして、このゲーム、現在、続編が作られている最中です。
その続編では「SpriteStudio for Indie」が使われています。

•『LA-MULANA 2』のNIGOROに聞く「OPTPiX SpriteStudio」がインディーゲーム開発で使われる理由・・・「OPTPiXを256倍使うための頁」第3回

ということで、SpriteStudioに話が繋がったので、
この記事はここまでにしておきます。

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

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

2015.09.06

思った座標にEffekseerのエフェクトを3D描画できるようになるまで3(動画あり)

1つ前の記事までの成果は
・DXライブラリのカメラ関連はデフォルトのままでも良さそう
・2Dスクロールも考慮して、エフェクト座標の位置補正ができた
ということ。

後は、エフェクトの見映えである。

カメラをうまいこと設定すれば、こんなふうになるはずなんだ!
Screenshot0635

ということでカメラ関連の調整を
と思ったのが次の迷走の始まりでした・・・shock

Effekseer For DXライブラリのサンプルで
カメラ関連はこんなふうになってます。


// DXライブラリのカメラを設定する。
SetCameraPositionAndTarget_UpVecY(VGet(10,10,-20),VGet(0,0,0));
SetupCamera_Perspective( 60.0f * DX_PI_F / 180.0f ) ;
SetCameraNearFar(1.0f, 150.0f);

// DXライブラリのカメラとEffekseerのカメラを同期する。
Effekseer_Sync3DSetting();

実は、これ、
・SetupCamera_Perspective
・SetCameraNearFar
が無くても動きます。

Effekseer_Sync3DSettingは必須と考えるとポイントは
SetCameraPositionAndTarget_UpVecYです。
これ第1引数がカメラの位置、第2引数が注視点です。

なので単純に注視点の座標に(10, 10, -20)してやれば良いのでは?
と思いやってみたけどうまく行かず・・・

ここからまたいろんな値を試したものの
どれもしっくり来ません・・・weep

カメラ関連の座標は現状でOK、
描画対象のx座標やy座標もOK、
となるとあとは描画対象のz座標?

ということで、Effekseerでカメラを水平な感じにして
z座標の変更することの影響を
(エフェクトを手前←→奥に移動して)見てみる。

3d_effect1

ここでようやく拡大率を疑うようになった。

でも、初音ミク冒険記側で拡大率をいじって大きくすると
やっぱり見映えが悪い・・・

そう、この段階に至るまでEffekseerで
エフェクトファイルを出力する時に拡大率を指定できることを
忘れていました。coldsweats02

エフェクトの拡大は、Effekseer側でもできるのです。
2Dエフェクトの時は、エフェクト出力を1倍で出力して
初音ミク冒険記側でちょうど良く拡大していたから
すっかり忘れていたんです・・・

ということでEffekseer側と初音ミク冒険記側の両方で
拡大率を指定してみたところ、ようやく見映えが良くなりました。

さて、じゃあ、現状の動作を動画で見てみましょう!

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

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

2015.09.05

思った座標にEffekseerのエフェクトを3D描画できるようになるまで2

さて、なんでカメラ周りとかでハマっていたのか?
なんですが
初音ミク冒険記のデバッグ用機能が関係してます。

Photo_3

つまり、かげさんは開発時には
ゲーム本編の領域の外などにデバッグ情報を表示してるのです。

上と下を見比べると分かりますが、
実際には、ゲーム本編の領域サイズは、どちらも同じです。

下のかげさんの開発時の画面サイズだと背景の黒い部分が
画面中央になっています。

コレ、3Dカメラ関連では、どうなっているかというと
カメラの注視点座標が画面中央になるって考えた時に
デバッグしている画面サイズだと
カメラの注視点座標位置がゲーム本編の領域に含まれないんです・・・

なので、カメラの位置や注視点の補正が必要なんじゃない?
と思ったところから、迷走が始まりました・・・

ちなみに増分の横750とか縦350とかは
初音ミク冒険記のデバッグファイル設定画面で変更できます。
(設定後に起動すると有効になる)
Debugsetting20150905_01

かげさんは、カメラの注視点とかを
ゲーム本編の描画領域の真ん中辺りに持ってこないとダメだと思ってました。

だから、うまいこと、そうなるように座標を計算するようにしてのですが
全然ダメでした。

普通3Dのゲームってカメラの注視点の座標変わったとしても
画面の中央に来るようになっていますよね。
そう、注視点とかカメラの位置を動かしたからといって
画面中央を見ているというのは変わんないんです・・・

コレに気づかず、ずーっと変だなぁと思っていて
関連する4つの座標の何が正しいのかすら分からずにいました。

実は
8月の冒険記の進展を書いてみる
の記事を書いた段階では、あまりに分からないので保留にしようとしてました。

しかし、諦めたくなった時は、
大体、もうチョットだけ頑張ってみると
突破口が見えてきたりするもの。

これは過去の経験上、分かっていることです。
なので、もうちょっとだけ考えてみることにしました。

DXライブラリの3Dカメラ関連のリファレンスを見ると
DXライブラリを初期化した段階で
・カメラの位置
・カメラの注視点
・カメラの上方向
を設定しているように受け取れます。

上記の3要素、さらにモデルの位置の4つの座標を
一度に考えるのではなく、1つずつ考えていく。
「金田一少年の事件簿」でいうところの「困難の分割」です。

上記の3つはDXライブラリの初期値をそのまま使う
という前提で考えれば、
3Dモデルの座標だけを考えれば良いことになります。

さて、3Dの原点は、1つ前の記事で書いたように
画面の左下になっています。

x座標の性質は2D描画も3D描画も同じで
右に行くと値が増えて、左に行くと値が減ります。

考えやすくするため、
3Dの単位はピクセルで考えることにした場合、
x座標は、2Dの時と同じ位置と考えて良くなります。
y座標は、前回記事に書いたように
「画面の縦幅」-「2D描画で描画したいy座標」です。

「画面の縦幅」=
 「初音ミク冒険記のゲーム領域の縦幅(272)」+
 「ウィンドウサイズの縦幅増分(350)」
ということで座標は(272 + 350) - 2Dで描画したいy座標とします。

描画するモデルですがゲーム本編同様に
エナメルPの「ねんどろ風初音ミク」のMMDモデルにします。
(DXライブラリは、MMDモデルを読み込めるので)

早速やってみました。
Photo_4

3Dモデルが小さいのは、
モデルの拡大率を2にした関係で小さすぎるためです。

コレ自体は、Effekseer For DXライブラリのサンプルソースに
Effekseerで作成したエフェクトは2D表示の場合、小さすぎることが殆どなので必ず拡大する
というコメントがあったので気にしませんでした。

2Dのミクを左右に動かしたりジャンプしてみると・・・
おお! 3Dモデルのミクが追従してきます!

と思ったら、ある座標を境にして
急に3Dミクが横に離れていく動きをします。

うろちょろしていたら、背景無しだから気づかなかったけど
画面が横スクロールしている状態です。
1

Scrollkanren1

あれ?
ということは、DXライブラリのデフォルトのカメラ設定で
カメラ位置を2Dスクロールに合わせて移動したら
うまくいく?

と思ったけど、DXライブラリのリファレンスページ見ても
現在のカメラ座標とか取得する関数が無いから
2Dスクロールに合わせて補正とか出来ないじゃん!



待てよ、相手はDXライブラリだ。
隠し関数とかがあるかもしれん!

ということでDXライブラリのヘッダファイルで
3Dカメラ関連のところを見てみる。

うぉ! あるじゃねぇか!

GetCameraPosition(); // 3Dカメラの位置
GetCameraTarget(); // 3Dカメラの注視点
GetCameraUpVector(); // 3Dカメラの上方向

ということで、取得してみたら
3Dカメラのz座標って、この画面サイズだと-537で
注視点のz座標って、-538と1しか違わないんだな。

x座標とy座標は、
どちらもDXライブラリが作ったウィンドウの
画面中央と来たか・・・

どういうこと?
あ、いかん、いかん、
まずはモデル座標だけに集中、集中。

ということで、3Dカメラの位置と注視点の座標に
2Dスクロールの表示原点をVAddで加算してやることに。

すると、横スクロールはうまくいくようになったものの
縦スクロールがうまくいかない・・・

ここで1つ前の記事の
「3Dの原点座標が2Dの原点座標の位置になるように
 3Dカメラの描画位置を合わせた場合、
 y座標は、単純に符号を変えれば良い」
というのが効いてきます。

つまり、2Dスクロールの表示原点を絡める時は
x座標は加算、y座標は減算してやらないとダメってこと。

で、やってみたら、横スクロール、縦スクロールともにうまくいき
2Dミクの後ろに3Dミクが背後霊のように追従してきました!

念のため、ウィンドウサイズの増分を0とか他の値に下げて確認。
期待通りに追従してきます。

ということは、
エフェクト位置も3Dモデルと同じ考えでやってみたら・・・

よっしゃ!
うまくいきました!

が、次の問題が・・・

エフェクトの描画が2Dの時と同じで見栄えが悪いのです・・・
Photo_2

やっぱりカメラを調整しないとダメなのか・・・
ってことで、次の記事に続きます。

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

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