Home

わくわくプログラミング自習室 Blogs

クラウドサーバに移転しました

i-libro.netをGMO Publicのクラウドサーバに移転しました。……といっても、ドメインネームはそのままで、データを丸ごと持って行ったので、外からは何も変わっていないように見えるはずです。旧サーバの契約期限が6月末、GMO Publicの無料お試し期間が1週間。ちょっと時間が足りないかとも思ったのですが、思い切って移行作業をしてみたら2日で完了してしまったので、そのまま行くことにしました。

移行を思い立った理由はこんな感じです。

  1. コストダウン
    今までの専用サーバの半額程度で済む見込み。
  2. リソース変更が簡単
    ディスク容量などの増減が容易。
  3. 管理が簡単
    サーバの再起動や、CPU・ネットワーク負荷のチェックなどが簡単にできる。
  4. 単にクラウドサーバを使ってみたかった

作業中に気付いたことをいくつかメモしておくと……

…続きを読む

簡易データベース利用ライブラリ

かなり久々の更新になってしまいましたが、ちょっと便利そうなものができたので公開しておきます。 ときどき職場で使うツールをWebアプリとして作ることがあるのですが、面倒なのがデータベースへのアクセス。面倒というか、たまにしか書かないのでSQLやPHPを忘れてしまうのですね。そこで、JavaScriptのオブジェクトをそのままデータベースに書き込むライブラリを作りました。これならJavaScriptさえ覚えていれば、データベースを利用するアプリを簡単に作ることができるはずです。仕事で使う都合で、簡単なユーザー認証機能も加えています。

dowasureDBjsの利用例

dowasureDBjsの利用例

dowasureDBjsの詳しい説明はこちら ※ソース(jsとphp)は説明ページのgithubへのリンクから落とせます …続きを読む

【DXライブラリ3D入門第2部】物理エンジンBulletとDXライブラリを組み合わせて使う その3

かなり時間が空いてしまいましたが、BulletとDXライブラリに関する解説の続きです。今回はBulletの計算結果に合わせて、DXライブラリで3Dモデルを表示する方法を解説します。

WS002526

DXBullet_3DTest_src02.zip(要Visual C++ 2010 Express)

DXBullet_3DTest_bin02.zip(実行ファイル)

 

注:本記事で配布するソースコードにはモデルデータは含めませんので、それぞれの配布元から別途ダウンロードしてください(詳しくは初回記事を参照)。

©CRYPTON FUTURE MEDIA, INC.
解説中で使用しているモデルは前回に続きenamel toy box(ハッチさん運営)で公開されている「PMDねんどろ風初音ミクv1.1

pmdファイルのダウンロードや組み合わせ方については、過去記事も参考にしてください。

…続きを読む

【DXライブラリ3D入門第2部】物理エンジンBulletとDXライブラリを組み合わせて使う その2

前回記事に続いてBulletエンジンとDXライブラリを組み合わせて使う方法を説明していきます。

WS002219

DXBullet_3DTest_src01.zip(要Visual C++ 2010 Express)

DXBullet_3DTest_bin01.zip(実行ファイル)

…続きを読む

【DXライブラリ3D入門第2部】物理エンジンBulletとDXライブラリを組み合わせて使う その1

ほぼ3ヶ月ぶりの更新です。今回解説するのは、DXライブラリと3D用物理エンジンBullet(バレット)を組み合わせて使う方法です。Box2Dと基本的な考え方は似ているのですが、細かいところが色々と難しいですね。とりあえずBulletの一番簡単なBasicDemoを移植できたので、そこまでを解説します。

WS002216WS002219-ブロックが床に落下して飛び散る。

DXBullet_3DTest_src01.zip(要Visual C++ 2010 Express)

DXBullet_3DTest_bin01.zip(実行ファイル)

…続きを読む

【DXライブラリ3D入門】2Dに合わせて3Dグラフィックスを描画する その3

お知らせ:DXライブラリオンライン関数リファレンス付録編の3D関数編を公開しました。まだすべての関数の解説は揃っておりませんが、本記事を読む助けとしていただければ幸いです(足りない関数については本家「DXライブラリ置き場」のリファレンスをご参照ください)。

注:本記事で配布するソースコードにはモデルデータは含めませんので、それぞれの配布元から別途ダウンロードしてください(詳しくは初回記事を参照)。


引き続き前々回記事で公開したマリオブラザーズ風のゲームデモのグラフィックス処理について解説していきます。今回説明するのは表示範囲内にあるモデルを絞り込む方法です。範囲内の物体を高速に行うのは意外と面倒なのですが、ここではBox2DのQueryAABBという関数を使います。AABBは「Axis Aligned Bounding Box」の略で、「軸に沿った範囲を表す矩形」という意味になります。軸に沿わない――つまり回転もありうる矩形に比べると、高速に判定ができるわけです。

WS001631

…続きを読む

【DXライブラリ3D入門】2Dに合わせて3Dグラフィックスを描画する その2

お知らせ:DXライブラリオンライン関数リファレンス付録編の3D関数編を公開しました。まだすべての関数の解説は揃っておりませんが、本記事を読む助けとしていただければ幸いです(足りない関数については本家「DXライブラリ置き場」のリファレンスをご参照ください)。

注:本記事で配布するソースコードにはモデルデータは含めませんので、それぞれの配布元から別途ダウンロードしてください(詳しくは初回記事を参照)。


引き続き前々回記事で公開したマリオブラザーズ風のゲームデモのグラフィックス処理について解説していきます。解説を書く中でソースコード中の問題をいくつか見つけて修正したので、新たにこちらのソースコードをダウンロードし直してください。

maori-bros3D_src2.zip(要Visual C++ 2010 Express)

