投稿記事

2020年 05月の記事 (2)

レベル1 2020/05/31 15:25

「シロウト家出娘と俺」進捗報告


お久しぶりです。クラムチャウダーです。
当サークルでは日常系SLGの製作を進めております。
初めて挑戦するジャンルなので今までと違い製作する素材が大分異なっており、先が読めませんね。
まだまだ全容をお見せできるレベルまで進んでいないのですが、今やっていることをお知らせしたいと思います。
この記事を見てもどんなゲームなのかイマイチ分からないかもしれませんが、長い目で見てやってください。

キャラ表情製作の日々


本作では1キャラを重点的に描くと言うことでヒロイン「沖美夏帆」の表情もかなり多めに用意しています。
これはラフなので完成版では若干修正が入っている物もありますが、会話シーンではフェイスウインドウが表情豊かに変化してくれます。

ボイスについて

今まで当サークル作品にはボイスが付いていなかったのですが、本作からヒロインキャラにボイスを付けることを検討しています。
その辺りのノウハウがまだ足りていない部分もあるのですが、今回は色々と頑張りたいと思っています。

フォロワー以上限定無料

アイコンの製作とか

無料

【 有料プラン 】プラン以上限定 支援額:500円

断面図の製作とか

このバックナンバーを購入すると、このプランの2020/05に投稿された限定特典を閲覧できます。 バックナンバーとは?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

レベル1 2020/05/17 12:31

タイトル決定!「シロウト家出娘と俺」…‥そのままです

どうもクラムチャウダーです。
ようやく新作タイトル名が決定しました!
「シロウト家出娘と俺」です。
……まあそのままと言いますか、仮だったタイトル名がそのまま正式名に格上げされました。
まだロゴなどは制作中ですので、後日公開されると思います。

ヒロインと世界設定

※本作はまだ開発中のものですので設定や仕様は変わる可能性があります


本作のヒロイン「沖美夏帆(おきみなつほ)」さんです。
推定年齢はX校生くらい?
ある事情があって家出してしまい、世間から隠れて主人公「俺」の家で同棲を始めることに。
彼女はほぼ引きこもりなのでその気になったらHな事をし放題……みたいな生活を送ることになります。
ほのぼのした日常生活とちょっとダークな設定が絡み合う一風変わった日常系SLGとなります。

解像度アップ!

本作では描画解像度で1600x900を使用する事にしました。
(※次回以降もこれで行けるという保証は無いですが…‥)
とにかく今回は前作より高解像度の画面でゲームをお楽しみいただける予定です。
しかしおかげで長年使い回してきたUI周りを作り直すことになり…‥控えめに言って地獄の予感!?

技術的な話

ゲームエンジンのテキスト描画周りを大幅に更新しました。
今までフォントグリフ取得に昔懐かしいWindowsAPIを使っていたのですがその辺りをまるっとオープンソースのFreeType2に差し替えました。
これでゲーム本体に同梱したOpenTypeやTrueTypeフォントをそのまま描画できます。


※UIやテキストはテスト用に仮のものです。実際のHシーンのものではありません。
文字の背景の影を大きくしてウインドウの透過率を上げても読みやすくなりました。
しかし一つ困ったことが発覚。
WindowsのOSフォントではハートマークなどのUNICODEで追加された記号が描画できていたのですが案外フリーのTrueTypeフォントでは収録されておらず表示できなかったりします。
そこで特殊な記号の文字コードが来たときは独自のビットマップフォントを描画する機能を実装しました。

おかげでこんな変則的なテキスト表示も可能に…‥
ちなみに私の本業はプログラマーですので、この手の作業のほうが慣れていたりします。
(シナリオ書いたり背景モデリングしてたりしますけどそこは趣味なのですよ!)

FreeType2(freetype-2.10.2)でハマりそうだったところ

※このセクションは完全にプログラマー向けです。
有り難いことにFreeType2の使い方はネット上に情報が色々あるのでそれほど難しくないのですが、それでもちょっとはまりそうだったところがあるのでここに私の解決方法を似せておきます。
ちなみに今回試験的に使用しているフォントはGoogle Fontsにある KosugiMaru-Regular.ttf です。

フォントグリフのビットマップ取得前、FT_Get_Char_Index()でメモリアクセス違反で落ちる

原因は読み込みにFT_New_Memory_Face()を使用していたことと関連がありました。
FreeType2でフォントファイルの読み込みに使う関数は一般的にFT_New_Face()かFT_New_Memory_Face()のいずれかだと思いますが、FT_New_Memory_Face()を使用した後はFT_Done_Face()を実行するまでバッファを解放してはいけません。
FreeType2はFT_New_Memory_Face()を呼んだ後も使用者がフォントファイルのデータを保持し続ける必要があります。

ビットマップの表示位置

FT_Render_Glyph()で生成されるビットマップは固定幅では無く文字の描かれる部分のみですので表示時にオフセットを加えてやらないと位置がずれてしまいます。
私はこれを以下の方法で計算しています。

int Height = FT_Set_Pixel_Sizesで指定したフォントの縦幅
int baseline_up_offset = std::max((Height / 8 - 1), 0);//場合によってはstd::外さないと駄目なときが…

GlyphOffsetX = glyph->bitmap_left;
GlyphOffsetY = Height - glyph->bitmap_top - baseline_up_offset;

どうやら日本語フォントでは数ピクセル下に表示位置がずれる問題があるようなのですが正式な解決方法が分からなかったためbaseline_up_offsetでY位置を上げることで無理矢理解決しています(これでも大きなサイズでは多少ずれるようですが、今回はそれほど大きなサイズを使用しないのでこれで妥協しました)

フォロワー以上限定無料

キャラデザ衣装ラフです

無料

【 有料プラン 】プラン以上限定 支援額:500円

サブキャラのデザイン案ラフです

このバックナンバーを購入すると、このプランの2020/05に投稿された限定特典を閲覧できます。 バックナンバーとは?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索