ぴーくるメモ

主にJAVAとLibGDXに関するゲームプログラミング制作メモ

ゲーム制作用の画像編集ソフト何か良いの無いかな・・・

たぶん全てを一つのソフトで賄えるソフトって有料の物でもたぶん無いだろうと最初から探してすらいないんだけど、何か良いソフト無いですかねぇ・・・。

 

使っているソフトを勝手に批評してみる(ゲーム用の画像編集という目線なので一般的な画像編集とは価値観の違いがかなりあると思います)

 

◆Paine.NET

使いづらいところは多々あるけど標準的な操作感。

一番使いづらい問題だった範囲の隅の表示を中央に持って来れない問題が最近のアップデートで修正されてかなり使いやすくなりました。

欠点は重いというか止まる事(フリーズも多いけどそれとは違う)

たぶん編集のバックアップ関係だと思うけど、操作中に数秒止まる。止まりすぎる。

お世辞にも使い易いとは言えないけれど、ゲーム用のドット単位の画像編集が比較的しやすく、機能も豊富なのでメインで使っています。

 

◆GIMP2

フリーソフトの中ではたぶん最も高機能で高品質な編集が可能なんじゃないだろうか。

欠点は使いづらい。とにかく使いづらい。分かりづらい。レイアウトも悪い。

機能的には他を凌駕する高品質な画像加工が可能なんですがとにかく使いづらさがハンパ無い。画像の縮小加工ぐらいにしか使っていませんが、品質が他のソフトとは段違いです。

重大な欠点がクリップボードからのペーストが機能しない事。かなり多用するのでこの問題も大きい。(このソフト内でのコピー&ペーストは可能だけど、他のソフトで作った物はいちいちファイルに保存して読み込ませる必要がある)

使いこなせればかなり強力なソフトなんだろうけど、ちょっとそれ以前の問題が多すぎるかな。

この手のソフトって感覚で使っちゃっていちいち説明や使い方なんて見ないで使う事が多いので、この問題も私にとってはかなり大きい。

何をやるにもいちいち調べないと分からない。使い方を調べてもそんな頻繁に使う機能なんて無いから次に使うときはほぼ忘れてる。そして前はすんなり検索で出てきた操作方法も次に検索する時はなかなか見つけられないというネットあるあるパターン。

色々と残念なソフト。

 

◆FireAlpaca

主にペンタブでの作画用に使っています。

ペンタブでのイラスト向きなソフトも色々試してみましたけど、フリーソフトではこれが一番使い易く、必要な機能も十分揃っている感じ。

