KnobMan3D

Copyright (c) 2016 g200kg
2016/02/09



Available at : http://g200kg.github.io/knobman3d/
GitHub Repositry : https://github.com/g200kg/knobman3d

:

概要

KnobMan3Dはノブ画像を生成する事に特化した3Dモデリングツールです。 モデルの作成は3Dのオブジェクトの組み合わせで行いますが出力は3Dデータではなく画像ファイルとなります。 VSTプラグインの開発等で必要となるツマミの画像を繋げた「アニメーションノブ」のビットマップを作成できます。 各画像のフレームが垂直または水平に接続された1枚の画像、またはアニメーションGIF画像として出力できます。

Overview

KnobMan3D is a 3D modeling tool for knob-filmstrip-image design. Even the modeling is performed with combination of 3D objects, output will be done with 2D image files. Especially, aiming the 'Animation knob bitmap' that will be used in the VST audio effects/synth development. Each animation frame will be vertical / horizontal stitched, or combine to one AnimationGIF format.

機能

作成サンプル:




Function

Samples:




動作環境

ウェブアプリですのでブラウザでKnobMan3Dのページを開けば動作します。 ブラウザは Chrome / Firefox / Edge のいずれかで動作しますが、バージョンは最新版を使用してください。 なお、Mac の場合 Yosemite では正常に色が表示されない事があります。最新の El Capitan を使用してください。

また、最適化の関係で Firefox / Edge では動作が重くなる事があります。 Chrome を使用するか、Rendering paneの "Shadow" 設定を 0 にするとかなり症状が改善されます。

Environment

KnobMan3D is a web applicaiton, you need just a browser to access to the URL. Browser should be latest Chrome, Firefox or Edge. If you use Mac, latest 'El Capitan' is needed. May be some color will not be displayed normally in Yosemite.

Because of optimizing issue, Firefox or Edge might be slow response when editing parameters. Using Chrome or setting "Shadow" in Rendering pane to "0" might be a help.

UIの概要

UI画面には4つに分けられたペインとコマンドメニューがあります。それぞれの役割は次のようになっています。

Object list 配置した基本オブジェクトのリストが表示されます。デフォルトでは3個のオブジェクトだけが表示されていますが、コマンドメニューの操作で追加する事ができます。 サポートされる最大オブジェクト数は32です。
Object parameter 基本オブジェクトの形状や色などをこのパラメータで編集できます。
Effects 基本オブジェクトに対して追加のエフェクトを付加するためのパラメータです。各フレームに対してノブが回転したり色が変化する等のアニメーションはこのパラメータで設定します。
Rendering 生成した結果の画像を表示します。またライティング等の全体的な設定もここで設定します。

UI Overview

There are four panes and Command-menu in UI screen. Followings are description of these.

Object list The list of deployed basic objects. Though there are three objects in default, you can add objects by menu. Currently, maximum number of objects is 32.
Object parameter The shapes or colors of basic objects settings.
Effects Additional parameters for basic objects that allows animation e.g., rotations, color changing or so.
Rendering Display the rendering result. Also it has global settings of lighting or camera.

コマンドメニュー


これらはファイル操作、オブジェクトに対する操作を実行するボタンです。
コマンド説明
New 作成中のデータを消去します。
Load SaveAsURLコマンドで保存されたデータをロードするためのダイアログを開きます。URLが長くなりすぎてブラウザで直接開けない場合はこのダイアログからデータを読み込む事ができます。
SaveAsURL 作成中のデータを表すURL形式の保存データを表示します。このURLをブラウザで開く事でデータの編集を再開できます。 なおデータが複雑になりURLが長くなりすぎた場合はブラウザで直接開く事ができなくなります。この場合はLoadコマンドで開くダイアログにURLデータを貼り付ける事でロードできます。
Export PNGまたはアニメーションGIF形式で画像ファイルとして出力します。このコマンドを実行するとエクスポートの詳細を指定するダイアログが開きます。
Add オブジェクトを1つ追加します
Dup 現在フォーカスしているオブジェクトを複製します。
Del 現在フォーカスしているオブジェクトを削除します。
Back 現在フォーカスしているオブジェクトをObjList上1つ上に移動します。
Fore 現在フォーカスしているオブジェクトをObjList上1つ下に移動します。
Rename オブジェクトに任意の名前を付けるためのダイアログを開きます。付けられた名前はObject List上に表示されます。
Help この画面を開きます。

