PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

ILLUST__0000s.jpg

ほい、過去に作ったイラスト鑑賞アプリですが、何枚いけるか確認してみました。
480x272 の寸法で17枚まで読み込めましたが、それ以上は読み込みエラーになりました。

もちろんそれは標準の32MB RAM での話です(PSP-1000)



寸法が 480x272 で、色深度がDXPでは32ビットカラーで格納なので1ピクセルあたり4バイト

計算してみると、

1枚あたりの消費量=480x272x4=522,240バイト

それが17枚だから

522,240バイトx17枚=8,878,080バイト

8MB強でダウンですか…。
PSPって意外に内部メモリー貧弱なんですね、うっうっうっ。

ISOファイルってファイル数が1本にまとめられるから、ボクは趣味の写真をPNG に変換してISOの中に入れてみました。
もちろん、このイラスト鑑賞アプリを改造して逐次読み込み型イラストビューワにしています。
これなら何枚でも表示する事が可能ですよっ

ISO化すると コピーはファイル1本だけで済むので早いし便利ですな

関連記事
スポンサーサイト

[edit]

CM: 2
TB: 0

page top

MikuMikuFight(仮称)

遊太郎という方がMikuMikuDance のモデルやモーションなどを使った格闘ゲームを作ります!と発表しています。
PSPじゃなくてWindowsパソコンですな。
2D視点の3D格闘ゲームだそうです。スト4みたいなのが目標だとか。ガンガレ

動作するパソコンのスペック(予定)
・AMD DualCore 6000+ 3.0GHz
・メモリ4GB
・グラボ nVidia GeForce8800GT
(なるべく低スペックPCに対応検討とのこと)



http://www.nicovideo.jp/watch/sm11716045

開発にどれだけの年月がかかろうとも これが遊べる日が来るのを信じます。開発頑張って下さい!


リンク
http://blog.livedoor.jp/frivolouslife/

関連記事

[edit]

CM: 1
TB: 1

page top

MikuMikuDance日記

素材
・VPVP-Wiki で紹介中のアイドルマスター美希モデル
・Windows100%の2010年6月号に付属のDVD-ROMに収録のモーション
・音声無し




このモーションを後ろから観るとどうなるのかな?と思って作ってみました。
結果は、「ええもん見れた」とだけ言っておこう。ウヒョ(笑)


関連記事

[edit]

CM: 0
TB: 0

page top

いきなりですが、私の所有のPSP-2000の話

外部ディスプレイ出力でPSP映像録画する場合、画面がちらつくのは仕方がないことなのだそうです
PSP-3000には、ちらつき低減機能があるらしく。いいなぁ、PSP-3000、とか

PSP-2000では、たまにちらつかない事もあるので運次第でちらつきの少ない動画が撮れるかも、という運試しw

ネットで調べていると、USB Grabber DM231C 付属の Honetech より アマレコTV Live という録画ソフトを使うと高画質に撮影できるという事を知りました。

高いキャプチャ機器を買ってもPSP-2000は画面がちらつくんだから安いキャプチャ機器で高画質動画を作りたいと思うのはわがままかな?

そこで、キャプチャソフト対決!というか比較をやってみます
まず、元ネタ画像から
実験用の 元画像


アマレコTV Liveでのキャプチャ画像
アマレコTV Liveでのキャプチャ画像


Honestech(USB Grabber 付属ソフト)でのキャプチャ画像
Honestech でのキャプチャ画像


この比較実験から、アマレコTV Live の方が画質が良いと判断できますね。

アマレコTV Liveは無料ソフトなのですが、必須コーデックがシェアウェアで¥1260円です。キャプチャソフトは¥3000円が相場ですので若干安いという印象です。

アマレコTV Live を使わなくても、画質を向上させる方法はあります。
「動画のビットレートを上げる方法」は一部の動画サイトでしか使えないのですが、手っ取り早いのが「映像引き伸ばし」という方法。AviUtiL という動画編集ソフトで出来ます。
PSPの 480x272 を 1280x720 へ HD化するとかなり高画質になります。
方法は、こっちで書いてます → PSPのゲームプレイ動画を録画しよう!

関連記事

[edit]

CM: 0
TB: 0

page top

◆ 質問 ◆

