
現在、DirectX と C++でオリジナルのシューティングゲームを作っています。
そこで、スコアや画面で文字(文)を表示したいのですが、
使うフォントを環境に依存しないようにしたいのです。
D3DXFontなどで文字描画はできますが、それは使うPCに入っているフォントしか表示できませんよね?
市販や同人のゲームを見ていると、「MS 明朝」などではなくオリジナル、あるいは製作されたフォントを使っているようにしか思えません。
フォントを配布された覚えもありません。
一つ一つの文字を画像にして、それから「画像として」表示する、という方法もありますが、それでは漢字の処理がかなり面倒なことになると思うのです。
つまり、「PCに入っていないフォントをゲーム中で自由に表示できる(ように見せかける)」方法が分からないのです。
やはり文字一つ一つを画像にするしかないのでしょうか。
それとも別の方法があるのでしょうか。
ご回答お願いします。
実際に作品を作っているサークルの方の回答もあれば嬉しい限りです。
No.4ベストアンサー
- 回答日時:
他の方の回答と同じなのですが。
。。方法は次の二つです。1.画像ファイルとして事前に用意する。
最も簡単な方法です。
画像として表示すれば、凝った自前のフォントも簡単に表示できます。
が、描画する文字が大量になった場合に、容量を食いますし、台詞など
頻繁に変わる可能性があるものの場合対処できません。
2.フォントファイルを起動中に追加する
AddFontResourceを利用して、起動中だけフォントを追加するようにします。フォントファイルを追加するので、台詞などが変化しても対応できます。起動、終了ごとにこまごまと追加削除をするのが嫌なら本体インストール時に勝手にフォントもインストールさせてしまうのも手ですね。
>>画像で処理したほうが「速い」という話も聞いたことがあるような
>>気がします。
確かに、D3DXFontの実体はGDIを使っての描画なので、「遅い」です。
しかしこれは毎フレーム描画せずに、一回だけRenderTargetに描画してそれを画像として表示してしまえばいいわけです。
お奨めは、ロゴ、メニューなど懲りたい部分は画像で作成しておき、台詞など大量に文字を扱う必要がある場合は、AddFontResourceで追加したフォントをRenderTargetに対して描画したものを利用するのが良いかと思います。
ありがとうございます。
なるほど、両者を使い分ける方法もあるんですね。
ステージタイトルを画像に、台詞を追加・削除にすれば、
面倒ということもなくなりそうですね。
参考にさせていただきます。
ご回答ありがとうございました。
No.3
- 回答日時:
毎回同じ文章を出す・数字を出す
などであれば、画像を用意するのが一番良いです。
#大げさな話フォントが無くても表示できますから。
環境に依存しないようにと有りますが、
具体的にどんな場合を想定しているのでしょうか?
DirectXならばWindows前提だと思うので、
英語・日本語程度の違いだとおもいますが、
AddFontResourceEx/RemoveFontResourceEx
などのWindowsのAPIを使用してオリジナルフォントを
ゲーム起動中のみ使うという手もあります。
!!
WindowsAPIをすっかり忘れていました。
DirectXの中ばかり見ていました。
ちなみに「環境に依存」というのは、
例えば、「フォントA」というフォントを(D3DXFontの中で)指定したプログラムを配布したときに、使う側のパソコンに「フォントA」が入っていないという場合です。
このときデフォルトの引数(フォント)を指定していないとエラーが出ると思われます。
AddFontResourceExやRemoveFontResourceExも調べてみようと思います。
ご回答ありがとうございました。
No.2
- 回答日時:
携帯ゲーム機用のプログラムを作ったことがありますが
自分でフォントを用意するしかないので普通にビットマップフォントを使って表示しました。
画像で表示するのが簡単で楽だと思います。
漢字の処理は別に面倒ではないですよ。
ご回答ありがとうございます。
考えてみれば、漢字も使うものだけを画像に入れとけば、それほど面倒でもありませんよね。
そういえば、下手にいろいろいじるより、画像で処理したほうが「速い」という話も聞いたことがあるような気がします。
画像を使う方法でも、工夫すれば面倒でなくなりますね。
参考にさせていただきます。ありがとうございました。
No.1
- 回答日時:
ゲームをインストール時にフォントもインストールするものもありますよ。
BitMap Fontは作るだけでも労力が必要で現実的では無いと思います、
市販ゲームでもBitmap fontはライセンスを買って使うものも多いです。
アルファベット+数字だけなら作るのはアリかな。
あとはフリーのBitmap fontもあるので、それを使うのも手ですね。
"環境依存しないように"に、マルチ ランゲージ環境も含むなら
UnicodeでいかないとDBCS(2バイト文字)が、文字化けするかと
思います。(Bitmap font時は除く)
ご回答ありがとうございます。
なるほど、そういえばゲームCDにはインストーラなるものがありましたね。
BitMapフォントというものも何度か見かけたことがあります。
早速試してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- 画像編集・動画編集・音楽編集 フォントについて 2 2023/08/08 17:31
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- スタンプ・絵文字・顔文字 前回質問の続き 1 2022/08/24 16:06
- Word(ワード) ワードでフォントを選ぶとき、一覧からではなく検索等できないでしょうか? 2 2022/10/22 17:52
- その他(インターネット接続・インフラ) Webサイトのフォント・級数変更について 1 2022/10/18 18:08
- Word(ワード) ワードフォント 一括置換の方法 4 2022/12/31 00:27
- Excel(エクセル) [テーマのフォント]、[見出しのフォント]、[本文のフォント]とは何ぞや? 2 2023/02/27 09:18
- Illustrator(イラストレーター) Illustrator アンカーポイント選択について 3 2023/01/30 12:31
- WordPress(ワードプレス) ワードプレスで、左寄せ画像と文字を横並びにせず、画像の下に文字を表示される方法を教えてください 1 2022/04/24 11:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
Excel:一部のフォントでセルの...
-
「MS Pゴシック」と同じ幅の...
-
逆向き/(スラッシュ)の入力方法
-
gvimでフォント、色テーマ設定...
-
PHPで\\マークが/に変換され...
-
WORD全角入力しても半角に...
-
Eclipseで文字がずれます。
-
「〆」 の表示方法
-
font-family の記載方法
-
VB2010 でのPictureboxのフォン...
-
似ているフォント(Win⇔Mac)
-
tex の文字に関して
-
Wordで、指定したフォント...
-
UTF-8を表示できるWindows環境...
-
PDFファイルにフォントを埋め込...
-
Webフォントのアップロード場所...
-
cssファイルの名称付け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
似ているフォント(Win⇔Mac)
-
MsgBoxについて
-
「MS Pゴシック」と同じ幅の...
-
英語版OSでの遊明朝、游ゴシック
-
メールで、榊の文字を木辺に神...
-
gvimでフォント、色テーマ設定...
-
C# Font GdiCharSet
-
CommonDialogでの、キャンセル...
-
Excel:一部のフォントでセルの...
-
Visual C++ 6.0 行番号の表示
-
ホームページをTeraPadで日本語...
-
ワードでゴシックの文字を太く...
-
font-family の記載方法
-
ベトナム語サイトの文字コード
-
Webサイトのフォント・級数変更...
-
逆向き/(スラッシュ)の入力方法
-
作成済みのホームページのフォ...
おすすめ情報