見出し画像

BlenderのPatchで日本語入力を試す。

(2021年7月31日追記)このパッチは現在,韓国語入力改善だけをサポートするようになっています.また,最新のソースコードと競合しています.
(2020年3月28日追記)このパッチではテキストオブジェクト、テキストエディタ、Pythonコンソールでの(日本語入力を含む)IMEサポートは行われないそうです。
(2020年3月24日追記)新しいcommitによって、最新のソースコードではビルドできなくなっているようなので、対処法の一つとして、gitでのコミットの戻し方を追加しました。

Blenderの開発中の新機能を試すためにPatchを適用します。Patchとはソースコードの変更箇所の情報が書かれたテキストファイルです。

今回は、IME入力のサポートにより、テキストオブジェクト、テキストエディタ、Pythonコンソールで日本語入力が可能になった、Kim Geonwoo (skyjib) さんによる"Update Input Method Editor support for Windows"のPatch(D6861)

を適用していきます。(2020/03/06に試したものです)

注意

初心者のメモなので、非効率な部分が含まれる可能性があります。gitをほとんど使ったことのない筆者が、patchの適用に成功した記録を忘れないように書き残した日記だと思ってください。

0.はじめに

私のPCはWindowsなので、Mac や Linux を使用されている方の参考になるかはわかりません。また、Blenderをソースコードからビルドしていることが前提です。まだの方は、

や、

などを参考にしてください。

1. Patch ファイルのダウンロード

上記のURL先の右側にある"Download Raw Diff"をクリックします。

右クリックでblenderフォルダ内に保存します。私は公式サイトの手順に従ってビルドしたため、C:\blender-git\blender\ の中にD6861.diff.txtファイルを保存しました。

画像1

2. Patchファイルの適用

コマンドプロンプトを起動し、ディレクトリを移動します。

cd C:\blender-git\blender

2.0 過去のコミットへの戻し方(2020年3月24日追記)

最新のコミットではエラーが出るため、対処法の一つとして、過去のコミットへ戻します。authorが最新patchファイルを適用する前に、Blenderのソースコードをpatchが作られたときのコミットまで戻します。2020年2月16日に作られたようなので、

git log --until="2020/02/16"

と入力します。2月16日までのコミットが新しい順に並ぶので、その時点で一番新しいコミットのID(英数字の並んでいるもの)をコピーします。(git log は "Q"で終了します。)

次のコマンドを入力して、コミットを戻します。

git checkout コピーしたID

次に、patchファイルを適用します。patchではなくgit applyを使ってみました。

(git applyは適用が成功すればコンソールに何も出力されず、エラーが出た場合はpatchを適用せずにエラーが出力されます。)

git apply -p0 D6861.diff.txt
// 使わない patch -p0 < D6861.diff.txt

2.1.環境変数への登録

'patch' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

と表示された場合は、環境変数が追加されていません。patchコマンドとは、patch.exeのことで、この実行ファイルが存在するディレクトリまでのパスを環境変数に登録します。ここでは簡単に環境変数への登録方法を示します。コマンドプロンプト上では上書きが怖いので、私はいつもGUIを使って登録しています。

私の場合は"C:\Program Files\Git\usr\bin"の中にpatch.exeファイルがありました。

タスクバーの端の検索から「システム環境変数の編集」と入力して出てきた結果をクリックするとダイアログが出ます。

(次の方法でも同じダイアログが出ます。「Windows システム ツール」の中の「コントロール パネル」を開きます。右上の表示方法を大きいアイコン(または小さいアイコン)に変更します。「システム」、左の「システムの詳細設定」を押します。)

ダイアログの右下の「環境変数」、下の「システムの環境変数」の中の「Path」、「編集」を順にクリックします。右の「新規」をクリックすると新しく入力欄が出るので、"C:\Program Files\Git\usr\bin"と入力します。「OK」を出して完了です。

(ちなみにblender.exeの存在するフォルダまでのパスを環境変数に登録すると、コマンドプロンプトから"blender"と入力するだけで、blenderが起動できます。)

2.2.patchコマンドで失敗した場合

patchファイルが適切な場所に置かれていないと、"File to patch"とpatchを適用するファイルを聞かれるので、"Ctrl + C"を押して、キャンセルします。

patchファイルの適切な保存場所の探し方は、その中身をみることです。

--- intern/ghost/CMakeLists.txt
+++ intern/ghost/CMakeLists.txt

などと書かれている場合、(これはD6861.diff.txtの3行目から4行目です。)internフォルダと同じ階層にpatchファイルを保存します。

また、patchファイルのすべてがうまく適用されるとは限りません。

1 out of 1 hunk FAILED -- saving rejects to file source/blender/editors/screen/screen_edit.c.rej
私は1ファイル失敗しました。とりあえず、今回はエディタで手動で変更しました。より良い方法についてはまた調べることにします。

"source/blender/editors/screen/screen_edit.c" がファイル名なので、D6861 Patchの該当コードの変更部分(緑色のハイライト部分)をコピーします。

(D6861.diff.txtファイルの中身から変更箇所をコピーしようとしましたが、追加を示す"+"がコピーするときに邪魔でした。)

"source/blender/editors/screen/screen_edit.c" をエディタで開き、Webページと比較します。Webページでは701行目と702行目の間に追加していますが、実際のソースコードでは、前後のコードを見ると、どうやら707行目と708行目の間に追加するようです。ここに、コピーした部分をペーストします。(下の画像はVisual Studio Code の画面です。行番号の隣の緑色になっているところが追加した部分です。)

画像3

Patchを作成した時点でのソースコードを持ってこずに、最新のソースコードにPatchを適用しようとしたため、このようなことが起こったのだと考えます。

3.ビルド

make コマンドを入力し、ビルドします。


cd C:\blender-git\blender
make

makeコマンドは GNUmakefile ファイルに書かれた手順に従ってコマンドを実行しています。そのため、このファイルが入っているディレクトリ(C:\blender-git\blender)がカレントディレクトリである必要があります。

4.Blender.exeを起動する

ビルドが成功すると、Visual Studio 2019はbuild_windows_x64_vc16_Releaseという名前でディレクトリが作成されます。Visual Studio 2017 であれば、vc16の部分がvc15という名前になったディレクトリになっているはずです。

以下のコマンドをコマンドプロンプトに入力すれば、blenderが開きます。もちろんエクスプローラーからクリックしても開きます。

C:\blender-git\build_windows_x64_vc16_Release\bin\Release\blender.exe

画像2


この記事が気に入ったらサポートをしてみませんか?