まず、この GIFアニメ があります。
これはPSPでくるくる回転させて表示できるでしょうか?
皆さん、考えてください。答えは すぐ下に書いてあります
(お持ち帰り自由なGIFアニメ ☆ 回転・春香さん)
回転 春香さん
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
答え
PSPのブラウザで表示できます

手段
1.メモリースティックへGIFアニメを保存します
2.PATH を控えます
3.PSPのブラウザで、いちばん左のメニューより「アドレス入力」で○ボタン
4.PATHを入力します
5. file:/フォルダ/HARURUN.gif ←こんな具合に(大文字、小文字は自由です)
6.そして○ボタンを押してプラグインを実行
7.めでたく、くるくると春香さんが回転します
8.『大・成・功!!』

PHOTO で表示させると静止画になるのは当然ですな


ここはPSPプログラミングのブログなので、ビットマップ画像表示(描画)のおさらいと共に、GIFアニメーションみたいな事をプログラムで実現させようという魂胆です
ビットマップについては過去記事を参照してね
> PSPプログラミング 32ビットカラーで描画しよう!その3 [ ビットマップ画像 ]


予定
1.DXライブラリを使ってGIFアニメを擬似実現
2.PSPSDKだけでGIFアニメを擬似実現① ビットマップ表示のおさらい
3.PSPSDKだけでGIFアニメを擬似実現② ビットマップデータをソースコードに埋め込みする
4.PSPSDKだけでGIFアニメを擬似実現③ GIFアニメーション、完成

明日からやります。請うご期待!




このGIFアニメーションを作るにあたり、使用したモノ全部書きます。
・MikuMikuDance.exe Ver.5.22a (3D動画製作ソフト)
 作者:樋口優様
・MikuMikuDance の アイドルマスター春香モデル(天海春香 バニースーツ ver.1.2)
 作者:くらうち様
・IDOLM@STER背景
 「あいますろだ」過去にダウンロードしたモノ
・Batch GOO!(画像形式変換・リサイズ・回転・加工ソフト)
 LNSOFT(エルエヌソフト)様
・GIFアニメ作成フリーソフト、作り方も簡単【無料バナー作成工房】
 http://www.bannerkoubou.com/anime/
 画像を持って↑へ行くと作れます。簡単!

◆ 画像の情報 ◆
0.2秒間隔で画像を切り替え表示しています

大勢の皆様の製作物を使わせて頂き、このような作品が作れました。とても感謝しております。多謝!


P.S.「みくねぎっと乙。」は忘れていませんよ、ある事を調査中なのです。

関連記事

[edit]

CM: 1
TB: 0

page top

まず、お勉強から始めます。「勉強なんてイヤだッ!帰るッ!」という方は ご自由にドゾ

ここでは、アニメーションの原理から講釈します
ご存知の通り、「アニメーション」の映像とは「パラパラまんが」であり、「最初の絵」を表示させた後、指定の時間をおいてから「次の絵」を表示し、その後 指定の時間をおいてから「次の絵」~~~~~、と以下省略

一般に、日本のテレビでは、「1/60秒毎に更新される絵」と連続した音声を組み合わせて「動画」としています
(ちょっと解説かおかしいかもしれませんが、理論はコレです)

余談ですが、日本では実写動画の1秒あたりのコマ数は30コマで、アニメだと24コマです。
これを専門用語を使うなら、「フレームレート」といいます。単位は fps です。

動画サイトでは、1/60秒間隔は速いので 1/30秒間隔でのフレームレート(絵の書き換え/コマ数)となっています

PSPにも 1/60秒間隔で更新される液晶画面が備わっています


前にも解説しましたが、PSP画面への描画&表示には垂直同期信号でタイミングを取らないと画面がチラつくのです
> 垂直同期信号とは【VSYNC】 - 意味/解説/説明/定義 : IT用語辞典

つまり、1/60秒よりも速い速度で画面の書き換えを行なっても、実際に観れる映像は「1/60秒毎に切り替わる絵」なので、最速でも 1/60秒毎に1回のスピードで書き換えをしないとダメ、という事です。
もちろん、1/30秒間隔で画面書き換えをしてもいいのですが。

ここまできたら、感の良い方はDXライブラリPortableを使ってパラパラまんがをやるプログラムが書けると思います。