Command menu


These are file or object manipulation command buttons.
CommandDescription
New Clear current data.
Load Open a dialog for data-load that saved by 'SaveAsURL' command. If the URL is too long for directl open with browser, you should paste the URL to this dialog.
SaveAsURL Display current modeling data as a URL. Data can be load by opening this URL with a browser. Note that if the URL become too long to direct open with browser, you should use 'Load' command instead.
Export Export rendering result as PNG or AnimationGIF. Detail dialog will be open with this button.
Add Add an object.
Dup Duplicate current focused object.
Del Delete current focused object.
Back Move current focused object up
Fore Move current focused object down.
Rename Rename the object. the name will be shown in 'Object List'.
Help Open this page.

Object List

ここには使用している基本オブジェクトの一覧が表示されます。 1行だけ明るく表示されているのが現在フォーカスしているオブジェクトになり、各行をクリックする事で切り替える事ができます。 右側の Object parameter および Effects ペインには現在フォーカスされているオブジェクトの情報が表示されます。

各行の左にあるチェックボックスはそれぞれのオブジェクトの表示/非表示を切り替えます。


ObjList

The list of object. The bright line indicate the current focused object. focused object can be switched by clicking these line. Object parameter and Effects pane right side will show current focused object parameters.

Check-box on left side switches show/hide of each object.


Object Param

各オブジェクトの形状や色をこれらのパラメータで指定します。

パラメータ説明
Type基本形状を指定します。基本形状として "Cylinder"、"Cube"、"Circle" があります。
CylinderCube
DivRオブジェクトの円周方向の分割数を指定します。
DivHオブジェクトの高さ方向の分割数を指定します。
Aspect形状の(真上から見た時の)縦横比を設定します。
Aspect = -50Aspect = 0Aspect = 50
RoundCubeを真上から見た時の角を丸くします。このパラメータはCylinderでは無効です。
Round = 0Round = 25
WidthCircleの幅を指定します。Circle以外の形状では無効です。
WaveDepth
WaveAngle
Cylinderを真上から見た時の周囲を波打たせます。WaveDepthは波の振幅、WaveAngleは波の頂点の数を表します。Cubeに対しても有効ですが、Roundパラメータで角を丸めた部分にのみ効果があります。
WaveDepth=20
WaveAngle=5
Deflate形状の上面を底面よりも小さくします。Cylinderならば円錐、Cubeならば四角錐に近づいてゆきます。
Deflate=30
Smooth形状の上面を滑らかな曲面にします。
Smooth=25Smooth=50Smooth=100
Height形状の高さ方向のサイズを指定します。
Height=10Height=20Height=50
Shininessオブジェクトの光の反射の強さを指定します。
Shininess=0Shininess=30Shininess=100
Texture
TexType
TexDepth
TexZoom
これら4つのパラメータはオブジェクト表面のテクスチャーを指定します。
  • Textureは使用する模様のビットマップの指定です。
  • TexTypeはBumpの場合表面の凹凸として表現され、Normalの場合はビットマップがそのまま貼り付けられます。
  • TexDepthはテクスチャーの強さを指定します。TexTypeがBumpの場合、値がプラスの場合模様が浮き出る方向に、マイナスの場合には彫り込まれる方向に働きます。
  • TexZoomはテクスチャーの拡大率です。
Texture=Sand
TexType=Bump
TexDepth=100
TexZoom=100
Texture=Fabric
TexType=Bump
TexDepth=100
TexZoom=100
Texture=Mosaic
TexType=Bump
TexDepth=-150
TexZoom=120
ColorHLSまたはRGBでオブジェクトの色を指定します。下部にはカラーパレットがあり、そこから選択する事もできます。カラーパレットをShift + クリックする事で現在の色をパレットに登録する事ができます。

