趣味プログラマによるOSS開発日誌

趣味で作っているOSSソフトウェアの紹介や関連技術の紹介、楽曲製作、Webデザイン勉強状況を紹介します。

Xenogears - 憧憬(emotions)

作曲の勉強のために、ここ3ヶ月の間ゲームのBGMの耳コピをしている。 セール中であったKomplete 9 Ultimateと、たまたま安く売られていたWAVESのプラグインを手に入れてから音楽制作が非常にはかどっている。 DTMを始めた当初、どうやったら市販で売っている…

プラグイン「Copy and Paste UV」がBlenderのプラグインに登録される

UV座標をコピー・ペーストするプラグインの記事で作成したプラグインをBlender developmentにて報告したところ、同機能を持つプラグインよりも実行速度が速いからBlenderのリポジトリにcommitしてくれというお誘いがあった。 私自身GitHubで個人的に公開して…

Blenderプラグインの作り方

Blenderを使っていると、標準で備わっていない機能があって困るときが(よく)ある。 嬉しいことに、Blenderは自由にプラグインが作成できるようになっているため、たいてい調べれば欲しい機能が見つかったりする。 しかし探してもプラグインが見つからない…

メインPCのパーツ紹介

半年前に書こうとした記事が残っていたので、少し編集して公開。 公開したつもりだったのだが・・・。昔使っていたPCが性能不足でDTM内の処理が追いつかず、音源をインストールするためのディスクの空き容量が足りなくなったため、半年前に開発・製作向きのP…

iPhone/iPad・Android アプリ 「Path Finding - 経路探索型 数字パズルゲーム」 リリース

割と適当に作った、2個目のiPhoneアプリがAppleの審査を通過してしまいました。 今回もリジェクトなしに1度で審査を通過です。 Appleの審査が厳しいと思っていたので、ちょっと意外ですね。今回作成したアプリ「Path Finding - 経路探索型 数字パズルゲーム…

Xcodeで作成したiPhoneアプリを審査に出すまでの手順

Xcodeで作成したiPhoneアプリを審査に出すまでの手順を毎回忘れてしまっているので、備忘録としてまとめてみる。 前提条件 コンパイルが通り、実機でのアプリのテストが可能な状態になっている Unityから出力されたXcodeプロジェクトである Nend SDKを利用し…

Unity向けのnendSDKを利用したときに、Xcodeで「"_kSecValueData", referenced from...」が表示されるときの対処方法