ちょっと書いてみると、
1.「パラパラまんが の絵」全部をメモリに読み込む
2.(表示速度を調節しながら、「絵」を描画する)
3.「最初の絵」を描画する
4. 垂直同期信号を待つ
5.「次の絵」を描画する
6. 垂直同期信号を待つ
7. 繰り返しで 5.へ行く

こんな感じです

これはスライドショウの機能にも似ていますよね。音声を加えるとアニメ動画みたいになるのです


さて、明日こそ DXライブラリPortable で簡易アニメーション・プログラミングをやります

今晩、絵の素材作りをやっときます(笑)


関連記事

[edit]

CM: 0
TB: 0

page top

『千早が765衣装で吹っ切れた!? PSPをもうすぐリリースします
今、動画を作ってみたところです
いまから Readme.txt を書きます。細かいバグとか見つかって手直しも少々

アイコン
20101015100413.png

ゲームを始める前のメッセージ
20101015100442.png

ゲーム中は こんな感じ
20101015100528.png
アイドルマスターの如月千早ちゃんが踊ってくれますYO!

これってゲームなんだろうか?ダンス鑑賞ソフトという新しいジャンルかもっ!?


音楽ファイルと背景ファイルは同梱しませんので各自用意してチョ

関連記事

[edit]

CM: 0
TB: 0

page top


はいはい、出来た動画です。HDですYO!

これは3Dポリゴンじゃなくてアニメーション・セルなのです。26枚あります。それを連続でパラパラまんがみたいにして表示しています。

製作には、MikuMikuDance とモデルデータとモーションデータを使いました。AVI動画で出力させて、PNG画像に分解して加工…、と結構手間がかかっています。

背景は、XPの「草原壁紙」なのはバレバレですな。左右にゆっくり スクロールさせています。

今日はまだほかの事をやるので配布&解説は明日以降です。延期になってごめんね
ま、動画でも楽しんでください。

なお、配布物には音楽ファイルと背景画像ファイルは入れないので各自用意してね!無くても動作するようにしてますが。



関連記事

[edit]

CM: 0
TB: 0

page top

『千早が765衣装で吹っ切れた!? PSP』





● ご挨拶 ●
ポリゴンでなくて26枚のセルでパラパラまんがをやっています
PSPでアニメーションをやってみたいな、と思い、実現しました♪

本日より いよいよ配布開始でっす
関連記事

[edit]

CM: 0
TB: 0

page top

2011年6月10日更新
元の日付・時刻(2010/10/15 20:12:32)

小さいファイルサイズでの公式PSP対応化が実現!!!

◎この自作ゲームは圧縮署名化ツールで公式PSPでも遊べるようになっています



『千早が765衣装で吹っ切れた!? PSP』 公式PSP対応版リリース




● ご挨拶 ●
作者の猫山猫宗と申します
ポリゴンでなくて26枚のセルでパラパラまんがをやっています
PSPでアニメーションをやってみたいな、と思い、実現しました♪
署名ツールで署名してあるので正規PSPでも起動&動作可能ですお!
公式PSPでの起動&動作が可能です


◆ 対応PSP ◆
・システムソフトウェア2.80以上の公式PSP
・自作ソフトを起動可能なPSP(カスタムファームウェアやHENなど)
・ユーザーモードのソフトウェアなので、3.XX以降カーネルモード必須
・プラグインは全部OFFで!

◆ 未対応PSP ◆
・カーネルモード(1.50Kernel)になっているカスタムファームウェアのPSP
・Half-Byte Loader から起動した場合(MP3音声が出ません)
・システムソフトウェア2.80未満の公式PSP

-- 続きを読む --
関連記事

[edit]

CM: 1
TB: 0

page top

それでは、前回の配布物についての説明とか書きます

以前作った、イラスト鑑賞アプリでは、480x272の寸法(憂煉氏によると 512x512ぶん消費している、との事)でメモリ上に17枚までしか画像データが持てない、という事が解ったのでなるべく小さいアニメーション・セルを使ってみました。

この千早ちゃんセルは、165x272 の寸法で26枚あります。なんとかメモリに収まってヨカッタ

さて、これを PSP実機で鑑賞してみると、時々 フレーム落ちしてますが、それは透過情報ありのPNG画像を、背景画像とORで合成して貼り付ける処理をしているのが主な原因の一つだと思われます。

