Lately, with the ongoing pandemic, I found myself playing Magic: The Gathering together with my friends on Discord. We don't fancy to play the Arena version, so we decided to simply point our webcams down on our table so-that we can see each other's cards on Discord. But with crappy cameras and a heckload of video compression it becomes impossible to read the opponent's cards. So, it happened pretty frequently that we needed to read the card statistics to our opponents out loud.
This was eventually pretty annoying, hence, I came up with this tool. Magic-obs creates an overlay that shows your current life points, and the following statistics about the cards that you currently have on your battlefield:
- Power/Toughness
- Abilities like Flying, Trample or Haste
- Markers
You can then use a streaming software like OBS to overlay this information onto your webcam image.
CardKilled.mp4
- Before downloading, you will need to install Java 15 or later (Download link)
- Download the launcher here .
- Double-click the launcher. It will download more necessary files and launch the application. Also, it will check for updates every time you start the app.
Magic-OBS works with every streaming software that supports color keying, but I personally recommend OBS Studio. For that reason, this guide will assume that you use OBS Studio.
- After downloading/compiling, double-click
magic-obs-bootstrap-1.0-SNAPSHOT-jar-with-dependencies.jar
- Four windows will open: One window displays your current life points, one which is currently just a red rectangle ( this window will display the cards you have in your battlefield later), and a settings window which allows you to control everything. Lastly, a window depicting a day/night graphic will open (This is important if you are playing a deck that uses the day/night mechanic).
- Open OBS Studio.
- Create a new scene (using the
+
icon in theScenes
section) - Look at the
Sources
section in OBS. You will also find a+
icon there. Click it and add aVideo capture device
. - Click
Okay
. Then select your webcam. You might want to click onDeactivate when not visible
. ClickOkay
again. - Click again on the
+
icon in the sources section, but this time, add aWindow capture
. - Click
Okay
, then select[java.exe]: Magic OBS Health Points
underWindow
. - Uncheck
Record mouse pointer
, then click onOkay
. - Repeat steps 7 through 9 but this time, select
[java.exe]: Magic OBS Card Statistics
underWindow
. - If your deck uses the day/night mechanic, repeat steps 7 through 9 again, but this time,
select
[java.exe]: Magic OBS Day Night
underWindow
.
You should now see your webcam with your health points and the card statistics window on top. Before applying the key, I suggest you to arrange and scale the overlays on your webcam to your liking. To do that, use the preview window of OBS.
After that, you still need to remove the red background. To do so, repeat the following steps for all window captures that you just created:
- Select the window capture in the
Sources
section (by clicking once on it) - Click on
Filter
(should be right above theSources
section) - Click on the
+
icon in the window that just opened and selectColor Key
and click onOkay
. - Under
Key-Color type
selectRed
. - If the key looks weird, you might want to play with the rest of the settings to get a better key.
- When you're done, click on
Okay
.
OBS is now all set.
If you are using a meeting software like Discord or Zoom, you might want to use your video feed from OBS as your webcam
in those softwares. In OBS, click on Activate virtual camera
. Then, in your meeting software, you'll need to select
OBS Virtual Camera
as your webcam. In Discord or Zoom, simply click the small arrow next to the camera button to get
to that setting.
Confused? Here's a video tutorial.
The usage is quite simple and should be pretty intuitive. Nevertheless, here's a quick rundown of how to use Magic-OBS.
Click the +
or -
button next to Health points:
or type the number of health points in the text field. The health
points graphic in OBS will update automatically.
- ... click
Add card
. A new card will be spawned. - Use the table view to set properties like Power/Toughness.
- Use the drop down menu in the
Abilities
column to select any abilities that the creature has. - If you wish to duplicate a card, you can click the
x2
button next to that card. - You can also use the arrow buttons to change the order of the cards.
Hint: Magic-OBS will learn over time which abilities you use the most. These will appear on the top of the list. To change this behaviour, select
Original
orAlphabet
underSort ability list by:
.
Note: If you are missing an ability, feel free to send me a message. See the section
Contributing
below for more information.
...click the Kill
button of that creature in the card table.
In the Innistrad: Midnight Hunt set, a new mechanic was introduced where it can be day or night. Some creatures behave differently depending on the day/night state. If some of your cards use that mechanic, you can use the Day/Night-Drop down to indicate whether it is day or night. A graphic is shown to the other players so-that everyone knows whether it's day or night.
Unfortunately, you still need to transform your cards manually when day/night changes.
...click on Reset game
and your game will be reset to its initial state (i.e. your HP will be reset to 20, the
battlefield will be cleared and day/night will be reset to None
).
By clicking Customize appearance
, a menu will pop up where you can change the look of basically anything. Don't like
the font used for the card statistics? Change it!
Don't like the background image of the health points display? Change it!
Want to change the key color from red to green? Well... you get the point, change it :)
- JDK 15 or later (Download)
- Click on the green button titled
Code
- If you never heard of
cloning
, click onDownload ZIP
and unzip it. If you know what cloning is, you already know how to do it :)
- Open
Command prompt
- Use the
cd
command to navigate to the folder you just unzipped/cloned - To compile the program, run
mvnw package
and wait for the magic to happen. - To actually launch the program, run
mvnw exec:java -pl magic-obs
. - Once Maven is done compiling, you will find a new folder called
target
. In that folder, you will find the filemagic-obs-1.0-SNAPSHOT.jar
which is the compiled version of the program.
There are lots of ways to contribute to this project. In particular, I need help with the following things:
- Find abilities that are still missing
- Draw icons for new abilities
- Improve some animations
- Setup a CI
If you feel like helping me with any of these things, feel free to submit an issue in the issue here or create a pull request.
- German: Mostly by myself, some translations are taken from here
All parts of this program are licensed under the Apache license v2 except for the parts mentioned below.
Copyright (C) 2021 - 2021 Frederik Kammel
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an " AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
The ability icons are taken from the MTG Fandom Wiki and are thus licensed under the CC BY-NC-SA 2.5. Except for the ability icons mentioned below, they were originally uploaded by Fenhl and were modified to fit the look of this app.
- Commander icon: Uploaded by Yandere-sliver
The Up/down arrow icons are made by Google and were taken from Flaticon and are thus licensed under the Flaticon license.
The Camping designs collection created by zirconicusso was taken from Freepik and is thus licensed under the Freepik license.
The font Architects Daughter was taken from Google fonts and is licensed under the Open Font License.
The font Magic: The Gathering was originally taken from urbanfonts.com and was modified since.
The LTT meme was taken from Reddit and is licensed under the CC BY-NC-SA-RI-KC-OR-LL.