宣伝ばかりではあれなので、たまには技術的な情報でも。 問題点 UnityにNend SDKを使ってXcodeで実機テストしようとしたところ、以下のメッセージがされることがある。 Undefined symbols for architecture armv7: "_kSecValueData", referenced from: -[UIA…

iPhone/iPad アプリ 「Rash Rush」 リリース

気がつけば、4ヶ月ぶりの更新・・・。 そろそろこのブログが存在する理由が微妙になってきたところ。 ま、公開しているソフトなどの連絡先がこのブログなので、一応存在する理由はあるのかな。転勤などあってバタバタしながらも、今年の1月から開発を進めて…

レーシングゲームにおける逆走判定

ほとんどのレーシングゲームでは、逆走した時に逆走したことを示すメッセージが表示される。 逆走したことのメッセージが存在しないと、 プレイヤーが逆走に気がつかないまま逆走を続けてしまう可能性があり、非常に不親切である。現在作成しているアプリで…

オブジェクトをパスに沿って複製する

ゲームの通路など、同じオブジェクトのパターンを複数用意する必要がある場合、 ステージのルートのパスを最初に作成してから、パスに沿って複製することで、 手間がかからずに通路を作成することができる。Blenderでは、以下のようにしてパスに沿ってオブジ…

UV座標をコピー・ペーストするプラグイン

Blenderを使っていく中で、モデルのUV座標をコピーしたいという状況があったので、 調べてみるとそれらしきものを発見した。 ただしこのプラグインには問題があり、コピー元とコピー先に同一頂点が含まれていると、 正常にコピーが行えないようだ。http://wi…

LoadLevelを用いた画面遷移

ゲームはプレイ画面だけでなく、メニューやスコア・設定画面など、様々な画面が存在する。 C++等で画面遷移を行う場合は、Scene(State)パターンを用いて〜とか、Stackにシーンを積んで〜とか考えるのだが、Unityに関してはLoadLevel関数を用いることで画面…

C++11 ラムダ関数を利用してみる

C++

C++のSTLを使うときに毎回iteratorで回していた部分があって、毎回面倒であった。 そこで今更であるが、C++11で採択されたラムダ関数の使い方/使い道を調べ、少しだけ分かった気がするのでまとめておく。 【ラムダ関数を使う理由】 std::sortやstd::for_each…

近況など

またまた時間を空けてしまった。 ブログを書き続けるのも大変なのだと改めて思うし、Web上で絶えず投稿し続ける人達は本当に尊敬する。前回の投稿からもいろいろあったのだが、具体的にまとめると以下の通り。1. 作曲・編曲・DTMの勉強(既存の曲のアレンジ…

雑誌「iP! 2013年 06月号」にMuMeMoが掲載

タイトルの通りであるが、晋遊舎さんの雑誌「iP! 2013年 06月号」にMuMeMoが掲載された。 http://www.amazon.co.jp/iP-%E3%82%A2%E3%82%A4%E3%83%94%E3%83%BC-2013%E5%B9%B4-06%E6%9C%88%E5%8F%B7-%E9%9B%91%E8%AA%8C/dp/B00C7WFRQG http://www.shinyusha.co…

UTF-8の文字列を一文字ずつ表示する

C++

C言語でUTF-8を一文字ずつ表示する方法を知りたいと言われ、すぐに答えが出てこなかった。 ネットでUTF-8のフォーマットを調べて、一応UTF-8の文字列を一文字ずつ表示することが出来たので紹介する。具体的なプログラムを示す前に、UTF-8のエンコード方式に…

intとunsigned intのシフト演算の違いについて

C++

自作STGに固定小数点化を採用する時に、C++(C言語)におけるシフト演算で、多少悩んでしまったのでメモしておく。C++のシフト演算では、intで変数を宣言した時と、unsigned intで変数を宣言した時とで振る舞いが異なる。 int型で変数を宣言した時には、符号bi…

Vectorにストリーミングメモ兼mp3音楽プレイヤー「MuMeMo」を公開

少し報告が遅くなったけど、Vectorに自作ソフト「MuMeMo」を公開してみた。 http://www.vector.co.jp/soft/winnt/art/se501736.htmlソフトのソースコードもgithubに置いてみた。 ソースコードの改変は自由だが、ソフトの再配布(ソースコードを改変したもの…

3Dモデルを2D座標指定で表示する方法

2DのSTGでも最近のゲームは、敵や背景を3Dにして表示することが多い。eriKsも敵を3Dで描画する予定であったが、一時的に敵の2D画像を用意してゲームのテストを行っていた。 そしてモデリングデータが完成し始めてきたので、この際に3Dモデルに切り替えを徐々…

リプレイバグの対処法

STGやレースゲームなどにある「リプレイ機能」は、実装方法は割と簡単な方であるが、"正しく動かす"にはそれなりにきちんと考えないと、ちょっとした環境の変化でいわゆる「リプレイずれ」を引き起こす。 自作ゲーム「eriKs」を試しに、VC++のDebugビルドか…

自作曲「Hello! Music World!!」投稿

自作曲「Hello! Music World!!」を公開してみた。 http://www.muzie.ne.jp/songs/395078/公開場所としてmuzieを選んだのは、10年近く前から今まで続いていることから、それなりの実績があると感じたため。 さらに公開するためには2-3日の審査があり、著作権…

技術書・専門書の読み方で気がついたこと

最近、技術書を読んでいても頭に入ってこなく、読むのに時間がかかるので、読み方が問題なのか気になっていた。 そこで、読み方を変えてみようということで、技術書の良い読み方を検索してみた。検索の結果わかったことは以下の4つ。 目的があまりなく読んだ…

時間が止まったようなエフェクト

テレビ番組やアニメ、ゲームで見かける時間が止まったようなエフェクトを、DirectXのアルファブレンドを使って実現する方法を紹介する。このエフェクトを実現するための、アルファブレンドの計算式は以下のようになる。 aはアルファ値、srcは転送元、dstは転…

作曲ソフト

現状報告第2弾。今回は作曲について。小さい頃に楽器を習いたかったのだが、なぜか習わせてもらえなかった。 そして年を取るにつれ、楽器を習うことへの興味は徐々に薄まっていってしまったのだが、ゲームの開発でゲームBGMに興味を持ち、自分でBGMを作って…

自作ゲーム「eriKs」の開発

今回は、ここ1年(正確には去年の9月から開発開始したので、4ヶ月)の間開発を進めている、スキル使用型STG「eriKs」を紹介。 紹介といっても、ゲームシステムやあらすじは完成してから公開したいと思うので、開発状況を書くことにする。「eriKs」は非公開分…

環境の変化

最終更新日から、1年近く経っていることに気がつき、この1年弱の時間の流れの速さを感じた。 更新を停滞させてしまって申し訳ないですm(--)mこの1年の間に学生->社会人になり、住む場所・環境・身分等々が急激に変化したこともあり、ブログを書いていたこと…

Linuxの起動を追ってみる(1)

Linuxカーネルのソースコードを読み始めて、2週間弱経過したのでちょくちょくまとめていこうと思う。記念すべき第1回は、Linuxがどのように起動されるかを簡単な流れとしてみてみることにする。 詳細な部分の解析をきちんと行っていないため、不満点もあるか…

オープンソースカンファレンス2012 Tokyo/Spring に参加してみた

オープンソースカンファレンス2012が今日と明日の2日間開催されるとのことで、参加してみた。初めての参加で雰囲気をつかみたいのと、OSS関連の情報を得たかったのだが、ほとんどオライリーの本を立ち読みしているという、おかしな状況に。 7000円以上の買い…

TSSを使用しないコンテキストスイッチ

30日本とか、はじめて読む486とかで紹介されているコンテキストスイッチ(タスクスイッチ)は、TSS(タスク状態セグメント)を利用した方法である。 しかしここ2週間、TSSを用いたコンテキストスイッチがどうもうまく行かないので、別の方法を試みた・・・とい…

LinuxカーネルのソースコードをWeb上で見る

そろそろ本格的にLinuxのソースコードを解読していこうと思う。Linuxのバージョンは日に日に上がっていき、現在は3.3が最新のバージョン(mainline)である。 最新の技術を知りたいのであれば、最新バージョンを読むほうが良いのだが、ざっくりとLinuxのソー…