千早ちゃんセルを描画している処理は、これなので、↓↓
> int DrawGraph( X座標, Y座標, 画像のハンドル, 透過フラグ);
「透過フラグ」を FALSE にするともうチョイ描画速度が速くなってフレーム落ちが無くなるであろうと推測されます。

よく考えると、アイドルマスターSPは3Dポリゴン処理を 物凄く頑張っているなぁと思いますよ。

アニメーションをやる場合、透過情報付きPNG画像でやるのは効率が悪いのです。
アニメーションはコマが多くなるのでなるべく小さい、1ピクセルを1バイト情報でまかなえる画像を使ってやるのが一般的です。それがスプライトを使った簡易アニメーションです。
ゲームで良く見られる、登場人物などのスプライトの、簡易アニメーション処理ですね。

例を挙げるなら、ドラクエのキャラの歩くモーションだったり、格闘ゲームの必殺技を繰り出す時の動作のモーション(波動拳のアニメーションとか)だったりします。

で、上記のアニメーションは「セルを使った、動作ごとのアニメーション」とでも言っておきましょう。


もう一つのアニメーションとは、「画面のスクロール」です。
『千早が765衣装で吹っ切れた!? PSP』の動画で、背景が ゆっくりと 左右にスクロールしているのに気付いた方も多いと思います。

同じ絵を、画面表示のタイミングでちょっとずつ右方向へ表示座標をずらしながら描画し続けると、その絵が右に流れてゆく、という錯覚を与えます。これが画面スクロールの原理です。

画面の左右スクロールの際に気を付けなくてはいけないのは、左右へ速く画面スクロールさせてしまうと、見ている人が酔っ払います、吐き気を もよおす恐れもあるのでやってはいけません、という事。


PSPのテクスチャ寸法は、最大 512x512 で、PSPの画面寸法は、480x272 ですね。それでは 512-480 = 32 で横幅が 32ピクセルしか動かせないよ~と思っている方、DXライブラリには、画像の 拡大・縮小 描画機能もあるのですよ、と言っておきます。
画像の拡大描画だと、縦・横に2倍させれば 512x512寸法のテクスチャが 1024x1024寸法であるかの様に振舞う事ができます。これは便利ですね。


おさらい

アニメーションには 2種類あります。
・フレーム毎に絵が変化するパラパラまんが的なモノ
・同一画像の連続移動によるスクロール的なモノ

まだ他にも種類があるかも知れませんので、ご存知の方、教えて下さいませ。

次回は、ドラクエのキャラの歩くモーションのアニメーションをやります。
またもや透過情報付きのPNG画像でやります。単純なサンプル物が出来るかと思います。


「続きを読む」に、『千早が765衣装で吹っ切れた!? PSP』のソースコードの簡易版を貼り付けておきます。
(閲覧の推奨ブラウザは Firefoxです)

-- 続きを読む --
関連記事

[edit]

CM: 4
TB: 0

page top

もうすぐ冬が到来します。

季節を先取りしたいあなたにお勧めする、ペンギンさんでスノーボードをやっちゃうPSP自作ゲームをご紹介します。


ゲーム中は 軽快なBGMが鳴ります。障害物よけレースといった感じ。
PENGIN_GAMING.png


-- 続きを読む --
関連記事

[edit]

CM: 0
TB: 0

page top

PSP自作ゲーム PSPで倉庫番 『Mario and Luigi Sokoban』 

2010/10/21
Thu. 22:22

さて、世界的に有名なパズルゲームの一つ、PSPの倉庫番をご紹介です

Q.どんなゲーム
A.ステージ上の荷物全部を、赤い×印の場所に収納するゲーム

ステージ1はこんなの。これは簡単!
ステージ1
-- 続きを読む --
関連記事

[edit]

CM: 0
TB: 0

page top

皆さんにお知らせです

これから、このブログは 深夜22:30~早朝04:00 の間は 新しい記事を書かない事にします
私は社会人なので、当然、会社から帰ってくる時刻は遅いのです。今までは 帰宅後にブログを更新していましたが、PSPプログラミングの勉強がしたくてこのブログの更新を夜更かしして待っている方も居るのではないかという推測から、以後、早起きして早朝に記事を更新する事に変更します