Object Param

The shapes or colors are determined by these parameters.

ParameterDescription
TypeSpecify the basic shape, "Cylinder", "Cube" or "Circle".
CylinderCube
DivRObject division number of circumferential direction.
DivHObject division number of height direction.
AspectSpecify aspect ratio in X-Y plane (means from just above).
Aspect = -50Aspect = 0Aspect = 50
RoundRound the corner (from just above) of 'Cube'. This parameter is not available in other shapes.
Round = 0Round = 25
WidthCircle width. This parameter is not available in other shapes.
WaveDepth
WaveAngle
Waving effect of circumference of "Cylinder". WaveDepth is the amplitude of the wave, and WaveAngle is the number of peaks. This parameter also affect to "Cube" but only for "Rounded" corners.
WaveDepth=20
WaveAngle=5
DeflateDeflate the top face of the shape. It will come close to cone shape or pyramid shape.
Deflate=30
SmoothSmoothen the top face.
Smooth=25Smooth=50Smooth=100
HeightSpecify the height of the object.
Height=10Height=20Height=50
ShininessSpecify the reflection of the object.
Shininess=0Shininess=30Shininess=100
Texture
TexType
TexDepth
TexZoom
These four parameters specifies the surface texture of the object.
  • Texture is the bitmap pattern to use.
  • TexType, "Bump" means the representation as a unevenness of surface, "Normal" means directly use of bitmap as the surface.
  • TexDepth is the intensity of texture. In "Bump" mode, positive value means convex and negative value means engraved.
  • TexZoom is the scaling factor of texture.
  • Texture=Sand
    TexType=Bump
    TexDepth=100
    TexZoom=100
    Texture=Fabric
    TexType=Bump
    TexDepth=100
    TexZoom=100
    Texture=Mosaic
    TexType=Bump
    TexDepth=-150
    TexZoom=120
    ColorSpecify the object color using HLS or RGB. Color palete is also available. Use SHIFT+clicking to register color to palete.

    Effects

    これらのパラメータは基本のオブジェクトに対してさらに変更を加えるもので、フレームに対応してノブが回転するなどのアニメーションを作成する事ができます。 パラメータの多くは2つの値の組になっています。 デフォルトでは左側の値(From)のみが使用されますが、中央のドロップダウンメニューで"=>"を選ぶと最初のフレームでは左の値、最後のフレームでは右の値が使用され、中間は自動的に補間されます。

    パラメータ説明
    Zoom X / Y / XYSepa オブジェクトのサイズを変更します。デフォルトではXの値のみが使用されますがXYSepaにチェックを入れるとX方向とY方向を独立してコントロールできます。
    Offset X / Y X方向およびY方向それぞれのオブジェクトの位置を変更します。
    RotateAt
    KeepDir
    CenterX
    CenterY
    Angle
    オブジェクトを回転させます。CenterX / CenterY で回転の中心を指定し、Angleで回転の角度を指定します。KeepDirは未実装です。
    Angle -150=>+150OffsetYと組み合わせた例:
    Angle -150=>+150
    OffsetY 40
    OffsetX/YとCenterX/Yが同じ値の場合:
    OffsetX/Y 20/30
    CenterX/Y 20/30
    Angle -150=>+150
    Alpha オブジェクトの透明度を設定します。
    Alpha 0=>100
    Brightness オブジェクトの明るさを設定します。マイナスの場合は黒に近づき、プラスの場合は白に近づきます。
    Brightness -100=>+100
    Hue オブジェクトの色相を設定します。-360または+360で一周して元の色に戻ります。
    Hue 0=>+360

    Effects

    These parameters adding more effects to objects. It will makes animation frame by frame e.g. knob-rotation. Almost parameters are consist of pair of values. In default, the left side value will be used. And the value will be interporated between right side value according to frame when you select the '=>' on dropdown.

    ParameterDescription
    Zoom X / Y / XYSepa Scale the object size. The 'X' value is used for X and Y in default. X and Y value are independently controlled when checked the 'XYSepa' checkbox.
    Offset X / Y Offset the object position along to the X-axis or Y-axis.
    RotateAt
    KeepDir
    CenterX
    CenterY
    Angle
    Rotate the object. CenterX / CenterY specifies the center of rotation, and the Angle specifies the rotation in degree. KeepDir is not yet implemented.
    Angle -150=>+150Combination with OffsetY:
    Angle -150=>+150
    OffsetY 40
    Setting same value to OffsetX/Y and CenterX/Y:
    OffsetX/Y 20/30
    CenterX/Y 20/30
    Angle -150=>+150
    Alpha Specifies the transparency of the object.
    Alpha 0=>100
    Brightness Specifies the brightness of the object color. Come close to black when negative value, and come close to white when positive value.
    Brightness -100=>+100
    Hue Specifies the hue of the object color in degree. -360 or +360 means same color as original.
    Hue 0=>+360

    Rendering

    このペインにはレンダリングされた結果が表示されます。また、ライティング等の全体的な設定もここで行います。


    パラメータ/コマンド説明
    画像の右/下のスライダーおよび数値カメラの位置を設定します。
    Resetカメラの位置を中央真上に設定します。
    Ambient周辺の明るさの設定です。0の場合はライトの当たっていない部分が完全に黒になります
    Ambient 0Ambient 50
    Intensity一定の方向から当てるライトの強さです。
    Intensity 0Intensity 50Intensity 100
    Shadow背景に落ちる影の強さです。0の場合はノブから背景に対して落ちる影が生成されません。なお、この影の処理を0以外の値にすると(特にFirefox/Edgeでは)かなり重くなります。
    Shadow 0Shadow 25Shadow 50
    LightDirXY平面上で見たライトの方向です。
    LightDir -45LightDir +45
    LightOffset真上からLightDirで示す方向に向けてライトを傾ける角度です。0で真上、90で真横になります。
    LightOffset 0LightOffset 45LightOffset 90
    CamZoom複数のオブジェクトで構成したシーン全体を拡大/縮小します。
    CamZoom 50CamZoom 100CamZoom 150
    Frame / Animationスライダーを移動するとEffectsの設定に従ってアニメーションされた各フレームを表示します。またAnimationボタンを押すと、自動的にアニメーションされます。

    Rendering

    This pane diplay the rendering result. Also has parameters of global lighting etc.


    Parameter / commandDescription
    The sliders and values right/bottom of the rendered image.Specifies the camera potition.
    ResetReset the camera position to just above.
    AmbientAmbient light intensity. If 0, the faces out of light direction will be complete black.
    Ambient 0Ambient 50
    IntensityDirectional light intensity.
    Intensity 0Intensity 50Intensity 100
    ShadowShadow density for background. If 0, The objects will not cast shadow to background plane. Note that this option will needs fairly CPU (especially in Firefox / Edge).
    Shadow 0Shadow 25Shadow 50
    LightDirLight direction in X-Y plane.
    LightDir -45LightDir +45
    LightOffsetLight direction from just above to LightDir direction. 0 means just above, and 90 means edge-on.
    LightOffset 0LightOffset 45LightOffset 90
    CamZoomScale the whole scene constructed with multiple objects.
    CamZoom 50CamZoom 100CamZoom 150
    Frame / AnimationDisplay animated frames according to Effects parameters. The iamge will be automatically animated when the Animation button is pressed.

    License

    Copyright (c) 2016 g200kg

    http://www.g200kg.com

    KnobMan3D : licensed under MIT License.
    Sample knobs : licensed under Creative Commons Zero CC0

    Used Libraries:

    THREE.js : MIT License
    https://github.com/mrdoob/three.js/blob/master/LICENSE

    jsgif (GIFEncoder.js/NeuQuant.js/LZWEncoder.js) :
    https://github.com/antimatter15/jsgif/blob/master/LICENSE