横スクロールタイプのゲームでは、ステージ内のどこを画面に表示するのかを決めなければいけません。3Dグラフィックスの場合、どこが表示されるかを決めるのはカメラです。カメラがどこに配置され、どこを注視しているかによって、「何がどこに表示されるのか」が決定されます。つまり、スクロールの進行に合わせてカメラを動かさなければならないということです。

サンプルプログラムの2D部分では、左右は主人公が画面中央に来るようにスクロールし、上下は画面の端から200px以内に主人公が入ったときにスクロールすることにしています。そのために主人公の現在位置から、表示範囲の左上隅座標(screen_x, screen_y)を求める計算を行っています。

WS001629

…続きを読む

【DXライブラリ3D入門】2Dに合わせて3Dグラフィックスを描画する その1

お知らせ:DXライブラリオンライン関数リファレンス付録編の3D関数編を公開しました。まだすべての関数の解説は揃っておりませんが、本記事を読む助けとしていただければ幸いです(足りない関数については本家「DXライブラリ置き場」のリファレンスをご参照ください)。

注:本記事で配布するソースコードにはモデルデータは含めませんので、それぞれの配布元から別途ダウンロードしてください(詳しくは初回記事を参照)。


前回記事で公開したマリオブラザーズ風のゲームデモのグラフィックス処理について解説していきます。このゲームデモはもともと2D向けに作ったものです。3D版ではジャンプ処理のあたりを少し調整しましたが、基本的にはほとんど同じプログラムです。main.hの12行目にある定数B2D_DEBUG_DRAWのコメントを解除してから実行すると……

main.h

#include <DxLib.h>
#include <Box2D/Box2D.h>
#ifdef _DEBUG
	#pragma comment(lib, "Box2D_d.lib")
#endif
#ifndef _DEBUG
	#pragma comment(lib, "Box2D.lib")
#endif
#include "_dxdebugdraw.h"

//定数
#define B2D_DEBUG_DRAW
const int VELOCITYITE = 6;		//速度計算精度
const int POSITIONITE = 2;		//位置計算精度

3Dグラフィックスに重なってBox2Dのデバッグドロー(物理エンジンが管理しているボディやジョイントを表示するデバッグ用機能)が表示されます。これを見ると完全に2Dのプログラムであることがわかると思います。

WS001607

©CRYPTON FUTURE MEDIA, INC.

Copyright (C) 2008-2010 唄音ウタProject, 飴屋/菖蒲 All Rights Reserved.

…続きを読む

【DXライブラリ3D入門】MikuMikuDance風かつマリオブラザーズ風なゲームデモ公開

お知らせ:DXライブラリオンライン関数リファレンス付録編の3D関数編を公開しました。まだすべての関数の解説は揃っておりませんが、本記事を読む助けとしていただければ幸いです(足りない関数については本家「DXライブラリ置き場」のリファレンスをご参照ください)。

注:本記事で配布するソースコードにはモデルデータは含めませんので、それぞれの配布元から別途ダウンロードしてください(詳しくは初回記事を参照)。


ようやくマリオブラザーズ風のゲームデモができあがりました。元々2D前提で作ったものを3Dに変更したため、座標変換がややこしいことになってしまい、予想以上に手こずりました。取り急ぎソースコードと実行ファイルを公開しますが、解説はまた日を改めてとさせてください。

WS001596WS001599

動画も用意したのですが、ゲームとキャプチャソフトを同時に実行できるスペックが無かったので、iPhoneで撮影しています。BGMはYoutubeの機能で合成したもので、実際のプログラムは無音です。操作方法はカーソルキーの左右とXキー、頭突きで動くブロックは動くだけでコインなどは出てきません。

http://www.youtube.com/watch?v=56foghugriI(クリックして動画再生)

©CRYPTON FUTURE MEDIA, INC.
Copyright (C) 2008-2010 唄音ウタProject, 飴屋/菖蒲 All Rights Reserved.

解説中で使用しているモデルはenamel toy box(ハッチさん運営)で公開されている「PMDねんどろ風初音ミクv1.1」「PMDねんどろ風デフォ子v1.11」です。

…続きを読む

【DXライブラリ3D入門】アニメーションの切り替えを滑らかにする

お知らせ:DXライブラリオンライン関数リファレンス付録編の3D関数編を公開しました。まだすべての関数の解説は揃っておりませんが、本記事を読む助けとしていただければ幸いです(足りない関数については本家「DXライブラリ置き場」のリファレンスをご参照ください)。

注:本記事で配布するソースコードにはモデルデータは含めませんので、それぞれの配布元から別途ダウンロードしてください(詳しくは初回記事を参照)。


前回は「立つ」「走る」「ジャンプ」のアニメーションをキー操作に合わせて切り替える方法を説明しましたが、一瞬でモデルの向きやポーズが変わってしまうため、不自然に見えるという問題がありました。これを解決するために、DXライブラリには複数のアニメーションをブレンドするMV1SetAttachAnimBlendRate関数が用意されています。ただし、再生時間の設定やアタッチ、デタッチといった処理に合わせて、さらにブレンド率の設定もしなければいけないので、どうスマートに組み込むかが工夫のしどころです。

WS001584WS001587WS001588

今回の作例:いきなり「立つ」→「ジャンプ」へ切り替わるのではなく、切り替わり途中の中間段階のポーズが自動的に作られる
©CRYPTON FUTURE MEDIA, INC.
解説中で使用しているモデルは前回に続きenamel toy box(ハッチさん運営)で公開されている「PMDねんどろ風初音ミクv1.1

※今回は拡大していないオリジナルのモデルをそのまま使用します

…続きを読む

Home

Amazonリンク

Return to page top