夜更かししている頭では、理解力も落ちるだろうし寝ぼけてロクな事にならないと思います。
なので早起きしてスッキリした頭で勉強して欲しいのです。

「早起きは三文の徳」と言いますし、これからは早起きしてPSPプログラミングの勉強をして下さいね♪


関連記事

[edit]

CM: 0
TB: 0

page top

はいはい、昔なつかしのゲームウォッチのPSP版でっす。
任天堂の、一世を風靡したゲーム機「ゲームウォッチ」の「パラシュート」がPSPで遊べちゃう!

Q.どんなゲーム
A.パラシュートで降りてくる人を、ボートに乗せて助けるゲーム
  落としてしまったら、サメの餌にされちゃうぞ!!

スクリーンショット
プレイ中


ゲームの始め方
ゲームの始め方


タイトル画面
タイトル画面


アイコン
アイコン


【 操作方法 】
・ボートを移動させるだけです
 左へ … 「Lトリガー」か「↓キー」
 右へ … 「Rトリガー」か「×ボタン」

【 一時停止&再開 】
・スタートボタン

チョイ遊びにもイイのではないかと。


ダウンロードしに行く
QJ.netさんにリンクしてます。



関連記事

[edit]

CM: 0
TB: 0

page top

PSPプログラミング RPGの雛形を作る前に お勉強 

2010/10/22
Fri. 21:31

はい、またお勉強です。

これはRPGに特化した内容です。興味ありましたら勉強してください。

無の状態ではヒントが掴めないので、ドラクエⅢ のプレイ動画(YOUTUBE)を貼り付けます。適当に選んでみた動画です、観て研究して下さい。



【 考察 】
・プレイヤー・キャラは大抵、勇者である
・登場キャラは絶えず足踏みしている
・ドラクエⅢの場合、ファミコンなので足踏みのモーションは2パターンの絵で構成されている

 一般に、立っている状態から 歩く行為へ移るには、と言うと、

  0.両足揃えて(立っている状態)
  1.右足を前に(1/4マス 進む)
  2.両足揃えて(2/4マス 進む)
  3.左足を前に(3/4マス 進む)
  4.両足揃えて( 1マス 進む)

 という様な4ステップのアニメーションで出来ます。
 キャラ絵を制作するなら、「立っている状態」と「両足揃えて」の絵は同じで良いので、上下左右の4方向×3枚の絵=12枚の絵を作るのが理想的です。

 ここで、「絵をどこかから調達したい」と思っている方へ朗報。
 RPGの絵の素材を作っている方がホームページで配布をやっていますので、それを利用すると良いのですよ。
 検索語は、「マップチップ」や「RPG 素材」などなど。

 猫山のお気に入りサイトをご紹介 ↓↓

 First Seed Material (キャラ素材)

 PSP xvi では、「再配布可能なマップチップ」を使いますが、PSP xvi の配布物から絵を抜き出して 別の配布物に使うのは控えてくださいね。実験とか個人利用とかなら許可ですが。
 利用規約に従ってください。

 あと、背景がスクロールする場合に、歩きのステップで 1/4マスずつスクロールさせます。その時に「歩きのステップ」が始まったら キャンセルできないとか、途中で他の方向へは移動できない、とかいう制限も導入します。「歩きのステップ中」は他の作業は出来ない事になります。


 最初なので、勇者の表示(足踏みあり・向き変更可能)とマップチップを使った背景の実装(芝生だけですが)をやってみようと思います。
 画面スクロールは、次回やる予定です。ちょっとずつやります。その方が解りやすいはずですからね。

 これにどんどん肉付けをしてRPGみたいにする計画発動!(完成する保障は今のところありません)


関連記事

[edit]

CM: 0
TB: 0

page top

えーと、良く見るとゲームアーカイブスに「大魔界村」というゲームがあるので ニコニコ動画 から動画を引っ張り出し作戦。ゲームセンター版ですが、PSP版とそんなに違わないとか思い貼り付け


大魔界村 1周目


大魔界村 2周目


こういうの見せられたら、作りたくなるのがプログラマーってもんだなww

プレイステーションストアでの紹介ページ
http://www.jp.playstation.com/software/title/jp0555npjj30020_daimakaimurajg26.html

お求めはプレイステーションストアでどうぞ
関連記事

[edit]