GIMP2でもペンタブでの描画に十分な機能がありそうな感じでしたけど、とにかく(以下略

癖も多く、使いづらいところも多々あるけどフリーソフトだと考えれば十分すぎる。

有料ソフトはまぁ機会があれば使ってみようかな程度で考えていますが、絵描きがメイン職業ではないので余程機能に不満が出ない限りイラスト用ソフトはこれで十分かな。

ドット単位での編集が先の二つよりしづらいんだけどグリッド表示機能は先の二つより優れているという謎。

 

 

 

現在の作業ではFireAlpacaもしくはPaint.NETで画像作成

GIMP2で画像のリサイズ(他の二つのソフトではリサイズ機能の品質が低いため)

Paint.NETでゲーム用に画像整理と加工

 

と言う流れで作っています。

正直、1本のソフトで作れれば一番なんですが、全部の機能が揃った物って有料ソフトでもたぶん無いんじゃないかと。

あくまでゲーム用の画像編集なので一般的な需要の画像編集ソフトとは欲しい機能が違う上に、できればさらにアニメーションのプレビュー機能なんかが欲しいところですが・・・。

何か良いソフトがあれば教えてください。

 

あれ?広告・・・?

あんまり活用していなかったブログだけど久々に更新してみて・・・アレ・・?

記事ごとの終わりに広告なんて入ってたっけ??

無駄な広告が無いサイトを選んだはずなんだけどな・・・(表示を消すには課金しろと出たけど)

まぁ、いずれはブログなんかにもお金出しても良いけど、ご覧の通り書くことがあっても書く暇無いし、記事が少ないわけで。

しかしずいぶんデカい。

最初からあったなら絶対気付いてるな。。。。

SpriteBatchのバッファー?

個人メモ的な。

このページの下の方にある「パフォーマンスのチューニング」という項目でGPUのパフォーマンスが良くなるように変更できるらしいけど、肝心な部分で具体的な使い方の書式が載っていない。

少し模索してみたけど、ここで設定するのかな?という部分にデフォルトが1000なのかな?(英語なので翻訳に自信無し)の様なので試しに5000と入力してみてもrenderCallsとmaxSpritesInBatchの数字は特に変化なし。
設定の数字の範囲の説明が無いので分からないけど、8000以上ではとりあえずエラーになった。
正確にいくつまでなら行けたのかはあまり検証しなかったので分からないけど

「パフォーマンスが少し向上します。」とあるので、ほとんど効果は無いということなのだろうか?

現状、限界があるのは敵のAIや当たり判定での処理側で、グラフィックでの描画速度では全く問題が無いため、この設定も今のところは必要と言うわけでは無いのですが、
単純にスルーしてしまうよりは、こんなのもあった的にブログメモです。

Javaの困るところ

 

プログラミングにEclipseを使っているのですが、Eclipse上では特に問題が無かったのに実行可能なJarファイルにエクスポートすると動作しないという事態が発生しました。

原因を探すのに四苦八苦していたのですが、突き止めてみたら読み込むファイル名の大文字と小文字の違いでした。

Eclipse上ではファイル名では大文字と小文字は区別されず問題がありませんでしたが、エクスポートしたJAVAの実行ファイルではファイル名も大文字と小文字を正確に入力しなければいけないようです。

他の言語などは詳しく無いので分かりませんが、他の環境でも当たり前の事なのかもしれないけど、こういうエラーは非常に鬱陶しいですね。

デバッグ作業にも関係してくるので、JAVAでの注意するところなどを気付いたらここに付け足して行こうと思います。

 

JAVAについて

JAVAって何ぞや!?
私自身がJAVAでのプログラムを始めるまでは実態をよく知りませんでしたし、今もよく分かっていません。
自己紹介的な事を含めてサラっと書いてみます。


個人的にはJAVAの印象はかなりヨロシク無いイメージです(現在進行形)
アップデートで変なソフト抱き合わせでインストールして来ようとするわ、ブラウザなんかで「JAVAが必要です」とか出てくると警告が色々出てくるわ、動作が妙に重かったり・・・

JAVAで作られた有名なゲームにMinecraftがありますが、正直このゲームが無かったらJAVAでプログラムを組んでみようなんて発想には100%至らなかったでしょう。


そこまで不信感がありながら何故JAVAを選んでプログラムを始めたかと言えば

WindowsMacなどPCに限らずスマホまで機種の違いをほとんど気にせずプログラムが出来る。
・開発環境が無料で必要な物が全て整う(ひょっとしてイマドキ当たり前なんだろうか・・・?)

この2点が大きかったです。

開発環境については詳しく調べていないので昨今の事情はよく知りませんが、
昔プログラムをしていた頃はアセンブラで6万か8万ぐらい(WindowsではなくDOSでの環境だった)
BASICでも2~3万はしていた記憶があります。
C(C++)はカジった程度で、大きな声では言えませんが

『割れで使っていました』

たぶんかなり高かったと思います。はい。

まぁ、何かとお金がかかった時代の感覚のままだったので、久しぶりにプログラムを作ってみようと思った時にC系の言語は全く頭に無かったと言うのもあります。

 


JAVAを選んで良かった点。

・速度が十分過ぎるほど早い。
C言語よりかなり簡単な気がする。
・知れば知るほどJAVAは便利だった。

やはり一番不安だったのは速度ですね。
システム的に他の言語より遅いのは仕方が無いと思っていたのですが、使ってみてビックリ。
どの程度まで耐えられるのかはまだまだ不明な部分も多いですけど、ちょっとやそっとのゲームぐらいじゃ今時のPCでは相当な余裕がありそうです。

正直、プログラムをやり始めた頃はBASICの環境しかなく、速度コンプレックスみたいなのがありました。
当時はインターネットなんて無く、マシン語とかやりたくても本屋にはそんなマニアックな本が売ってないし、注文するにもガキだったので中身も分からず買える様なお金も無かったので。
C++をかじった時も中身はほとんどアセンブラで書いていたぐらいです。
そんな訳で遅い印象のJAVAは抵抗がありましたが、とりあえず今作っているゲームでは余程の無茶をさせても速度面では全く問題が出ません。
コンピューターの進歩はすばらしい。

Windowsも昔はWindoze(doze=居眠りとか、要するに遅い)と揶揄されていた時代がありましたけど、全く同じなのかも知れません。
マルチプラットフォームの筆頭的なJAVAは当分は安心して使えそうです。

 

JAVAのダメな点。

・ありすぎて書けない。

性質上、苦手な部分や、作るプログラムによっては向いていない物ははっきりしていますね。
1つの画面に納まるゲームなんかは良いですけど、ダイアログを出したり複数のウィンドウを扱ったりなんてプログラムではWindowsならWindows専用のプログラムになっちゃいますのでJAVAで作るメリットは低そうです。
まぁ、JAVAの欠点などはいくらでもある内容なのでここでは省きますが、
個人的に結構困るのが1バイトを-128~127でしか扱えないことですかね。
ゲームなんかでは0~255で扱いたい事が多いので。
もっとも今時のPCではそんなチマチマしたデータ扱う必要は無いのかもしれませんけど・・・つい癖で・・・

当ブログについて

将来的には分かりませんが、現在はJAVAとLibGDXに関する事とEclipseでの使用に限定した内容になると思います。
この記事を書いている(2016年7月)現在でJAVAはまだ始めて4ヶ月ほどのズブズブの素人です。

基本的な事とかスっ飛ばしてプログラムを進めていたりします。

 

プログラミングをする上で分かりづらかった事や、
元が1つの記事を一部修正しただけなんじゃないかと思うような、表面だけで肝心の知りたい中身が一切無く、どの記事も同じ内容だけで止まっていたり、

そもそも同じJAVAなの?っていうぐらい記述が違っていて役に立たなかったり、

具体的な使い方が無くて初心者の私には理解出来なかったり。

あと、誰でもアルアルだと思いますが、プログラム中で最初に1回しかやらないような事は、後でもう1度同じ処理をしようと思ってもまず覚えていなくて、同じところで引っかかって時間を食う事が多いんですよね。

 

そういった自分用のメモ代わりが多いかもしれません。

なるべく私同様に同じところで引っかかった人にも理解しやすいような内容にはしていきたいと考えていますが、書きかけの未完成のまま投稿して、後から修正して記事を完成させるスタイルが多いと思います。


ただまあ、導入部分については既に覚えていない部分が多く、
Eclipseの設定なんかはそれこそPCが壊れて再インストールなんて時ぐらいしかやりませんからね。
特にLibGDXでの、本当に最初の最初、導入部分が詳しく載っている記事が無くて何点か苦労しましたが、具体的に何に引っかかったのかは覚えていないです。


後で別の記事にまとめるかもしれませんが、とりあえず覚えている事を書いておきます。

EclipseでLibGDXを使う場合はEclipseワークスペースとLibGDXのセットアップで生成するファイルは『違うフォルダにする』

これで何度も引っかかりました。
同じプロジェクトで使うんだから同じフォルダにまとめたい。
ゴチャゴチャさせずに綺麗に使いたい。
と、普通に考えると思いますが、LibGDXのセットアップで作られるフォルダをワークスペースに指定するとインポートしようとしてもエラーになり出来ません。

どこにもそんな事は書いてないので私の設定の仕方が悪いだけかもしれませんけど・・・。

あるいはEclipseを使用する上での基本的な事なのかな。
(そういう事はスっ飛ばしているので分かりません)

 

 

以下、実際の苦労話。

 

1回目。とりあえずテスト導入で他の部分で分からない事だらけで苦労したけど特に問題無く、あくまで仮でのプログラムだったためフォルダは分かれていて気付かなかった。

2回目。サンプルプログラムなどでのテストで、30分ぐらい引っかかったと思う。しかしよく分からないうちに解決して気付かず。

3回目。現在作っているプログラム。この時は試行錯誤したけど、ワークスペースを変えたつもりが切り替わっておらず、いつの間にか回避してしまったパターン。原因にはまだ気付いていなかった。ワークスペースの切り替えミス(結果的にはミスではないんだけど)は次のプログラムを作り始めるまで気付かなかった。フォルダが別になっちゃったけど「まぁいいか」ぐらいにしか思っていなかった。

4回目。ゲームで使うマップのエディット用にまた新しく作り出した物。ここで相当苦労したのは覚えています。ここでフォルダを別にする必要がある事に気付いた気がするんですが・・・

5回目。前回からかなり時間が経ってから、別環境での動作のテスト用に作った物。何が原因でどうやって回避したのか全く覚えておらず、メチャメチャ時間がかかりました。時間にすると5~6時間ぐらい・・・。

 

思い出せば回数が進む毎に費やされる時間が倍増していたな・・・と。

個人的メモのようなブログは前々から考えてはいましたけど、改めて実際に書いてみるとやっぱり重要ですねぇ。

もう次は引っかかりません!