CM: 0
TB: 0

page top

PSPプログラミング RPG TEST v0.01 勇者が歩くよ 

2010/10/24
Sun. 05:55

2010/10/26
微妙にソースコード修正
READMEに著作権表記を追加


はい、今日の配布物では 勇者が足踏みするのと上下左右に向きを変える、というところまで出来ました
背景は芝生固定でスクロール無しです

ではスクショ


ソースコードは、やや難し目になりました。
めげずに解析してみて下さい。

今回からブログで配布する方式にします。

RPG_TEST_v0_01_zip.txt


ダウンロードする方は、ファイルの拡張子を ZIP にして保存・解凍して下さいね。

ソースコードの解説は次回やります。 質問も受け付けます。
興味ある方は、是非解析してみて下さい。


First Seed Materialさんの配布素材を使わせて貰っています。感謝です。

DXライブラリPortable も使用しています。憂煉さんありがとう。


関連記事

[edit]

CM: 2
TB: 0

page top

はい、解説です

素材は 標準PSPで表示・再生できるフォルダに入れてますでしょうか。
このRPGはまだ開発中なので、素材は EBOOT.PBP と別フォルダが良いと判断してます。

【 今回は、勇者の描画方法についてだけ解説 】
勇者は、上下左右の4方向に3パターンで合計12枚のキャラ絵を使用しています。
配布素材はDXライブラリPortable でも扱いやすい構成になっていましたので、勇者の絵は 背景を透過させただけで殆ど弄っていません。

勇者の絵は、308行目で読み込んでいます。
> LoadDivGraph( GRPH_HERO ,12,3,4,32,48,&HDL_Graph_Hero[0][0]);
↑これです。画像の分割格納読み込みをやっています。
これは、全部で画像を12個に分割し、横3列、縦4行、横幅32ピクセル、縦幅48ピクセルにして、その分割した画像のハンドルを、二次元配列HDL_Graph_Hero に順番に格納させる命令です。

&HDL_Graph_Hero[0][0] は配列の先頭のポインタですよ

注意:画像の分割数は最低でも1です。うっかり0にすると実行時に挙動がおかしくなります。コンパイルエラーにはならないので十分気を付けて下さい。

    

配布されているこの絵ですが、どう扱えば良いか?
縦は「向き」ですね。向きの定義はこれです。32行目からの部分。

#define MUKI_SHITA   0 // 下向き
#define MUKI_HIDARI  1 // 左向き
#define MUKI_MIGI   2 // 右向き
#define MUKI_UE    3 // 上向き


横は「パターン絵」とでも言いましょうか。どこで「モーション絵」になるように定義をしているかと言うと、59行目です。
> int PIC_Walk_Step[4] = { 1,0,1,2 };
↑この数値は、モーション絵のパターン番号の定義です。「Hero_Step」という変数を1ずつカウントして足踏みを実現しています。
「0,1,2,3,0,1,2,3,…」に対応させて「1,0,1,2,1,0,1,2,…」という数値を導けるようにしています。こういうのは変数に入れて定義しておけば簡単に処理できます。

勇者の表示(描画)は、198行目の
> DrawGraph( 224,104,HDL_Graph_Hero[Hero_MUKI][ PIC_Walk_Step[(Hero_Step>>4)] ],TRUE );
です。
PIC_Walk_Step[(Hero_Step>>4)] の (Hero_Step>>4) は何かと言うと Hero_Step÷16 の商を求める計算式の高速版です。2の4乗16ですから。
16で割っている理由は、足踏みのアニメーション絵の切り替え速度が そのままのHero_Stepの値 では早すぎたからです。
つまり、16/60秒(約 0.3秒)ごとに1枚ずつ、足踏みのアニメーション絵の切り替えをやっているのです。
1モーションに4枚の絵を使っていますので、16/60秒×4倍=64/60秒(約 1.1秒)かかる、という計算になります。

Hero_Step のカウントは 189行目の
> Hero_Step = (++Hero_Step)&(63);
↑これです。増加させたあとの&(63)は、カウンタの周期が1モーション=64フレーム(16フレーム×4パターン絵)だから0~63の範囲になるようにする計算式です。
63(10進数)は、0x3F(16進数)/ 00111111(2進数)です。
つまり、カウンタ値を 00111111(2進数)でマスクして値が63を越えない処理をする均一速度な高速版なのです。
解りやすく書いたら
++Hero_Step;
if(Hero_Step > 63) Hero_Step = 0;

↑こういうことです。if文は、コンパイルすると「条件分岐処理」に機械語翻訳される(アセンブル)ので真の場合と偽の場合とで処理速度が変化します。その為、スピード重視なゲームではif文の羅列はお薦め出来ません。

2進数で考える、左シフト演算や&演算は、ビット演算です。論理ビット演算と算術ビット演算があります。コンピュータが得意な技ですから覚えてくださいね。論理ビット演算は ふつう unsigned数値でやります。算術ビット演算は符号付き数値でやります。

シフト演算については過去記事をおさらいして下さい


背景の描画方法は、解説要らないと判断しましたので省略。

次回は、マップチップを使った背景の実装とスクロール実装をやります。


続きを読むに、RPG_TEST_v0.01 の全ソースコードを貼り付けてあります。以後、必要箇所だけソースコード掲載します。
閲覧推奨ブラウザは、FireFoxです(行番号も表示されるので)。


-- 続きを読む --
関連記事

[edit]

CM: 0
TB: 0

page top

PSPプログラミング PNG画像について調べました。 

2010/10/26
Tue. 22:21

今回は、DXライブラリPortable が採用している画像形式のPNG(ピング)について調べ上げた内容を書きます。

◎1ピクセルを構成するデータ長は、フルカラー時で最大64ビット長。通常のフルカラー時では32ビット長。
【 フルカラー時の内訳 】
・64ビット時(フルカラー64ビット / 48ビットカラー)
   透過情報=16ビット長
    青成分=16ビット長
    緑成分=16ビット長
    赤成分=16ビット長

・32ビット時(フルカラー32ビット / 24ビットカラー / 16,777,216万色)
   透過情報=8ビット長
    青成分=8ビット長
    緑成分=8ビット長
    赤成分=8ビット長

◎最大16ビット長のグレイスケール
【 グレイスケール時の内訳 】
・1つのピクセルが 白・灰・黒 65536階調で表現される図形データ

◎最大8ビット長のインデックスカラーモード(256色モード)
【 インデックスカラー時の内訳 】
・フルカラー(16,777,216色)から256個までの色を自由に選んで作成した図形データ
・1ピクセルが1バイト長(=8ビット長)で表現可能(パレット色コードは別として)
・最大256個のインデックスを参照して、対応する 32ビット長のパレット色コードを割り出して描画する方法が適切な表示方法です
・32ビット長のパレット色コードの内訳は、
   8ビット空き(予約)
   青成分=8ビット長
   緑成分=8ビット長
   赤成分=8ビット長
・透過情報は含まれない

大抵のゲームのキャラクタデータに使われるのは、256色モードのPNG、あるいはそれに近いデータの場合である事が多いです。データサイズ節約。
疑問 … 256色PNGは透明が表現できないのでは?
答え … そんな事はありません。任意の1色を透明として描画しない事により透明を擬似実現する事が可能です。
      そういう処理をする関数を作らないといけませんが。(^^;;;

一般に、フルカラー32ビットカラーのPNG画像の構造は、32ビットカラーBITMAP画像を ZIP圧縮したバイナリの構造とデータが良く似ている、と言われます。
フルカラーPNG画像の正体は、ZIP圧縮したBITMAP画像に近い、という事です。

PNG画像はそのままグラフィック画面に描画できる構造にはなっていないので、BITMAPデータに復元してから(デコード処理)画像データとして利用します。
一方、JPEG画像は別の圧縮方法を採用した画像データなので、これもBITMAP画像に復元してから画像データとして利用します。
ゆえに、JPEGやPNGは 読み込んでから復元作業をしてから表示するので、復元にかかる時間だけ表示待ち時間が発生します。

PNG画像は、使われている色数が少ない場合は 多い場合よりもファイルサイズが小さくなります。復元するとどっちも同じデータサイズになりますが。

DXライブラリPortableでは、PNG画像は 読み込みしてBITMAP画像データに変換した状態でメモリに格納されています。そうすることにより、画像の加工(拡大・縮小・回転・変形など)が楽に行なえるのです。

【 PNG画像の長所 】
・PNG圧縮されている分だけBITMAPより早く読み込みできる
・1ピクセルごとに、色の 透明化や半透明化を指定可能(フルカラー時 限定)


ここに書き漏れている事があったら追加しますので情報をお待ちします。
間違えていたら確認後に修正します。


関連記事

[edit]

CM: 0
TB: 0

page top

まぁ、論より証拠で動画を観るべし



電源投入後、わずか16秒で完全起動してますよっ!スゲェ!!
昔の日本製パソコンは、インタープリタ型のプログラムが作れるBASICというOSがROMで入っていたので、電源を投入した瞬間に 即起動してたモンだよなぁ…と懐かしく思ってみるテストw


これをPSPに当てはめると、メモリースティック起動のゲームはUMDで遊ぶよりも起動も読み込みも速くてイイ!

………という事になるのかな?


SSDについての資料はコッチ

Flash SSD - Wikipedia
関連記事

[edit]

CM: 0
TB: 1

page top

ついに公開!PlayStation携帯 は Android 3.0 を採用!!

クリックで拡大できれぅ~

発売の日程は、おそらく、ニンテンドー3DS の発売後の3月初旬~4月位ではないかと予想中ですが、果たして…


情報はこっちを見てチョ
http://japanese.engadget.com/2010/10/26/xperia-psp/

このプロトタイプはカッコ悪いので、製品はもっとカッコ良くなるかもww


関連記事

[edit]

CM: 0
TB: 0

page top

今回も お勉強です

【 図形の描画について 】

昔の家庭用ゲーム機(ここではファミコンを例にします)には、グラフィック画面が無くて代わりに「スプライトとBG画面」というのがありました。
グラフィック画面はパソコンでも使われているのですが一応解説すると、画面内の好きな位置に自由に点を打ったり図形を描いたりできますね。
一方、BG画面に図形を表示する事は、ワープロで文字を入力したら文字が表示される、という仕組みに似ています。
BG画面というのは、図形データを先に登録しておいて(スプライトデータ)、その図形データの番号をBG画面の指定場所へ書き込む事により、その図形が画面に表示される、という仕組みです。ですからBG画面は登録されてない図形データを表示させる事は出来ません。

DXライブラリPortable での図形描画は ファミコン方式とパソコン方式の両方が可能です。

【 画面のスクロールについて 】
ファミコンの場合、BG画面に図形を配置してから、画面表示のタイミングで表示位置をずらす事によりスクロールが実現できます。
PSPでは、画面表示ごとに 少しずつスクロールしている状態の絵をグラフィック画面に描画する事によりスクロールを表現させます。これは忙しいですがやらなければならない事です。
つまり、ファミコンは表示でスクロール、PSPは描画でスクロール、という事です。

【 スクロール描画のタイミング 】
マップチップの1マスは32ピクセルx32ピクセルで、画面のスクロールはその1/4幅単位で行なう事にする予定ですのでちょっと計算します。
勇者の1モーションは64フレームでアニメーションは16フレーム毎に行なわれるから、16フレーム毎に1/4マスをスクロールさせて64フレームで1マススクロール完成させなければならない、という計算です。
16フレーム毎に、8ピクセルずつずらしながら背景を描画すれば良いハズです。
スクロールは勇者の足踏みに同期させれば良いハズなので問題無いでしょう。

【 マップチップとマップデータ 】
マップチップは、1マス = 32ピクセルx32ピクセルになっています。
RPG試作品では、その寸法の芝生を for文で画面に描画していましたね。しかし、どうせならその縦横2倍の64ピクセルx64ピクセルの寸法の背景を for文で画面に描画させた方が処理速度が速いので(ループの回数が減りますので)、以後はその様にします。
マップデータはどういうのを作ればいいのか書きますと、表示用のマップデータと移動確認用のマップデータの2種類があれば良いです。マップデータを作るのは大変な作業なので専用のマップデータ作成エディタを作ってみるのも良いかと思います。

最初なので、簡単なマップデータを手作業で作って実験をしてから本格的なRPG作りをして行こうと思います。

時間がかかると思うので、次回から しばらく「みくねぎっと乙。製作講座」を再開して時間稼ぎ作戦!!


関連記事

[edit]

CM: 0
TB: 0

page top


h o m e |


 

2010-10